public Win_Fight(UIFightSetting setting) { InitializeComponent(); 战斗管理 = new 战斗管理(); 战斗管理.Init(convert(setting.TeamA), convert(setting.TeamB), setting.Type); UI战斗 = create(战斗管理.Get战场(true)); set行动者(); this.DataContext = UI战斗; }
private void copy(行动顺序 行动顺序, UI行动顺序 UI行动顺序, UI战斗 ui战斗) { if (行动顺序.List.Count > 0) { if (行动顺序.List[0].IsTeamA) UI行动顺序.行动者1 = ui战斗.TeamAList.SingleOrDefault(m => m.角色 == 行动顺序.List[0]); else UI行动顺序.行动者1 = ui战斗.TeamBList.SingleOrDefault(m => m.角色 == 行动顺序.List[0]); } else UI行动顺序.行动者1 = null; if (行动顺序.List.Count > 1) { if (行动顺序.List[1].IsTeamA) UI行动顺序.行动者2 = ui战斗.TeamAList.SingleOrDefault(m => m.角色 == 行动顺序.List[1]); else UI行动顺序.行动者2 = ui战斗.TeamBList.SingleOrDefault(m => m.角色 == 行动顺序.List[1]); } else UI行动顺序.行动者2 = null; if (行动顺序.List.Count > 2) { if (行动顺序.List[2].IsTeamA) UI行动顺序.行动者3 = ui战斗.TeamAList.SingleOrDefault(m => m.角色 == 行动顺序.List[2]); else UI行动顺序.行动者3 = ui战斗.TeamBList.SingleOrDefault(m => m.角色 == 行动顺序.List[2]); } else UI行动顺序.行动者3 = null; if (行动顺序.List.Count > 3) { if (行动顺序.List[3].IsTeamA) UI行动顺序.行动者4 = ui战斗.TeamAList.SingleOrDefault(m => m.角色 == 行动顺序.List[3]); else UI行动顺序.行动者4 = ui战斗.TeamBList.SingleOrDefault(m => m.角色 == 行动顺序.List[3]); } else UI行动顺序.行动者4 = null; if (行动顺序.List.Count > 4) { if (行动顺序.List[4].IsTeamA) UI行动顺序.行动者5 = ui战斗.TeamAList.SingleOrDefault(m => m.角色 == 行动顺序.List[4]); else UI行动顺序.行动者5 = ui战斗.TeamBList.SingleOrDefault(m => m.角色 == 行动顺序.List[4]); } else UI行动顺序.行动者5 = null; if (行动顺序.List.Count > 5) { if (行动顺序.List[5].IsTeamA) UI行动顺序.行动者6 = ui战斗.TeamAList.SingleOrDefault(m => m.角色 == 行动顺序.List[5]); else UI行动顺序.行动者6 = ui战斗.TeamBList.SingleOrDefault(m => m.角色 == 行动顺序.List[5]); } else UI行动顺序.行动者6 = null; }
private UI战斗 create(战场 战场) { UI战斗 UI战斗 = new UI战斗(); UI战斗.最大回合数 = 战场.最大回合数; UI战斗.TeamA = 战场.己方队伍名称; UI战斗.TeamB = 战场.敌方队伍名称; UI战斗.TeamAList = new List<UI角色>(); UI战斗.TeamBList = new List<UI角色>(); copy(战场, UI战斗); foreach (var 角色 in 战场.己方角色List) { UI角色 ui角色 = new UI角色(); ui角色.角色 = 角色; ui角色.UI战斗 = UI战斗; ui角色.Name = 角色.Name; ui角色.兵种 = 角色.兵种.Name; ui角色.IsTeamA = true; ui角色.攻 = 角色.攻; ui角色.防 = 角色.防; ui角色.智 = 角色.智; ui角色.速 = 角色.速; ui角色.排 = 角色.排; ui角色.列 = 角色.列; if (角色.排 == 1 && 角色.列 == 1) UI战斗.TeamA_1_1 = ui角色; else if (角色.排 == 1 && 角色.列 == 2) UI战斗.TeamA_2_1 = ui角色; else if (角色.排 == 1 && 角色.列 == 3) UI战斗.TeamA_3_1 = ui角色; else if (角色.排 == 2 && 角色.列 == 1) UI战斗.TeamA_1_2 = ui角色; else if (角色.排 == 2 && 角色.列 == 2) UI战斗.TeamA_2_2 = ui角色; else if (角色.排 == 2 && 角色.列 == 3) UI战斗.TeamA_3_2 = ui角色; else if (角色.排 == 3 && 角色.列 == 1) UI战斗.TeamA_1_3 = ui角色; else if (角色.排 == 3 && 角色.列 == 2) UI战斗.TeamA_2_3 = ui角色; else if (角色.排 == 3 && 角色.列 == 3) UI战斗.TeamA_3_3 = ui角色; ui角色.最大行动点 = 角色.最大行动点; ui角色.最大兵力 = 角色.最大兵力; if (角色.基础攻击技能 != null) ui角色.技能List.Add(new UI技能() { Name = 角色.基础攻击技能.Name, 行动点 = 角色.基础攻击技能.消耗行动点, 技能目标 = 角色.基础攻击技能.技能目标 }); if (角色.技能1 != null) ui角色.技能List.Add(new UI技能() { Name = 角色.技能1.Name, 行动点 = 角色.技能1.消耗行动点, 技能目标 = 角色.技能1.技能目标 }); if (角色.技能2 != null) ui角色.技能List.Add(new UI技能() { Name = 角色.技能2.Name, 行动点 = 角色.技能2.消耗行动点, 技能目标 = 角色.技能2.技能目标 }); if (角色.待机 != null) ui角色.技能List.Add(new UI技能() { Name = 角色.待机.Name, 行动点 = 角色.待机.消耗行动点, 技能目标 = 角色.待机.技能目标 }); copy(角色, ui角色); UI战斗.TeamAList.Add(ui角色); } foreach (var 角色 in 战场.敌方角色List) { UI角色 ui角色 = new UI角色(); ui角色.角色 = 角色; ui角色.UI战斗 = UI战斗; ui角色.Name = 角色.Name; ui角色.兵种 = 角色.兵种.Name; ui角色.IsTeamA = false; ui角色.攻 = 角色.攻; ui角色.防 = 角色.防; ui角色.智 = 角色.智; ui角色.速 = 角色.速; ui角色.排 = 角色.排; ui角色.列 = 角色.列; if (角色.排 == 1 && 角色.列 == 1) UI战斗.TeamB_1_1 = ui角色; else if (角色.排 == 1 && 角色.列 == 2) UI战斗.TeamB_2_1 = ui角色; else if (角色.排 == 1 && 角色.列 == 3) UI战斗.TeamB_3_1 = ui角色; else if (角色.排 == 2 && 角色.列 == 1) UI战斗.TeamB_1_2 = ui角色; else if (角色.排 == 2 && 角色.列 == 2) UI战斗.TeamB_2_2 = ui角色; else if (角色.排 == 2 && 角色.列 == 3) UI战斗.TeamB_3_2 = ui角色; else if (角色.排 == 3 && 角色.列 == 1) UI战斗.TeamB_1_3 = ui角色; else if (角色.排 == 3 && 角色.列 == 2) UI战斗.TeamB_2_3 = ui角色; else if (角色.排 == 3 && 角色.列 == 3) UI战斗.TeamB_3_3 = ui角色; ui角色.最大行动点 = 角色.最大行动点; ui角色.最大兵力 = 角色.最大兵力; if (角色.基础攻击技能 != null) ui角色.技能List.Add(new UI技能() { Name = 角色.基础攻击技能.Name, 行动点 = 角色.基础攻击技能.消耗行动点, 技能目标 = 角色.基础攻击技能.技能目标 }); if (角色.技能1 != null) ui角色.技能List.Add(new UI技能() { Name = 角色.技能1.Name, 行动点 = 角色.技能1.消耗行动点, 技能目标 = 角色.技能1.技能目标 }); if (角色.技能2 != null) ui角色.技能List.Add(new UI技能() { Name = 角色.技能2.Name, 行动点 = 角色.技能2.消耗行动点, 技能目标 = 角色.技能2.技能目标 }); if (角色.待机 != null) ui角色.技能List.Add(new UI技能() { Name = 角色.待机.Name, 行动点 = 角色.待机.消耗行动点, 技能目标 = 角色.待机.技能目标 }); copy(角色, ui角色); UI战斗.TeamBList.Add(ui角色); } UI战斗.行动顺序 = new UI行动顺序(); copy(战场.行动顺序, UI战斗.行动顺序, UI战斗); return UI战斗; }
private void copy(战场 战场, UI战斗 UI战斗) { UI战斗.当前回合 = 战场.当前回合; UI战斗.战果 = 战场.战果; UI战斗.战场修正 = 战场.战场修正; UI战斗.是否结束 = 战场.IsEnd; }