void Fire(WeaponModel weapon) { bool fireButtonPush = (Controller.FIRE && !weapon.FirePermanent) || (Controller.FIRE_PERMANENT && weapon.FirePermanent); bool hasAmmo = weapon.CanFire(); if (fireButtonPush && coolDown.isTrigerrable && hasAmmo) { fireBullet.Fire(weapon); weapon.FireCost(); coolDown.Triggered(); } }