Beispiel #1
0
 public 战场 反转()
 {
     if (inner战场 == null)
     {
         inner战场 = new 战场();
         inner战场.己方队伍名称 = 敌方队伍名称;
         inner战场.敌方队伍名称 = 己方队伍名称;
         inner战场.己方角色List = 敌方角色List;
         inner战场.敌方角色List = 己方角色List;
     }
     inner战场.当前回合 = 当前回合;
     inner战场.最大回合数 = 最大回合数;
     inner战场.战果 = 0 - 战果;
     inner战场.战场修正 = 0 - 战场修正;
     inner战场.行动顺序 = 行动顺序;
     return inner战场;
 }
Beispiel #2
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战斗;
        }
Beispiel #3
0
 private void copy(战场 战场, UI战斗 UI战斗)
 {
     UI战斗.当前回合 = 战场.当前回合;
     UI战斗.战果 = 战场.战果;
     UI战斗.战场修正 = 战场.战场修正;
     UI战斗.是否结束 = 战场.IsEnd;
 }
Beispiel #4
0
        public void Init(队伍 teamA, 队伍 teamB, 战地类型 战地类型)
        {
            teamA战场 = new 战场();
            teamA战场.当前回合 = 1;
            teamA战场.最大回合数 = 30;
            teamA战场.己方角色List = teamA.成员List;
            foreach (var 角色 in teamA.成员List)
                角色.IsTeamA = true;
            teamA战场.敌方角色List = teamB.成员List;
            foreach (var 角色 in teamB.成员List)
                角色.IsTeamA = false;
            teamA战场.己方队伍名称 = teamA.Name;
            teamA战场.敌方队伍名称 = teamB.Name;
            switch (战地类型)
            {
                case Battle.战地类型.野战:
                    teamA战场.战场修正 = 0;
                    teamA战场.战果 = 0;
                    break;
                case Battle.战地类型.防守_城市:
                    teamA战场.战场修正 = 20;
                    teamA战场.战果 = 500;
                    break;
                case Battle.战地类型.防守_小镇:
                    teamA战场.战场修正 = 12;
                    teamA战场.战果 = 200;
                    break;
                case Battle.战地类型.防守_山寨:
                    teamA战场.战场修正 = 4;
                    teamA战场.战果 = 0;
                    break;
                case Battle.战地类型.进攻_城市:
                    teamA战场.战场修正 = -20;
                    teamA战场.战果 = -500;
                    break;
                case Battle.战地类型.进攻_小镇:
                    teamA战场.战场修正 = -12;
                    teamA战场.战果 = -200;
                    break;
                case Battle.战地类型.进攻_山寨:
                    teamA战场.战场修正 = -4;
                    teamA战场.战果 = 0;
                    break;
            }

            List<角色> list = new List<角色>(teamA.成员List);
            list.AddRange(teamB.成员List);
            teamA战场.行动顺序 = new 行动顺序();
            teamA战场.行动顺序.初始化行动表(list);

            foreach (var 角色 in teamA战场.己方角色List)
            {
                if (角色.被动技能 != null && 角色.被动技能 is 战斗开始被动技能)
                {
                    战斗开始被动技能 战斗开始被动技能 = (战斗开始被动技能)角色.被动技能;
                    技能环境 技能环境 = createEnvironment(角色, true, new List<角色>() { 角色 });
                    战斗开始被动技能.Excute(技能环境);
                }

                if (角色.特殊技能 != null && 角色.特殊技能 is 战斗开始被动技能)
                {
                    战斗开始被动技能 战斗开始被动技能 = (战斗开始被动技能)角色.特殊技能;
                    技能环境 技能环境 = createEnvironment(角色, true, new List<角色>() { 角色 });
                    战斗开始被动技能.Excute(技能环境);
                }
            }

            foreach (var 角色 in teamA战场.敌方角色List)
            {
                if (角色.被动技能 != null && 角色.被动技能 is 战斗开始被动技能)
                {
                    战斗开始被动技能 战斗开始被动技能 = (战斗开始被动技能)角色.被动技能;
                    技能环境 技能环境 = createEnvironment(角色, false, new List<角色>() { 角色 });
                    战斗开始被动技能.Excute(技能环境);
                }

                if (角色.特殊技能 != null && 角色.特殊技能 is 战斗开始被动技能)
                {
                    战斗开始被动技能 战斗开始被动技能 = (战斗开始被动技能)角色.特殊技能;
                    技能环境 技能环境 = createEnvironment(角色, false, new List<角色>() { 角色 });
                    战斗开始被动技能.Excute(技能环境);
                }
            }
        }