IEnumerator StartBattle(MessageEventArgs args)
    {
        if(args.ContainsMessage("Man"))
        {
            GameObject player = Instantiate(Resources.Load(GlobalDataStructure.PATH_UIPREFAB_BATTLE + "Character")) as GameObject;
            player.transform.SetParent(playerPanel.transform, false);
            player.GetComponent<Player>().Init(0);

            player.transform.DOLocalMoveX(-250,0.5f);
        }

        if(args.ContainsMessage("Girl"))
        {
            GameObject player = Instantiate(Resources.Load(GlobalDataStructure.PATH_UIPREFAB_BATTLE + "Character")) as GameObject;
            player.transform.SetParent(playerPanel.transform, false);
            player.GetComponent<Player>().Init(1);

            player.transform.DOLocalMoveX(250,0.5f);
        }

        if(args.ContainsMessage("Enemy"))
        {
            int[] enemyIDs = args.GetMessage<int[]>("Enemy");
            for(int i = 0; i < enemyIDs.Length; i++)
            {
                GameObject enemy = Instantiate(Resources.Load(GlobalDataStructure.PATH_UIPREFAB_BATTLE + "Enemy")) as GameObject;
                enemy.transform.SetParent(enemyPanel.transform, false);
                enemy.GetComponent<Enemy>().Init(enemyIDs[i]);
                enemy.transform.localScale = new Vector3(0,0,0);
                enemy.transform.DOScale(1, 1);
                yield return new WaitForSeconds(1f);
                switch(enemyIDs.Length)
                {
                case 2: if(i == 0)
                        enemy.transform.DOLocalMoveX(-150,0.5f);
                    else if(i == 1)
                        enemy.transform.DOLocalMoveX(150,0.5f);
                    break;
                case 3:	if(i == 0)
                        enemy.transform.DOLocalMoveX(-200,0.5f);
                    else if(i == 1)
                        enemy.transform.DOLocalMoveX(200,0.5f);
                    break;
                }
            }
        }

        yield return new WaitForSeconds(0.5f);
        EventManager.Instance.PostEvent (BattleEvent.OnBattleStart);
    }
    void OnCommandSelected(MessageEventArgs args)
    {
        currentPlayer.commandToExecute = currentCommand;
        bool result = SkillHelper.FillCommandTarget(currentPlayer);
        if(!result)
        {
            if(args.ContainsMessage("Target"))
            {
                BattleObject bo = args.GetMessage<BattleObject>("Target");
                currentCommand.targetList.Add(bo);
            }
        }
        currentPlayer.GetComponent<BattleObjectUIEvent>().EndReady();
        currentPlayer.battleStatus = BattleStatus.Action;
        foreach(Enemy enemy in enemys)
        {
            enemy.GetComponent<BattleObjectUIEvent>().DisableClick();
        }
        foreach(Player player in players)
        {
            player.GetComponent<BattleObjectUIEvent>().DisableClick();
        }

        readyQueue.Dequeue();
    }