Esempio n. 1
0
    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.S) || Input.GetKeyDown("down"))
        {
            if (currSelect < MAINMENU_OPTIONS.EXIT)
            {
                currSelect++;
                buttons[(int)currSelect].Select();
                SoundSystem.Instance.PlayClip(AUDIO_TYPE.SOUND_EFFECTS, AudioClipManager.GetInstance().GetAudioClip("Select_Hover"), false, "GenericGameSFX");
            }
        }
        else if (Input.GetKeyDown(KeyCode.W) || Input.GetKeyDown("up"))
        {
            if (currSelect > MAINMENU_OPTIONS.START_GAME)
            {
                currSelect--;
                buttons[(int)currSelect].Select();
                SoundSystem.Instance.PlayClip(AUDIO_TYPE.SOUND_EFFECTS, AudioClipManager.GetInstance().GetAudioClip("Select_Hover"), false, "GenericGameSFX");
            }
        }

        if (Input.GetKeyDown(KeyCode.Space))
        {
            //SoundSystem.Instance.PlayClip(AUDIO_TYPE.SOUND_EFFECTS, AudioClipManager.GetInstance().GetAudioClip("Select_Yes"), false, "GenericGameSFX");
            ExecuteEvents.Execute(buttons[(int)currSelect].gameObject, pointer, ExecuteEvents.submitHandler);
        }
    }
Esempio n. 2
0
    private void Start()
    {
        EnemiesBeat = 0;
        Stage       = this;
        StageNumber = 0;

        AudioManager = BackgroundMusicPlayer.GetComponent <AudioClipManager>();

        EnemyLibrary = new Dictionary <string, GameObject>(LibraryEntries.Count);

        PlayerBullet.BulletDestroyParticles = BulletParticles;

        if (TestingMode)
        {
            Debug.Log("Starting in test mode");
            StartCoroutine(SpawnEnemies());
        }
        else
        {
            Debug.Log("Loading enemies...");

            // Load enemies into lib
            foreach (EnemyLibEntry entry in LibraryEntries)
            {
                EnemyLibrary.Add(entry.Id, entry.Enemy);
            }

            Debug.Log("Loaded enemies.");

            Debug.Log("Starting in play mode...");
            StartCoroutine(PlayLevel());
        }
    }
 private void Awake()
 {
     if (!instance || instance != this)
     {
         Destroy(instance);
         instance = this;
     }
 }
Esempio n. 4
0
 // Start is called before the first frame update
 void Start()
 {
     Factory.Instance.Initialize();
     EnemyManager.Instance.Initialize();
     EnvironmentManager.Instance.Initialize();
     ParticlesManager.Instance.Initialize();
     AudioManager.Instance.Initialize();
     AudioClipManager.Initialize();
 }
Esempio n. 5
0
 void Awake()
 {
     if (instance == null)
     {
         instance = this;
     }
     else if (instance != this)
     {
         Destroy(gameObject);
     }
 }
 // 参数:clipName,僵尸声音类型,僵尸Transform,延迟,声音大小,音调
 public static void Play(string clipName, ZombieAudioType type, Transform zombieTrans, float delay, float volMul, float pitch)
 {
     if (Profile.soundEnable)
     {
         int    index = (int)type;
         string key   = clipName + index;
         if (!clipInfoDict.ContainsKey(key))
         {
             TypeInfo info = typeInfoArray[index];
             if ((info.current < info.max) && (Time.realtimeSinceStartup >= (info.lastCallTime + info.interval)))
             {
                 AudioClip clip = AudioClipManager.GetClip(clipName);
                 if (clip == null)
                 {
                     Debug.Log("no clip" + clipName);
                 }
                 else
                 {
                     ClipInfo clipInfo = new ClipInfo
                     {
                         zombieTrans = zombieTrans,
                         name        = clipName,
                         type        = type,
                         playTime    = Time.realtimeSinceStartup,
                         delay       = delay,
                         volMul      = volMul,
                         pitch       = pitch
                     };
                     info.current++;
                     info.lastCallTime = Time.realtimeSinceStartup;
                     // 如果没有延迟,直接播放,有延迟在update中处理
                     if (clipInfo.delay <= 0f)
                     {
                         AudioSource source = new GameObject("Audio:" + clipName)
                         {
                             transform = { parent = root }
                         }.AddComponent <AudioSource>();
                         source.clip   = clip;
                         source.volume = clipInfo.volMul * info.volumeMul;
                         source.loop   = false;
                         float num2 = Mathf.Clamp(Time.timeScale, 0.75f, 1f);
                         source.pitch         = clipInfo.pitch * num2;
                         clipInfo.length      = clip.length / source.pitch;
                         clipInfo.audioSource = source;
                         source.Play();
                         SpecialDeal(clipInfo);
                     }
                     clipInfoDict.Add(key, clipInfo);
                 }
             }
         }
     }
 }
 void Awake()
 {
     //Set Shared Instance
     if (sharedInstance != null && sharedInstance != this)
     {
         Destroy(this.gameObject);
     }
     else
     {
         sharedInstance = this;
     }
 }
Esempio n. 8
0
    public IEnumerator ConstantMove(Vector3 goal, int flame)
    {
        _condition = CONDITION.ACTION;
        if (_x == -1)
        {
            yield return(new WaitForSeconds(1.0f));
        }
        SoundSystem.Instance.PlayClip(AUDIO_TYPE.SOUND_EFFECTS, AudioClipManager.GetInstance().GetAudioClip("MoveSFX_2"), false, "GenericGameSFX");
        Vector3 vel = (goal - transform.position) / flame;      //

        for (int i = 0; i < flame; i++)
        {
            transform.position += vel;      //
            yield return(null);
        }
        _condition = CONDITION.END;
    }
 private void Update()
 {
     foreach (string str in clipInfoDict.Keys)
     {
         ClipInfo clipInfo = clipInfoDict[str];
         int      type     = (int)clipInfo.type;
         TypeInfo info2    = typeInfoArray[type];
         // 处理延迟播放
         if ((clipInfo.delay > 0f) && ((Time.realtimeSinceStartup - clipInfo.playTime) >= clipInfo.delay))
         {
             clipInfo.delay    = 0f;
             clipInfo.playTime = Time.realtimeSinceStartup;
             AudioClip   clip   = AudioClipManager.GetClip(clipInfo.name);
             AudioSource source = new GameObject("Audio:" + clipInfo.name)
             {
                 transform = { parent = root }
             }.AddComponent <AudioSource>();
             source.clip   = clip;
             source.volume = clipInfo.volMul * info2.volumeMul;
             source.loop   = false;
             float num2 = Mathf.Clamp(Time.timeScale, 0.75f, 1f);
             source.pitch         = clipInfo.pitch * num2;
             clipInfo.length      = clip.length / source.pitch;
             clipInfo.audioSource = source;
             source.Play();
             SpecialDeal(clipInfo);
         }
         else if (Time.realtimeSinceStartup >= (clipInfo.playTime + clipInfo.length))
         {
             clipInfoDeleteList.Add(str);
             info2.current--;
             if (clipInfo.audioSource != null)
             {
                 Destroy(clipInfo.audioSource.gameObject);
             }
         }
     }
     if (clipInfoDeleteList.Count > 0)
     {
         for (int i = 0; i < clipInfoDeleteList.Count; i++)
         {
             clipInfoDict.Remove(clipInfoDeleteList[i]);
         }
         clipInfoDeleteList.Clear();
     }
 }
Esempio n. 10
0
    void Awake()
    {
        //Check if there is already an instance of SoundManager
        if (sinstance == null)
        {
            //if not, set it to this.
            sinstance = this;
        }
        //If instance already exists:
        else if (sinstance != this)
        {
            //Destroy this, this enforces our singleton pattern so there can only be one instance of SoundManager.
            Destroy(gameObject);
        }

        //Set SoundManager to DontDestroyOnLoad so that it won't be destroyed when reloading our scene.
        DontDestroyOnLoad(gameObject);
    }
Esempio n. 11
0
    public ICharacter SetCharacterOnBoard(ICharacter character)
    {
        switch (character._myType)
        {
        case ICharacter.TYPE.FIGHTER:
            _possessionFighter--;
            break;

        case ICharacter.TYPE.ARCHER:
            _possessionArcher--;
            break;

        case ICharacter.TYPE.MAGICIAN:
            _possessionMagician--;
            break;

        default:
            break;
        }
        character.SetOnBoard(true);
        _characters.Add(character);
        Instantiate(_summonEffect, character.transform.position, new Quaternion(0, 0, 0, 0));
        //SoundSystem.Instance.PlayClip(AUDIO_TYPE.SOUND_EFFECTS, AudioClipManager.GetInstance().GetAudioClip("ExtraSFX"), false, "GenericGameSFX");

        switch (character.GetMyType())
        {
        case ICharacter.TYPE.FIGHTER:
            SoundSystem.Instance.PlayClip(AUDIO_TYPE.SOUND_EFFECTS,
                                          AudioClipManager.GetInstance().GetAudioClip("WarriorAtk_Voice_2"), false, "GenericGameSFX");
            break;

        case ICharacter.TYPE.ARCHER:
            SoundSystem.Instance.PlayClip(AUDIO_TYPE.SOUND_EFFECTS,
                                          AudioClipManager.GetInstance().GetAudioClip("ArcherAtk_Voice_2"), false, "GenericGameSFX");
            break;

        case ICharacter.TYPE.MAGICIAN:
            SoundSystem.Instance.PlayClip(AUDIO_TYPE.SOUND_EFFECTS,
                                          AudioClipManager.GetInstance().GetAudioClip("Mage_Voice_2"), false, "GenericGameSFX");
            break;
        }
        return(character);
    }
Esempio n. 12
0
    // Use this for initialization
    void Start()
    {
        SoundSystem.Instance.PlayClip(AUDIO_TYPE.BACKGROUND_MUSIC, AudioClipManager.GetInstance().GetAudioClip("GameSceneBGM"), true, "BGMSource");

        _gameCondition = GAME_CONDITION.SELECT;
        _player1       = _player1Object.AddComponent <ManualPlayer>();
        _player2       = _player2Object.AddComponent <AI>();
        _player1.Initialize(1);
        _player2.Initialize(2);
        _currentPlayer = _player1;

        _currentPlayer.GetCharController().IsPlaying(true);

        _boardController.AddObstacle(1, 1, true);
        _boardController.AddObstacle(3, 3, true);

        _endScreen = GameObject.Find("EndScreenDisplay").GetComponent <GameEndDisplayScript>();
        _isStop    = false;
    }
Esempio n. 13
0
    // Update is called once per frame
    void Update()
    {
        if (!win && !lose)
        {
            if (gamemanager.GetTurnNumber() == 0)
            {
                lose = true;
            }

            foreach (CharController controller in controllers)
            {
                if (controller.GetGreenCount() != 3)
                {
                    continue;
                }

                if (controller.GetOwner().GetPlayerID() == 1)
                {
                    win = true;
                }
                else
                {
                    lose = true;
                }
            }

            if (win || lose)
            {
                if (win)
                {
                    winDisplay.SetActive(true);
                    SoundSystem.Instance.PlayClip(AUDIO_TYPE.SOUND_EFFECTS, AudioClipManager.GetInstance().GetAudioClip("Win_1"), false, "GenericGameSFX");
                }
                else
                {
                    loseDisplay.SetActive(true);
                    SoundSystem.Instance.PlayClip(AUDIO_TYPE.SOUND_EFFECTS, AudioClipManager.GetInstance().GetAudioClip("Lose"), false, "GenericGameSFX");
                }
                background.SetActive(true);
                genericDisplay.SetActive(true);
            }
        }
    }
Esempio n. 14
0
    public AudioSource Play(string clipName, Vector3 point, float volume, float pitch, bool loop, bool ignoreTimeScale)
    {
        if (!Profile.soundEnable)
        {
            return(null);
        }
        AudioClip clip = AudioClipManager.GetClip(clipName);

        if (clip == null)
        {
            Debug.Log("no clip " + clipName);
            return(null);
        }
        GameObject go = new GameObject("Audio:" + clipName)
        {
            transform =
            {
                parent        = base.transform,
                localPosition = point
            }
        };
        AudioSource source = go.AddComponent <AudioSource>();

        source.clip   = clip;
        source.volume = volume;
        float num = 1f;

        // 时间缩放影响声音
        if (!ignoreTimeScale)
        {
            num = Mathf.Clamp(Time.timeScale, 0.75f, 1f);
        }
        source.pitch = pitch * num;
        source.loop  = loop;
        source.Play();
        // 如果不是循环的,播放完消除掉
        if (!loop)
        {
            Destroy(go, source.clip.length + 0.5f);
        }
        return(source);
    }
Esempio n. 15
0
 public void PlayBG(string clipName)
 {
     if (Profile.musicEnable)
     {
         string[] strArray = clipName.Split(new char[] { '/' });
         string   str      = strArray[strArray.Length - 1];
         if ((this.audioMgr != null) && (this.audioMgr.clip != null) && this.audioMgr.clip.name.Equals(str))
         {
             if (!this.audioMgr.isPlaying)
             {
                 this.audioMgr.volume = 1f;
                 this.audioMgr.Play();
             }
         }
         else
         {
             this.audioMgr.volume = 1f;
             this.audioMgr.clip   = AudioClipManager.GetClip(clipName);
             this.audioMgr.Play();
         }
     }
 }
Esempio n. 16
0
 private void Awake()
 {
     instance = this;
 }
Esempio n. 17
0
 void Start()
 {
     SoundSystem.Instance.PlayClip(AUDIO_TYPE.BACKGROUND_MUSIC, AudioClipManager.GetInstance().GetAudioClip("TitleSceneBGM"), true, "BGMSource");
 }
Esempio n. 18
0
    void PreloadSounds()
    {
        //SoundSystem.Instance.PlayClip(AUDIO_TYPE.BACKGROUND_MUSIC, AudioClipManager.GetInstance().GetAudioClip(""));
        //AudioClipManager.GetInstance().GenerateAudioClip("filename","filepath");
        //Keep Adding on The same line with the filename and filepath replaced respectively for new sounds

        if (AudioClipManager.GetInstance().GetAudioClip("ArcherShootSFX") != null)
        {
            return;
        }

        //SFX
        AudioClipManager.GetInstance().GenerateAudioClip("ArcherShootSFX", "Attacks!/Archer_01");
        AudioClipManager.GetInstance().GenerateAudioClip("MageMagicSFX", "Attacks!/Mage_01");
        AudioClipManager.GetInstance().GenerateAudioClip("WarriorSlashSFX", "Attacks!/Warrior_01");
        AudioClipManager.GetInstance().GenerateAudioClip("ExtraSFX", "Extra/EXTRA_01");
        //AudioClipManager.GetInstance().GenerateAudioClip("FailSFX", "Fail/Stone");
        AudioClipManager.GetInstance().GenerateAudioClip("MoveSFX_1", "Move/Slide_01");
        AudioClipManager.GetInstance().GenerateAudioClip("MoveSFX_2", "Move/Slide_02");
        AudioClipManager.GetInstance().GenerateAudioClip("MoveSFX_3", "Move/Slide_03");
        AudioClipManager.GetInstance().GenerateAudioClip("MoveSFX_4", "Move/Slide_04");
        AudioClipManager.GetInstance().GenerateAudioClip("MoveSFX_5", "Move/Slide_05");
        AudioClipManager.GetInstance().GenerateAudioClip("Select_No_1", "No/Select_No_01");
        AudioClipManager.GetInstance().GenerateAudioClip("Select_No_2", "No/Select_No_02");
        AudioClipManager.GetInstance().GenerateAudioClip("Select_No_3", "No/Select_No_03");
        //AudioClipManager.GetInstance().GenerateAudioClip("Select_No_4", "No/Select_No_04");
        AudioClipManager.GetInstance().GenerateAudioClip("Select_Fail", "Select/Select_Fail");
        AudioClipManager.GetInstance().GenerateAudioClip("Select_Hover", "Select/Select_Hover");
        AudioClipManager.GetInstance().GenerateAudioClip("Select_Yes", "Select/Select_Yes");
        AudioClipManager.GetInstance().GenerateAudioClip("Win_1", "Win/Win_01");
        AudioClipManager.GetInstance().GenerateAudioClip("Win_2", "Win/Win_02");
        AudioClipManager.GetInstance().GenerateAudioClip("Win_3", "Win/Win_03");
        //AudioClipManager.GetInstance().GenerateAudioClip("Win_4", "Win/Win_04");
        //AudioClipManager.GetInstance().GenerateAudioClip("Win_5", "Win/Win_05");
        //AudioClipManager.GetInstance().GenerateAudioClip("Win_6", "Win/Win_06");
        //AudioClipManager.GetInstance().GenerateAudioClip("Win_7", "Win/Win_07");
        AudioClipManager.GetInstance().GenerateAudioClip("Select_Yes_1", "Yes/Select_Yes_01");
        AudioClipManager.GetInstance().GenerateAudioClip("Select_Yes_2", "Yes/Select_Yes_02");
        AudioClipManager.GetInstance().GenerateAudioClip("Select_Yes_3", "Yes/Select_Yes_03");
        //AudioClipManager.GetInstance().GenerateAudioClip("Select_Yes_4", "Yes/Select_Yes_04");
        //AudioClipManager.GetInstance().GenerateAudioClip("Select_Yes_5", "Yes/Select_Yes_05");
        //AudioClipManager.GetInstance().GenerateAudioClip("Select_Yes_6", "Yes/Select_Yes_06");
        AudioClipManager.GetInstance().GenerateAudioClip("ArcherAtk_Voice_1", "Voice/Attack/Archer_Attack_01");
        AudioClipManager.GetInstance().GenerateAudioClip("ArcherAtk_Voice_2", "Voice/Attack/Archer_Attack_02");
        AudioClipManager.GetInstance().GenerateAudioClip("ArcherAtk_Voice_3", "Voice/Attack/Archer_Attack_03");
        AudioClipManager.GetInstance().GenerateAudioClip("Mage_Voice_1", "Voice/Attack/Mage_Attack_01");
        AudioClipManager.GetInstance().GenerateAudioClip("Mage_Voice_2", "Voice/Attack/Mage_Attack_02");
        AudioClipManager.GetInstance().GenerateAudioClip("Mage_Voice_3", "Voice/Attack/Mage_Attack_03");
        AudioClipManager.GetInstance().GenerateAudioClip("Mage_Voice_4", "Voice/Attack/Mage_Attack_04");
        AudioClipManager.GetInstance().GenerateAudioClip("WarriorAtk_Voice_1", "Voice/Attack/Warrior_Attack_01");
        AudioClipManager.GetInstance().GenerateAudioClip("WarriorAtk_Voice_2", "Voice/Attack/Warrior_Attack_02");
        AudioClipManager.GetInstance().GenerateAudioClip("WarriorAtk_Voice_3", "Voice/Attack/Warrior_Attack_03");
        AudioClipManager.GetInstance().GenerateAudioClip("ArcherDmg_Voice_1", "Voice/Damage/Archer_Damage_01");
        AudioClipManager.GetInstance().GenerateAudioClip("ArcherDmg_Voice_2", "Voice/Damage/Archer_Damage_02");
        AudioClipManager.GetInstance().GenerateAudioClip("ArcherDmg_Voice_3", "Voice/Damage/Archer_Damage_03");
        AudioClipManager.GetInstance().GenerateAudioClip("MageDmg_Voice_1", "Voice/Damage/Mage_Damage_01");
        AudioClipManager.GetInstance().GenerateAudioClip("MageDmg_Voice_2", "Voice/Damage/Mage_Damage_02");
        AudioClipManager.GetInstance().GenerateAudioClip("MageDmg_Voice_3", "Voice/Damage/Mage_Damage_03");
        AudioClipManager.GetInstance().GenerateAudioClip("WarriorDmg_Voice_1", "Voice/Damage/Warrior_Damage_01");
        AudioClipManager.GetInstance().GenerateAudioClip("WarriorDmg_Voice_2", "Voice/Damage/Warrior_Damage_02");
        AudioClipManager.GetInstance().GenerateAudioClip("WarriorDmg_Voice_3", "Voice/Damage/Warrior_Damage_03");
        AudioClipManager.GetInstance().GenerateAudioClip("ArcherFail_Voice_1", "Voice/Fail/Archer_Fail_01");
        AudioClipManager.GetInstance().GenerateAudioClip("ArcherFail_Voice_2", "Voice/Fail/Archer_Fail_02");
        AudioClipManager.GetInstance().GenerateAudioClip("ArcherFail_Voice_3", "Voice/Fail/Archer_Fail_03");
        AudioClipManager.GetInstance().GenerateAudioClip("ArcherFail_Voice_4", "Voice/Fail/Archer_Fail_04");
        AudioClipManager.GetInstance().GenerateAudioClip("MageFail_Voice_1", "Voice/Fail/Mage_Fail_01");
        AudioClipManager.GetInstance().GenerateAudioClip("MageFail_Voice_2", "Voice/Fail/Mage_Fail_02");
        AudioClipManager.GetInstance().GenerateAudioClip("MageFail_Voice_3", "Voice/Fail/Mage_Fail_03");
        AudioClipManager.GetInstance().GenerateAudioClip("MageFail_Voice_4", "Voice/Fail/Mage_Fail_04");
        AudioClipManager.GetInstance().GenerateAudioClip("MageFail_Voice_5", "Voice/Fail/Mage_Fail_05");
        AudioClipManager.GetInstance().GenerateAudioClip("MageFail_Voice_6", "Voice/Fail/Mage_Fail_06");
        AudioClipManager.GetInstance().GenerateAudioClip("WarriorFail_Voice_1", "Voice/Fail/Warrior_Fail_01");
        AudioClipManager.GetInstance().GenerateAudioClip("WarriorFail_Voice_2", "Voice/Fail/Warrior_Fail_02");
        AudioClipManager.GetInstance().GenerateAudioClip("WarriorFail_Voice_3", "Voice/Fail/Warrior_Fail_03");
        AudioClipManager.GetInstance().GenerateAudioClip("WarriorFail_Voice_4", "Voice/Fail/Warrior_Fail_04");
        AudioClipManager.GetInstance().GenerateAudioClip("ArcherWin_Voice_1", "Voice/Win!/Archer_Win_01");
        AudioClipManager.GetInstance().GenerateAudioClip("ArcherWin_Voice_2", "Voice/Win!/Archer_Win_02");
        AudioClipManager.GetInstance().GenerateAudioClip("ArcherWin_Voice_3", "Voice/Win!/Archer_Win_03");
        AudioClipManager.GetInstance().GenerateAudioClip("ArcherWin_Voice_4", "Voice/Win!/Archer_Win_04");
        AudioClipManager.GetInstance().GenerateAudioClip("MageWin_Voice_1", "Voice/Win!/Mage_Win_01");
        AudioClipManager.GetInstance().GenerateAudioClip("MageWin_Voice_2", "Voice/Win!/Mage_Win_02");
        AudioClipManager.GetInstance().GenerateAudioClip("MageWin_Voice_3", "Voice/Win!/Mage_Win_03");
        AudioClipManager.GetInstance().GenerateAudioClip("MageWin_Voice_4", "Voice/Win!/Mage_Win_04");
        AudioClipManager.GetInstance().GenerateAudioClip("WarriorWin_Voice_1", "Voice/Win!/Warrior_Win_01");
        AudioClipManager.GetInstance().GenerateAudioClip("WarriorWin_Voice_2", "Voice/Win!/Warrior_Win_02");
        AudioClipManager.GetInstance().GenerateAudioClip("WarriorWin_Voice_3", "Voice/Win!/Warrior_Win_03");
        AudioClipManager.GetInstance().GenerateAudioClip("WarriorWin_Voice_4", "Voice/Win!/Warrior_Win_04");
        AudioClipManager.GetInstance().GenerateAudioClip("Lose", "Lose/lose");


        //BGM
        AudioClipManager.GetInstance().GenerateAudioClip("GameSceneBGM", "BGM/GameSceneBGM");
        AudioClipManager.GetInstance().GenerateAudioClip("TitleSceneBGM", "BGM/TitleSceneBGM");
    }
Esempio n. 19
0
 public void PlayGenericSFX(string audioClipName)
 {
     SoundSystem.Instance.PlayClip(AUDIO_TYPE.SOUND_EFFECTS, AudioClipManager.GetInstance().GetAudioClip(audioClipName), false, "GenericGameSFX");
 }
Esempio n. 20
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;
    }