public void Init()
    {
        if (!UiIndex.gameObject.activeSelf)
        {
            UiIndex.gameObject.SetActive(true);
        }

        BattleTools.DoTeamBuff(Player, Enemy, null, EffectTimeType.Time_0);  //初始化BUFF Time_0

        //UiIndex = GameObject.FindObjectOfType<BattlefieldUiIndex>();
        UiIndex.m_AttackButton.onClick.RemoveAllListeners();
        UiIndex.m_EscapeButton.onClick.RemoveAllListeners();
        UiIndex.m_AttackButton_Text.text = "进攻";
        UiIndex.m_EscapeButton_Text.text = "撤退";
        UiIndex.ClearEventText();
        UiIndex.HideTableWindow();
        UiIndex.HideInfoWindow();

        UpdataBattleRanksText();
        UiIndex.ClearEventText();
        UiIndex.AddEventText("战斗开始,请下令进攻!");
        UiIndex.m_AttackButton.onClick.AddListener(Attack);
        UiIndex.m_EscapeButton.onClick.AddListener(Escape);

        UiIndex.m_Skill_1_Button.onClick.AddListener(() => { SkillButtonOnClick(0); });
        UiIndex.m_Skill_2_Button.onClick.AddListener(() => { SkillButtonOnClick(1); });
        UiIndex.m_Skill_3_Button.onClick.AddListener(() => { SkillButtonOnClick(2); });
    }
    public override void DoEffect(string skillName, King king, King toking, BattleData battleData)
    {
        int damager = int.Parse(Values[0]);
        List <TeamAttackingData> team_attack_datas = new List <TeamAttackingData>();


        foreach (var team in toking.army.team)
        {
            if (team == null)
            {
                continue;
            }
            if (team.GetBattleCount() == 0)
            {
                continue;
            }
            TeamAttackingData        teamData = new TeamAttackingData();
            List <UnitAttackingData> list     = new List <UnitAttackingData>();

            TeamSummaryData data = team.GetSummary();
            list = BattleContorl.CreateSkillToUnitData(skillName, damager, team, data, battleData);

            //调整伤亡率
            BattleContorl.SetDamager(damager, 0, null, data, list);

            //buff3 例如调整特定单位对特定单位的保护效果 真实伤害 调整受到伤害的BUFF     Time_2
            foreach (var unitdata in list)
            {
                BattleTools.DoUnitBuff(unitdata, EffectTimeType.Time_2);
            }

            teamData.DoDamger = BattleTools.GetDameger(list);
            team_attack_datas.Add(teamData);
            teamData.UnitAttackingDatas = list;
        }

        foreach (var item in team_attack_datas)
        {
            BattleContorl.DoingUnitAttackData(item);
        }

        //BUFF 战后BUFF Time_4
        foreach (var item in team_attack_datas)
        {
            BattleTools.DoTeamBuff(king, toking, item, EffectTimeType.Time_4);
        }
    }
    public void Attack()
    {
        TeamAttackingData[,] team_attack_datas = new TeamAttackingData[3, 3];
        for (int i = 0; i < 3; i++)
        {
            for (int j = 0; j < 3; j++)
            {
                team_attack_datas[i, j] = CeateAttackingData(Player.army.team[i], Enemy.army.team[j], (j + i + 1), Round, this);
            }
        }

        foreach (var item in team_attack_datas)
        {
            if (item != null)
            {
                foreach (var iitem in item.UnitAttackingDatas)
                {
                    iitem.battleData.AllTeamAttackDatas = team_attack_datas;
                }
            }
        }


        //此处根据攻击距离调整伤害
        SetDistentDamger(team_attack_datas);

        foreach (var item in team_attack_datas)
        {
            if (item != null)
            {
                SetTeamToTeamData(item);
            }
        }

        UiIndex.AddEventText("--{ 回合-" + Round + " }--");


        for (int i = 0; i < 3; i++)
        {
            for (int j = 0; j < 3; j++)
            {
                if (team_attack_datas[i, j] == null)
                {
                    continue;
                }
                if (team_attack_datas[i, j].DoDamger <= 0 && team_attack_datas[i, j].ByDamger <= 0)
                {
                    continue;
                }

                UiIndex.AddEventText("[己方队伍" + (i + 1) + "] - [敌方队伍" + (j + 1) + "]");

                DoingUnitAttackData(team_attack_datas[i, j]);
            }
        }

        UpdataBattleRanksText();

        //BUFF 战后BUFF Time_4
        foreach (var item in team_attack_datas)
        {
            BattleTools.DoTeamBuff(Player, Enemy, item, EffectTimeType.Time_4);
        }

        DorV();

        Round++;
    }