public override _Weapon3.enWaponState excute(_Shoot3 shoot, _Weapon3 wapon, _Weapon3.TriggerUnit trigger) { if (shoot.isScopeable & trigger.press) { wapon.sound.PlayOneShot(zoomSound); if (isScopeMode) { zoomOff(shoot); } else { zoomOn(shoot); } return(_Weapon3.enWaponState.excuting); } else { var progress = wapon.reloadRemainingTime * wapon.maxReloadTimeR; if (progress == 1.0f) { zoomOff(shoot); } return(_Weapon3.enWaponState.ready); } }
public override _Weapon3.enWaponState excute(_Shoot3 shoot, _Weapon3 wapon, _Weapon3.TriggerUnit trigger) { if (wapon.reloadRemainingTime > 0.0f) { return(_Weapon3.enWaponState.reloading); } else { if (bulletRemaining == 0) { bulletRemaining = maxBullets; } var state = base.excute(shoot, wapon, trigger); if ((state & _Weapon3.enWaponState.enterReload) != 0) { if (wapon.reloadRemainingTime == 0.0f) { wapon.maxReloadTimeR = 1.0f / reloadTime; } wapon.reloadRemainingTime += reloadTime; } return(state); } }
public bool shoot(int id, int subId) { var mainTrigger = new _Weapon3.TriggerUnit(false, true, false); var isExcuting = weapons[id].excute(this, subId, mainTrigger); return(isExcuting); }
// 運用 -------------------------------------------------------- protected override bool checkExcuting() { var mainTrigger = new _Weapon3.TriggerUnit(GamePad._r1, GamePad.r1, GamePad.r1_); var subTrigger = new _Weapon3.TriggerUnit(GamePad._l2, GamePad.l2, GamePad.l2_); var isExcuting = weapons.current.excute(this, mainTrigger, subTrigger); sounds.playReload(weapons.current.isReloading & isReloadable); return(isExcuting); }
public override _Weapon3.enWaponState excute(_Shoot3 shoot, _Weapon3 wapon, _Weapon3.TriggerUnit trigger) { if (!shoot.isShootable) { trigger = new _Weapon3.TriggerUnit(); } if (Time.time > fireReadyTime) { /*if( wapon.reloadRemainingTime > 0.0f ) * { * * return _Wapon3.enWaponState.reloading; * * } * else */if (triggerRagTime > 0.0f && trigger.press) { fireReadyTime = Time.time + triggerRagTime; } else if (trigger.push) { fire(shoot, wapon); if (--bulletRemaining > 0) { fireReadyTime = Time.time + nextFireTime; // - ( Time.time - fireReadyTime ); return(_Weapon3.enWaponState.excuting); } else { fireReadyTime = 0.0f; return(_Weapon3.enWaponState.enterReload | _Weapon3.enWaponState.excuting); } } else { return(_Weapon3.enWaponState.ready); } } return(_Weapon3.enWaponState.busy); }
public abstract _Weapon3.enWaponState excute(_Shoot3 shoot, _Weapon3 wapon, _Weapon3.TriggerUnit trigger);