123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318 |
- using UnityEngine;
- using System.Collections;
- using System.Collections.Generic;
- namespace YLBattle
- {
- public partial class GameBattleManager
- {
- /// <summary>
- /// Test版本
- /// </summary>
- /// <param name="blue"></param>
- /// <param name="red"></param>
- /// <param name="isCastSkill">是否可释放技能</param>
- public void BattleInitializeTest(List<GameHeroVo> blue, List<GameHeroVo> red,
- bool isCastSkill0 = false,
- bool isCastSkill1 = false,
- bool isCastSkill2 = false,
- bool isCastSkill3 = false,
- bool isCastSkill4 = false
- )
- {
- this.mBattleParam.redteam.Clear();
- this.mBattleParam.blueteam.Clear();
- int seat = -1;
- //List<int> mSort = new List<int>() { 3, 1, 0, 2, 4 };
- foreach (GameHeroVo vo in red)
- {
- seat++;
- if (vo == null)
- {
- continue;
- }
- HeroAdapter adaptee = new HeroAdapter(vo, seat, false);
- this.mBattleParam.redteam.Add(adaptee);
- }
- seat = -1;
- foreach (GameHeroVo vo in blue)
- {
- seat++;
- if (vo == null)
- {
- continue;
- }
- HeroAdapter adaptee = new HeroAdapter(vo, seat, false);
- this.mBattleParam.blueteam.Add(adaptee);
- }
- BattleSwitch.IsOpenAttack = isCastSkill0;
- BattleSwitch.IsOpenEnemySkill = isCastSkill1;
- BattleSwitch.IsOpenLeaderSkill = isCastSkill2;
- BattleSwitch.isOpenCOMBO = isCastSkill3;
- BattleSwitch.IsConsumePower = isCastSkill4;
- BattlesSimulatedData.Instance.TestBlue = blue;
- BattlesSimulatedData.Instance.TestRed = red;
- BattleInitialize(0, null, false, null, 0, 0, string.Empty, (int)BattleMode.Test, 0);
- }
- /// <summary>
- /// Guide引导
- /// </summary>
- /// <param name="blue"></param>
- /// <param name="red"></param>
- /// <param name="isCastSkill">是否可释放技能</param>
- public void BattleInitializeGuide(int level, List<GameHeroVo> blue, List<GameHeroVo> red)
- {
- this.mBattleParam.redteam.Clear();
- this.mBattleParam.blueteam.Clear();
- int seat = -1;
- //foreach (HeroGameVo vo in red)
- //{
- // seat++;
- // if (vo == null)
- // {
- // continue;
- // }
- // HeroAdapter adaptee = new HeroAdapter(vo, seat, false);
- // this.mBattleParam.redteam.Add(adaptee);
- //}
- seat = -1;
- foreach (GameHeroVo vo in blue)
- {
- seat++;
- if (vo == null)
- {
- continue;
- }
- HeroAdapter adaptee = new HeroAdapter(vo, seat, false);
- this.mBattleParam.blueteam.Add(adaptee);
- }
- // List<string> blue2 = new List<string> { "10001'", "10002" };
- BattlesSimulatedData.Instance.TestBlue = blue;
- BattlesSimulatedData.Instance.TestRed = red;
- BattleInitialize(level, null, false, null, 0, 0, string.Empty, 4, 0);
- }
- /// <summary>
- /// 战斗环境初始化【PVE】
- /// </summary>
- /// <param name="blue">蓝队编号</param>
- /// <param name="red">敌方编号 队伍信息</param>
- /// <param name="redLeaderUID">对手的队长UID</param>
- /// <param name="pvpPlayerUID">对手的PlayerUID</param>
- /// <param name="pvpType">对手的类型</param>
- public void BattleInitializePVP(List<string> blue, List<GameHeroVo> red, string redLeaderUID,
- string pvpPlayerUID = "", string pvpType = "")
- {
- LogHelper.Log("PVP:战斗环境初始化");
- this.mBattleParam.redteam.Clear();
- if (red.Count <= 0)
- {
- LogHelper.LogError("PVP:敌方参与人数为零");
- return;
- }
- this.mBattleParam.mPVP_PlayerUID = pvpPlayerUID;
- this.mBattleParam.mPVP_Type = pvpType;
- int seat = -1;
- List<int> mSort = new List<int>() { 3, 1, 0, 2, 4 };
- foreach (GameHeroVo vo in red)
- {
- seat++;
- if (vo == null)
- {
- continue;
- }
- HeroAdapter adaptee = new HeroAdapter(vo, mSort[seat], vo.uid == redLeaderUID ? true : false);
- this.mBattleParam.redteam.Add(adaptee);
- }
- BattleInitialize(0, blue, false, null, 0, 0, string.Empty, 2, 0);
- }
- /// <summary>
- /// 战斗环境初始化【PVE】
- /// </summary>
- /// <param name="level">关卡号</param>
- /// <param name="blue">蓝队参赛人员(服务器同步下来的唯一实例iid)</param>
- /// <param name="allowaAuto">是否允许自动战斗</param>
- /// <param name="buyBuffs">buffID</param>
- /// <param name="buyBuffCostGold">购买buff消耗的金币</param>
- /// <param name="difficity">难度</param>
- /// <param name="friendUID">友情支援serverPlayerID</param>
- /// <param name="mode">0=普通模式 1=无穷尽 2=pvp 3=test 4=guide</param>
- /// <param name="carbonId">副本ID</param>
- public void BattleInitialize(int level, List<string> blue, bool isAuto,
- List<string> buyBuffs,
- int buyBuffCostGold,
- int difficity = 0,
- string friendUID = "",
- int mode = 0,
- int carbonId = 0,
- int levelStatus = 0)
- {
- LogHelper.Log("战斗环境初始化");
- this.mBattleParam.BuyBuffCostGold = buyBuffCostGold;
- this.mBattleParam.TeamBuffs = buyBuffs;
- this.mLevelStatus = levelStatus;
- this.mBattleParam.levelID = level;
- this.mBattleParam.levelDifficity = difficity;
- this.mBattleParam.BattleCOMBOPower = 0;
- this.mBattleParam.BattleBlueTeamSkillPower = 0;
- this.mBattleParam.BattleRedTeamSkillPower = 0;
- this.mBattleParam.levelMode = mode;
- this.mBattleParam.carbonId = carbonId;
- List<string> preLoadFighterRes = new List<string>();
- /***
- * 此参数决定在战斗时,己方角色数据从哪里读取!!!!!!
- */
- BattleSwitch.battleMode = (BattleMode)mode;
- #region 角色统计
- switch (mode)
- {
- case 0: //0=普通模式
- this.mBattleParam.redteam.Clear();
- //this.mGateInfo = ArenasProxy.Instance.GetCombatDataInfoById(level);
- this.mGateInfo = sm_gate_combat.GetMoById(level);
- /**
- * 预加载角色龙骨数据
- * 己方已加载完,这里主要是敌方的角色预加载
- */
- //if (mGateInfo != null)
- //{
- // List<string> resMonsterRes = this.mGateInfo.AllGateEnemyModelIdList();
- // foreach (string sTid in resMonsterRes)
- // {
- // sm_hero vo = sm_hero.GetMoByID(sTid);
- // if (vo != null)
- // preLoadFighterRes.Add(vo.dragonBoneMod);
- // }
- //}
- break;
- case 1: // 1=无穷尽
- this.mBattleParam.redteam.Clear();
- //this.mFroeverInfo = ArenasProxy.Instance.GetCombatDataInfoById(level);
- this.mFroeverInfo = sm_gate_combat.GetMoById(level);
- break;
- case 2: //2=pvp
- foreach (HeroAdapter adp in this.mBattleParam.redteam)
- {
- if (adp != null)
- preLoadFighterRes.Add(adp.DragonboneName());
- }
- break;
- case 3: //3=test
- foreach (HeroAdapter adp in this.mBattleParam.redteam)
- {
- if (adp != null)
- preLoadFighterRes.Add(adp.DragonboneName());
- }
- foreach (HeroAdapter adp in this.mBattleParam.blueteam)
- {
- if (adp != null)
- preLoadFighterRes.Add(adp.DragonboneName());
- }
- break;
- case 4: //4=guide
- this.mBattleParam.redteam.Clear();
- //this.mGateInfo = ArenasProxy.Instance.GetCombatDataInfoById(level);
- this.mGateInfo = sm_gate_combat.GetMoById(level);
- /**
- * 预加载角色龙骨数据
- * 己方已加载完,这里主要是敌方的角色预加载
- */
- List<string> resMonsterResGuide = new List<string>(); //this.mGateInfo.AllGateEnemyModelIdList();
- sm_gate.GetMoById(level).GetMonsterLevels().ForEach(l => l.GetMonsterIds().ForEach(id => resMonsterResGuide.Add(id.ToString())));
- foreach (string sTid in resMonsterResGuide)
- {
- sm_hero vo = sm_hero.GetMoByID(sTid);
- if (vo != null)
- preLoadFighterRes.Add(vo.dragonBoneMod);
- }
- break;
- }
- #endregion
- // 数据清空
- this.mBattleParam.levelStatus = 0;
- this.mBattleParam.isSecSpeed = false;
- this.mBattleParam.levelTotalStatus = 0;
- this.mBattleParam.BattleCOMBOPower = 0;
- this.mBattleParam.FriendUID = friendUID;
- this.mBattleParam.levelSenceBundle = string.Empty;
- this.mBattleParam.IsCastLeaderSkill = false;
- this.mBattleParam.bossId = string.Empty;
- this.mBattleParam.IsBossArrival = false;
- /// 准备本次己方战斗人员
- LogHelper.Log("外部数据初始化:准备本次己方战斗人员数据");
- /// 准备本次战斗人员
- this.mBattleParam.reloadBlue = true;
- if (mode != 3 && mode != 4) //
- {
- #region 正常模式
- this.mBattleParam.blueteam.Clear();
- string strHero = string.Empty;
- for (int i = 0; i < blue.Count; ++i)
- {
- string[] mdata = blue[i].Split(',');
- HeroAdapter adaptee = new HeroAdapter(mdata[0], mdata[1], mdata[2] == "1" ? true : false);
- if (preLoadFighterRes.Contains(mdata[0]) == false)
- {
- preLoadFighterRes.Add(adaptee.TID());
- }
- strHero += adaptee.TID() + ",";
- this.mBattleParam.blueteam.Add(adaptee);
- }
- ///预加载
- if (this.mBattleParam.FriendUID.Trim().Length > 0)
- {
- ///无占位
- LogHelper.Log("预加载友情支援数据...");
- HeroAdapter friendAda = new HeroAdapter(this.mBattleParam.FriendUID);
- this.mBattleParam.friend = friendAda;
- }
- LogHelper.Log("当前关卡己方类型:" + strHero);
- #endregion
- }
- else
- {
- #region 测试模式
- LogHelper.Log("测试模式:准备本次双方战斗人员数据");
- #endregion
- }
- BattleResources.Dragons = preLoadFighterRes;
- this.ChangeStatus(EBattleUpdateStatus.Waiting);
- this.Update();
- }
- }
- }
|