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++; }