Exemple #1
0
        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战斗;
        }
Exemple #2
0
        private void teamB选择(UI角色 角色)
        {
            switch (current技能.技能目标)
            {
                case 技能目标.全体任一:
                    if (角色.IsTeamA)
                        角色.选择中 = true;
                    break;
                case 技能目标.全体:
                    if (角色.IsTeamA)
                    {
                        foreach (var item in UI战斗.TeamAList)
                            if (!item.败退)
                                item.选择中 = true;
                    }
                    break;
                case 技能目标.最前列任一:
                    if (角色.IsTeamA)
                    {
                        if (角色.列 == 1)
                            角色.选择中 = true;
                        else if (角色.列 == 2)
                        {
                            if ((UI战斗.TeamA_1_1 == null || UI战斗.TeamA_1_1.败退) &&
                                (UI战斗.TeamA_2_1 == null || UI战斗.TeamA_2_1.败退) &&
                                (UI战斗.TeamA_3_1 == null || UI战斗.TeamA_3_1.败退))
                                角色.选择中 = true;
                        }
                        else
                        {
                            if ((UI战斗.TeamA_1_1 == null || UI战斗.TeamA_1_1.败退) &&
                                (UI战斗.TeamA_2_1 == null || UI战斗.TeamA_2_1.败退) &&
                                (UI战斗.TeamA_3_1 == null || UI战斗.TeamA_3_1.败退) &&
                                (UI战斗.TeamA_1_2 == null || UI战斗.TeamA_1_2.败退) &&
                                (UI战斗.TeamA_2_2 == null || UI战斗.TeamA_2_2.败退) &&
                                (UI战斗.TeamA_3_2 == null || UI战斗.TeamA_3_2.败退))
                                角色.选择中 = true;
                        }
                    }
                    break;
                case 技能目标.同排最前列:
                    if (角色.IsTeamA)
                    {
                        var temp = (from u in UI战斗.TeamAList
                                    where u.排 == UI战斗.Current角色.排 &&
                                          !u.败退
                                    orderby u.列
                                    select u).FirstOrDefault();
                        if (角色 == temp)
                            角色.选择中 = true;
                    }
                    break;
                case 技能目标.同排全体:
                    if (角色.IsTeamA && 角色.排 == UI战斗.Current角色.排)
                    {
                        var list = (from u in UI战斗.TeamAList
                                    where u.排 == UI战斗.Current角色.排 &&
                                          !u.败退
                                    select u).ToList();

                        foreach (var item in list)
                            item.选择中 = true;
                    }
                    break;
                case 技能目标.同排任一:
                    if (角色.IsTeamA && 角色.排 == UI战斗.Current角色.排)
                        角色.选择中 = true;
                    break;
                case 技能目标.一排全体:
                    if (角色.IsTeamA)
                    {
                        var list = (from u in UI战斗.TeamBList
                                    where u.排 == 角色.排 &&
                                          !u.败退
                                    select u).ToList();

                        foreach (var item in list)
                            item.选择中 = true;
                    }
                    break;
                case 技能目标.后二列任一:
                    if (角色.IsTeamA && 角色.列 > 1)
                        角色.选择中 = true;
                    break;
                case 技能目标.己方全体:
                    if (!角色.IsTeamA)
                    {
                        foreach (var item in UI战斗.TeamBList)
                            if (!item.败退)
                                item.选择中 = true;
                    }
                    break;
                case 技能目标.己方任一:
                    if (!角色.IsTeamA && !角色.败退)
                        角色.选择中 = true;
                    break;
                case 技能目标.自己:
                    if (!角色.IsTeamA)
                        UI战斗.Current角色.选择中 = true;
                    break;
            }
        }
Exemple #3
0
 private void copy(角色 角色, UI角色 ui角色)
 {
     ui角色.败退 = 角色.是否败走;
     ui角色.兵力 = 角色.兵力;
     ui角色.攻赋予 = 角色.攻击赋予 != null;
     ui角色.防赋予 = 角色.防御赋予 != null;
     ui角色.速赋予 = 角色.速度赋予 != null;
     ui角色.智赋予 = 角色.智力赋予 != null;
     ui角色.行动点 = 角色.行动点;
     ui角色.守护率 = 角色.守护率;
     ui角色.全体守护率 = 角色.全体守护率;
     ui角色.护盾 = 角色.护盾;
     ui角色.准备 = 角色.是否准备;
 }