public override void Reload(Sandbox.Player owner) { if (IsReloading) { return; } if (AmmoClip >= ClipSize) { return; } TimeSinceReload = 0; if (Owner is Player player) { if (player.AmmoCount(AmmoType) <= 0) { return; } StartReloadEffects(); } IsReloading = true; Owner.SetAnimParam("b_reload", true); StartReloadEffects(); }
public override void AttackPrimary(Sandbox.Player owner) { TimeSincePrimaryAttack = 0; TimeSinceSecondaryAttack = 0; ShootEffects(); foreach (var tr in TraceBullet(owner.EyePos, owner.EyePos + owner.EyeRot.Forward * 5000)) { tr.Surface.DoBulletImpact(tr); if (!IsServer) { continue; } if (!tr.Entity.IsValid()) { continue; } using (Prediction.Off()) { var damage = DamageInfo.FromBullet(tr.EndPos, owner.EyeRot.Forward * 100, 15) .UsingTraceResult(tr) .WithAttacker(owner) .WithWeapon(this); tr.Entity.TakeDamage(damage); } } }
public override void AttackPrimary(Sandbox.Player owner) { TimeSincePrimaryAttack = 0; TimeSinceSecondaryAttack = 0; if (!TakeAmmo(1)) { DryFire(); return; } ShootEffects(); PlaySound("rust_pistol.shoot"); ShootBullet(0.05f, 1.5f, 9.0f, 3.0f); }
public override void OnPlayerControlTick(Sandbox.Player owner) { if (TimeSinceDeployed < 0.6f) { return; } if (!IsReloading) { base.OnPlayerControlTick(owner); } if (IsReloading && TimeSinceReload > ReloadTime) { OnReloadFinish(); } }
public override void AttackPrimary(Sandbox.Player owner) { TimeSincePrimaryAttack = 0; TimeSinceSecondaryAttack = 0; if (!TakeAmmo(1)) { DryFire(); return; } Owner.SetAnimParam("b_attack", true); ShootEffects(); PlaySound("rust_smg.shoot"); ShootBullet(0.1f, 1.5f, 5.0f, 3.0f); }
public override void AttackPrimary(Sandbox.Player owner) { TimeSincePrimaryAttack = 0; TimeSinceSecondaryAttack = 0; if (!TakeAmmo(1)) { DryFire(); return; } Owner.SetAnimParam("b_attack", true); ShootEffects(); PlaySound("rust_pumpshotgun.shoot"); for (int i = 0; i < 10; i++) { ShootBullet(0.15f, 0.3f, 9.0f, 3.0f); } }
public override bool CanPrimaryAttack(Sandbox.Player owner) { return(base.CanPrimaryAttack(owner) && owner.Input.Pressed(InputButton.Attack1)); }