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); } }
TeamAttackingData CeateAttackingData(Team team, Team toTeam, int disdent, int round, BattleContorl battle) { if (team == null || toTeam == null) { return(null); } TeamAttackingData teamData = new TeamAttackingData(); TeamSummaryData team_dic = team.GetSummary(); teamData.Team_dic = team_dic; TeamSummaryData toteam_dic = toTeam.GetSummary(); teamData.ToTeam_dic = toteam_dic; if (team_dic.UnitCount == 0 || toteam_dic.UnitCount == 0) { return(null); } if (team_dic.Count == 0 || toteam_dic.Count == 0) { return(null); } BattleData battleData = new BattleData(); battleData.Disdent = disdent; battleData.Round = round; battleData.Battle = battle; teamData.Team = team; teamData.ToTeam = toTeam; teamData.battleData = battleData; List <UnitAttackingData> unitDatas = CreateUnitToUnitDatas(team, toTeam, team_dic, toteam_dic, battleData); teamData.UnitAttackingDatas = unitDatas; foreach (var item in unitDatas) { item.teamData = teamData; } //SetTeamToTeamData(teamData); return(teamData); }