Beispiel #1
0
    virtual public void SetBattleEnd()
    {
        ConfigData.Instance.RefreshSleep();

        IsBattleStart = false;

        if (battleEndType != pe_EndBattle.Exit)
        {
            SoundManager.Instance.StopBGM();
            switch (battleEndType)
            {
            case pe_EndBattle.Win:
                ShowPopupTime = Time.time + 4f;
                SoundManager.PlaySound(AssetManager.GetSound("battle_win"), 1f);
                break;

            case pe_EndBattle.Timeout:
            case pe_EndBattle.Lose:
                ShowPopupTime = Time.time + 4f;
                SoundManager.PlaySound(AssetManager.GetSound("battle_lose"), 1f);
                break;

            default:
                ShowPopupTime = Time.time + 2f;
                break;
            }

            dead_characters.AddRange(characters.Where(c => c.IsDead));
//            characters = characters.Where(c => c.IsDead == false).ToList();

            foreach (ICreature icreature in characters)
            {
                if (icreature.IsDead == true)
                {
                    continue;
                }

                BattleCreature creature = icreature as BattleCreature;
                creature.Finish(battleEndType == pe_EndBattle.Win);
            }
            foreach (ICreature icreature in enemies)
            {
                if (icreature.IsDead == true)
                {
                    continue;
                }

                BattleCreature creature = icreature as BattleCreature;
                if (creature == null)
                {
                    continue;
                }
                creature.Finish(battleEndType == pe_EndBattle.Lose);
            }

            foreach (var creature in m_LightingCreatures)
            {
                creature.SetEnd(true);
            }
        }
    }