Exemple #1
0
 public void DeadEnemy()
 {
     if (targetList.Count == 0)
     {
         battleState = BATTLE_STATE.WIN;
     }
 }
Exemple #2
0
    private void ChangeState(BATTLE_STATE toState)
    {
        if (mState == toState)
        {
            return;
        }

        mStateTime = 0;
        mState     = toState;
    }
Exemple #3
0
    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);
    }
Exemple #4
0
    private void ChangeState(BATTLE_STATE eState)
    {
        if (mState == eState)
        {
            return;
        }

        mState = eState;
        SetStateTime();
        SetFireTime();
    }
Exemple #5
0
    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);
    }
Exemple #6
0
    //状态改变
    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;
        }
    }
Exemple #7
0
 public override void OnEnterCombat()
 {
     mState = BATTLE_STATE.SHEJI;
     SetFireTime();
 }
Exemple #8
0
 /*
  * 撃破したor撃破された
  * 倒れるモーションが終わり次第呼ばれる
  */
 public void DeadPlayer()
 {
     battleState = BATTLE_STATE.LOSE;
 }
Exemple #9
0
    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;
    }
Exemple #10
0
 BattleManager()
 {
     _isBattle = BATTLE_STATE.None;
 }