From 71db52c5443a7bf82d9a23a770994a42b043be04 Mon Sep 17 00:00:00 2001 From: Leonardo Bishop Date: Thu, 27 Jul 2023 22:11:31 +0100 Subject: Initial commit --- code/weapon/Pistol.cs | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 code/weapon/Pistol.cs (limited to 'code/weapon/Pistol.cs') diff --git a/code/weapon/Pistol.cs b/code/weapon/Pistol.cs new file mode 100644 index 0000000..567eb3e --- /dev/null +++ b/code/weapon/Pistol.cs @@ -0,0 +1,52 @@ +using Sandbox; + +namespace MurderGame; + +public partial class Pistol : Weapon +{ + public override string ModelPath => "weapons/rust_pistol/rust_pistol.vmdl"; + public override string ViewModelPath => "weapons/rust_pistol/v_rust_pistol.vmdl"; + + public Pistol() + { + MaxAmmo = 1; + } + + [ClientRpc] + protected virtual void ShootEffects() + { + Game.AssertClient(); + + Particles.Create( "particles/pistol_muzzleflash.vpcf", EffectEntity, "muzzle" ); + + Pawn?.SetAnimParameter( "b_attack", true ); + ViewModelEntity?.SetAnimParameter( "fire", true ); + } + + public override void PrimaryAttack() + { + if (Ammo > 0) + { + --Ammo; + ShootEffects(); + Pawn?.PlaySound( "rust_pistol.shoot" ); + ShootBullet( 100, 100, 1 ); + } + } + + public override void Reload() + { + ReloadEffects(); + } + + [ClientRpc] + protected virtual void ReloadEffects() + { + ViewModelEntity?.SetAnimParameter( "reload", true ); + } + + protected override void Animate() + { + Pawn?.SetAnimParameter( "holdtype", (int)CitizenAnimationHelper.HoldTypes.Pistol ); + } +} -- cgit v1.2.3-70-g09d2