public void DeadEnemy() { if (targetList.Count == 0) { battleState = BATTLE_STATE.WIN; } }
private void ChangeState(BATTLE_STATE toState) { if (mState == toState) { return; } mStateTime = 0; mState = toState; }
public override void OnExitCombat() { mIsFighting = false; mState = BATTLE_STATE.STATE_1; mAngerValue = 0; mStateTime = 0; mMoneyValue = 0; EventSystem.Instance.removeEventListener(FindPickEvent.FIND_PICK_BOX, OnPicked); }
private void ChangeState(BATTLE_STATE eState) { if (mState == eState) { return; } mState = eState; SetStateTime(); SetFireTime(); }
public override void OnEnterCombat() { mIsFighting = true; mState = BATTLE_STATE.STATE_1; mAngerValue = 0; mStateTime = 0; mMoneyValue = 0; mFindJieYao = false; // 事件可能会引起内存泄露,需要处理 EventSystem.Instance.addEventListener(FindPickEvent.FIND_PICK_BOX, OnPicked); }
//状态改变 public void ChangeState(BATTLE_STATE state) { if (_battleState == state) { return; } switch (state) { case BATTLE_STATE.NONE: _battleState = state; this.PlayAction(PLAYER_AC_NAME.IDLE); break; case BATTLE_STATE.SKILL: if (CanUseSkill()) { _battleState = state; } break; case BATTLE_STATE.MOVE: if (CanMove()) { _battleState = state; } this.PlayAction(PLAYER_AC_NAME.RUN); break; case BATTLE_STATE.DIE: this.PlayAction(PLAYER_AC_NAME.DIE); _battleState = state; TimeOutReborn(); break; default: _battleState = state; break; } }
public override void OnEnterCombat() { mState = BATTLE_STATE.SHEJI; SetFireTime(); }
/* * 撃破したor撃破された * 倒れるモーションが終わり次第呼ばれる */ public void DeadPlayer() { battleState = BATTLE_STATE.LOSE; }
public IEnumerator BattleFlow(IPlayer challenger, IPlayer defender, BoardController board) { _isBattle = BATTLE_STATE.Play; ICharacter challengerChar = challenger.GetCharController().GetCurrentCharacter(); if (challengerChar.GetMyState() == ICharacter.STATE.GREEN) { _isBattle = BATTLE_STATE.Finished; yield break; } List <ICharacter> defList = new List <ICharacter>(); foreach (ICharacter character in defender.GetCharController().GetCharacters()) { if (character.GetMyState() == ICharacter.STATE.FROZEN) { continue; } if (GetDistance(challengerChar, character) > challengerChar.GetAttackRange()) { continue; } if (challengerChar.GetMyType() == character.GetMyType()) { continue; } defList.Add(character); } if (defList.Count == 0) { _isBattle = BATTLE_STATE.Finished; yield break; } // 戦闘アニメーションを再生する foreach (ICharacter character in defList) { character.AttackAnimation(true); } challengerChar.AttackAnimation(true); // カットイン挿入 challenger.GetCharController().PlayCutIn(challengerChar); switch (challengerChar.GetMyType()) { case ICharacter.TYPE.FIGHTER: SoundSystem.Instance.PlayClip(AUDIO_TYPE.SOUND_EFFECTS, AudioClipManager.GetInstance().GetAudioClip("WarriorAtk_Voice_1"), false, "GenericGameSFX"); break; case ICharacter.TYPE.ARCHER: SoundSystem.Instance.PlayClip(AUDIO_TYPE.SOUND_EFFECTS, AudioClipManager.GetInstance().GetAudioClip("ArcherAtk_Voice_1"), false, "GenericGameSFX"); break; case ICharacter.TYPE.MAGICIAN: SoundSystem.Instance.PlayClip(AUDIO_TYPE.SOUND_EFFECTS, AudioClipManager.GetInstance().GetAudioClip("Mage_Voice_1"), false, "GenericGameSFX"); break; } yield return(new WaitForSeconds(3.0f)); // 戦闘アニメーションを終了する foreach (ICharacter character in defList) { character.AttackAnimation(false); } challengerChar.AttackAnimation(false); // 戦わせる bool isChallengerDeath = false; for (int i = defList.Count - 1; i >= 0; --i) { if (CheckCompatibility(challengerChar.GetMyType(), defList[i].GetMyType()) == Compatibility.Strong) { challenger.GetCharController().CharaVictory(challengerChar); challengerChar.AttackEffect(defList[i].transform.position); if (defList[i].GetMyState() == ICharacter.STATE.GREEN) { continue; } defList[i].DeathAnimation(); defList[i].ChangeState(ICharacter.STATE.FROZEN); } else { if (defList[i].GetMyState() == ICharacter.STATE.GREEN) { continue; } defender.GetCharController().CharaVictory(defList[i]); challengerChar.DeathAnimation(); defList[i].AttackEffect(challengerChar.transform.position); challengerChar.ChangeState(ICharacter.STATE.FROZEN); isChallengerDeath = true; } } yield return(new WaitForSeconds(1.0f)); for (int i = defList.Count - 1; i >= 0; --i) { if (defList[i].GetMyState() == ICharacter.STATE.FROZEN) { board.AddObstacle(defList[i].X(), defList[i].Y()); defender.GetCharController().CharaLose(defList[i]); switch (defList[i].GetMyType()) { case ICharacter.TYPE.FIGHTER: SoundSystem.Instance.PlayClip(AUDIO_TYPE.SOUND_EFFECTS, AudioClipManager.GetInstance().GetAudioClip("WarriorDmg_Voice_1"), false, "GenericGameSFX"); break; case ICharacter.TYPE.ARCHER: SoundSystem.Instance.PlayClip(AUDIO_TYPE.SOUND_EFFECTS, AudioClipManager.GetInstance().GetAudioClip("ArcherDmg_Voice_1"), false, "GenericGameSFX"); break; case ICharacter.TYPE.MAGICIAN: SoundSystem.Instance.PlayClip(AUDIO_TYPE.SOUND_EFFECTS, AudioClipManager.GetInstance().GetAudioClip("MageDmg_Voice_1"), false, "GenericGameSFX"); break; } } } if (isChallengerDeath) { board.AddObstacle(challengerChar.X(), challengerChar.Y()); challenger.GetCharController().CharaLose(challengerChar); switch (challengerChar.GetMyType()) { case ICharacter.TYPE.FIGHTER: SoundSystem.Instance.PlayClip(AUDIO_TYPE.SOUND_EFFECTS, AudioClipManager.GetInstance().GetAudioClip("WarriorDmg_Voice_2"), false, "GenericGameSFX"); break; case ICharacter.TYPE.ARCHER: SoundSystem.Instance.PlayClip(AUDIO_TYPE.SOUND_EFFECTS, AudioClipManager.GetInstance().GetAudioClip("ArcherDmg_Voice_2"), false, "GenericGameSFX"); break; case ICharacter.TYPE.MAGICIAN: SoundSystem.Instance.PlayClip(AUDIO_TYPE.SOUND_EFFECTS, AudioClipManager.GetInstance().GetAudioClip("MageDmg_Voice_2"), false, "GenericGameSFX"); break; } } // 戦後アニメーション _isBattle = BATTLE_STATE.Finished; }
BattleManager() { _isBattle = BATTLE_STATE.None; }