//添加teamInfoPlayer public void addTeamInfoPlayer(TeamInfoPlayer player) { if (!isSameCamp(player.camp)) { return; } list.Add(player); }
//设置召唤兽编号 public void setGuardianForce(TeamInfoPlayer gf) { if (gf.camp != teamCamp) { return; } this.guardianForce = gf; }
private void addCard(BattleSkillMsg msg, ErlArray array) { TeamInfoPlayer card = new TeamInfoPlayer(); if (array.Value [0] is ErlArray) //剧情npc { string str1 = (array.Value [0] as ErlArray).Value [0].getValueString(); //camp 阵营 card.camp = StringKit.toInt(str1); } else { //替补 string str1 = array.Value [0].getValueString(); //camp 阵营 card.camp = StringKit.toInt(str1); } string str2 = array.Value [1].getValueString(); //sid 模板 card.sid = StringKit.toInt(str2); string str3 = array.Value [2].getValueString(); //id 唯一标示 card.id = StringKit.toInt(str3); string strUid = array.Value [3].getValueString(); //uid 卡片唯一id 可能为空 card.uid = strUid; string str4 = array.Value [4].getValueString(); //hp card.hp = StringKit.toInt(str4); string str5 = array.Value [5].getValueString(); //maxhp int card.maxHp = StringKit.toInt(str5); string str6 = array.Value [6].getValueString(); //master 拥有者名字 card.master = str6; string str7 = array.Value [7].getValueString(); //embattle 阵位 编号 card.embattle = StringKit.toInt(str7); card.evoLevel = BattleManager.battleData.getCardEvoLevel(card.uid); //卡片进化等级 card.isAlternate = true; msg.card = card; if (card.camp == TeamInfo.OWN_CAMP) { BattleManager.battleData.playerTeamInfo.addTeamInfoSub(card); } else { BattleManager.battleData.enemyTeamInfo.addTeamInfoSub(card); } msg.skillSID = SkillSampleManager.SID_ADD_CARD; }
//添加替补的逻辑数据 public void addTeamInfoSub(TeamInfoPlayer player) { if (!isSameCamp(player.camp)) { return; } if (subList == null) { subList = new List <TeamInfoPlayer> (); } subList.Add(player); }
void switchPlayerInSkillBattle(CharacterData characterData) { //队伍管理器里的队伍逻辑数据中找出对应替补 BattleTeamManager teamM = characterData.parentTeam; TeamInfoPlayer sub = teamM.teamInfo.getSubstitute(characterData.TeamPosIndex); //替补战的情况,主力死了换替补上来显示 if (sub != null) { //主力下场 characterData.characterCtrl.outBattleField(); teamM.players.Remove(characterData); for (int i = 0; i < teamM.players.Count; i++) { if (teamM.players[i].serverID == sub.id) { return; } } //创建替补的战斗用数据 CharacterData subData = BattleCharacterManager.Instance.CreateBattleCharacterData(sub, teamM, BattleManager.battleData.battleType); teamM.players.Add(subData); teamM.CreateCharacterInstance(subData); //创建图像实例 //计算新上来的替补的最终血量 if (battleData.hpMap != null && subData != null && battleData.hpMap.ContainsKey(subData.serverID)) { BattleHpInfo info = battleData.hpMap [subData.serverID]; int hp = Mathf.Max(subData.fixedServer_hp + info.hp, 0); subData.server_hp = hp; subData.characterCtrl.HpBar.updateValue(subData.server_hp, subData.server_max_hp); subData.characterCtrl.HpBar.lockBar(); } } }
protected void ProcessTeamInfo(TeamInfoDTO info) { this.teamInfo = info; goalKeeper = this.teamInfo.players.Where(p => p.playerType == "G").First(); }
//构建战报队伍信息 private void createTeamInfo(BattleDataErlang battleData, ErlList el) { //战斗双方 battleData.playerTeamInfo = new TeamInfo(TeamInfo.OWN_CAMP); battleData.enemyTeamInfo = new TeamInfo(TeamInfo.ENEMY_CAMP); // [{"4",{2,15,30,3000,3000,"npc",15}}, // {"4",{2,15,27,3000,3000,"npc",11}}, // {"4",{2,12,24,2986,2986,"npc",9}}, // {"4",{2,12,21,2986,2986,"npc",7}}, // {"4",{2,17,18,3000,3000,"npc",3}}, // {"4",{1,10,15,4168,4168,"role",10}}, // {"4",{1,9,12,3307,3307,"role",8}},` // {"4",{1,8,9,3188,3188,"role",6}}, // {"4",{1,7,6,3188,3188,"role",4}}, // {"4",{1,6,3,3098,3098,"role",2}}, // {"4",{{1,1},29,1,1,1,"role",0}}] TeamInfoPlayer card; ErlArray array; for (int i = 0; i < el.Value.Length; i++) { card = new TeamInfoPlayer(); array = (el.Value [i] as ErlArray).Value [1] as ErlArray; if (array.Value [0] is ErlArray) { //召唤兽 string str1 = (array.Value [0] as ErlArray).Value [0].getValueString(); //camp 阵营 card.camp = StringKit.toInt(str1); string str2 = array.Value [1].getValueString(); //sid 模板 card.sid = StringKit.toInt(str2); string str3 = array.Value [2].getValueString(); //id 唯一标示 card.id = StringKit.toInt(str3); string strUid = array.Value [3].getValueString(); //uid 卡片唯一id 可能为空 card.uid = strUid; string str4 = array.Value [4].getValueString(); //hp card.hp = StringKit.toInt(str4); string str5 = array.Value [5].getValueString(); //maxhp int card.maxHp = StringKit.toInt(str5); string str6 = array.Value [6].getValueString(); //master 拥有者名字 card.master = str6; string str7 = array.Value [7].getValueString(); //embattle 阵位 编号 card.embattle = StringKit.toInt(str7); card.isGuardianForce = true; battleData.playerTeamInfo.setGuardianForce(card); battleData.enemyTeamInfo.setGuardianForce(card); } else //普通卡片 { string str1 = array.Value [0].getValueString(); //camp 阵营 card.camp = StringKit.toInt(str1); string str2 = array.Value [1].getValueString(); //sid 模板 card.sid = StringKit.toInt(str2); string str3 = array.Value [2].getValueString(); //id 唯一标示 card.id = StringKit.toInt(str3); string strUid = array.Value [3].getValueString(); //uid 卡片唯一id 可能为空 card.uid = strUid; string str4 = array.Value [4].getValueString(); //hp card.hp = StringKit.toInt(str4); string str5 = array.Value [5].getValueString(); //maxhp int card.maxHp = StringKit.toInt(str5); string str6 = array.Value [6].getValueString(); //master 拥有者名字 card.master = str6; string str7 = array.Value [7].getValueString(); //embattle 阵位 编号 card.embattle = StringKit.toInt(str7); card.evoLevel = battleData.getCardEvoLevel(card.uid); //卡片进化等级 if (array.Value.Length > 9) { string str8 = array.Value [8].getValueString(); // 卡片进化等级// card.evoLevel = StringKit.toInt(str8); string str9 = array.Value [9].getValueString(); // 卡片突破等级// card.surLevel = StringKit.toInt(str9); } //在添加卡片的时候进行判断 battleData.playerTeamInfo.addTeamInfoPlayer(card); battleData.enemyTeamInfo.addTeamInfoPlayer(card); } } }
private void smartTips() { ////设置数据 string key = UserManager.Instance.self.uid + PlayerPrefsComm.BATTLE_SMART_TIPS + BattleManager.battleSid;//BattleManager.lastMissionEvent.sid; TeamInfoPlayer bossCard = null; for (int i = 0; i < BattleManager.battleData.enemyTeamInfo.list.Count; i++) { if (CardSampleManager.Instance.getRoleSampleBySid(BattleManager.battleData.enemyTeamInfo.list [i].sid).cardType == 3) { bossCard = BattleManager.battleData.enemyTeamInfo.list [i]; break; } } int type = 0; //可能有挂机的情况 if (MissionInfoManager.Instance.mission == null || BattleManager.battleData.isPvP) { type = -1; } else { type = MissionInfoManager.Instance.mission.getChapterType(); } string str = ""; /////显示相应提示 if (type == ChapterType.WAR && !BattleManager.battleData.isHeroRoad) { if (bossCard == null) { str = LanguageConfigManager.Instance.getLanguage("smartTips_01"); } else { if (bossCard.hp / bossCard.maxHp < 0.35f) { str = LanguageConfigManager.Instance.getLanguage("smartTips_02"); } else { str = bossCard != null?smartFirstBattleTips(key) : LanguageConfigManager.Instance.getLanguage("smartTips_01"); } } } else if (type == ChapterType.STORY && !BattleManager.battleData.isHeroRoad) { int recommendedCombat = MissionSampleManager.Instance.getMissionSampleBySid(MissionInfoManager.Instance.mission.sid).getRecommendCombat(MissionInfoManager.Instance.mission.starLevel); if (bossCard != null) { str = LanguageConfigManager.Instance.getLanguage("smartTips_03"); } else { if ((recommendedCombat * 0.85f) > ArmyManager.Instance.getTeamCombat(ArmyManager.PVE_TEAMID)) { str = LanguageConfigManager.Instance.getLanguage("smartTips_01"); } else { str = smartFirstBattleTips(key); } } } if (str.Length > 0) { PlayerPrefs.SetString(key, ServerTimeKit.getSecondTime().ToString()); //讨伐 英雄之章不需要战败放弃副本友善指引 if (type != ChapterType.WAR && type != ChapterType.HERO_ROAD) { UiManager.Instance.openDialogWindow <SmartTipsWindow> ((win) => { win.UI_Arrow1.SetActive(str == LanguageConfigManager.Instance.getLanguage("smartTips_01")); win.UI_Arrow2.SetActive(!win.UI_Arrow1.activeSelf); win.init(str); }); } } }
//创建战斗用的角色数据实例,列表管理在battleManager public CharacterData CreateBattleCharacterData(TeamInfoPlayer playerData, BattleTeamManager parentTeam, int battleType) { CharacterData _data = new CharacterData(); _data.serverID = playerData.id; _data.storeID = playerData.uid; _data.TeamPosIndex = playerData.embattle; //临时用 _data.server_hp = playerData.hp; _data.fixedServer_hp = playerData.hp; _data.server_max_hp = playerData.maxHp; _data.parentTeam = parentTeam; _data.orgScale = Vector3.one; _data.camp = playerData.camp; _data.EvoLevel = playerData.evoLevel; //是否是npc if (playerData.master == BattleReportService.NPC) { _data.isNPC = true; } else { _data.isNPC = false; } if (playerData.camp == TeamInfo.OWN_CAMP) { if (playerData.isGuardianForce) { // if (BattleManager.battleData.isArenaFinal || // BattleManager.battleData.isArenaMass || // BattleManager.battleData.isGuide || // BattleManager.battleData.isLadders || // BattleManager.battleData.isGuildBoss|| // BattleManager.battleData.isPvP|| // BattleManager.battleData.isMineralFightRecord) //公会boss在选择队伍的时候保存了一次活动队伍,看需求可能不能保存 _data.role = CardManagerment.Instance.createCard(playerData.sid); // else // _data.role = StorageManagerment.Instance.getBeast (ArmyManager.Instance.getActiveArmy ().beastid); } else { if (_data.isNPC) { //npc _data.orgScale = BattleManager.SACLEOFNPC; _data.role = CardManagerment.Instance.createCard("", playerData.sid, 0, 0); } else { //人 if (battleType == BattleType.BATTLE_TEN) { //十人战大小不同 _data.orgScale = BattleManager.SACLEOF10V10; if (BattleManager.battleData.isArenaFinal || BattleManager.battleData.isGuide || BattleManager.battleData.isLadders || BattleManager.battleData.isGodsWarGroupFight) { //_data.role = CardManagerment.Instance.createCard ("", playerData.sid, 0, 0); _data.role = CardManagerment.Instance.createCard(playerData.sid, playerData.surLevel); } else { //bugfix 竞技场固定用3 int armyID; if (BattleManager.battleData.isArenaMass || BattleManager.battleData.isArenaFinal || BattleManager.battleData.isLadders || BattleManager.battleData.isGodsWarGroupFight) { armyID = ArmyManager.PVP_TEAMID; } else if (BattleManager.battleData.isGuildFight) { armyID = ArmyManager.PVP_GUILD; } else { armyID = ArmyManager.Instance.getActiveArmy().armyid; } //十人战本方卡片获取方式不一样 站位 主力固定1 2 3 4 5,替补固定11 12 13 14 15 if (_data.TeamPosIndex < 6) { string id; if (BattleManager.battleData.isOneOnOneBossFight) { id = playerData.uid; } else { id = ArmyManager.Instance.getArmy(armyID).players [_data.TeamPosIndex - 1]; } _data.role = StorageManagerment.Instance.getRole(id); } else { string id; if (BattleManager.battleData.isOneOnOneBossFight) { id = playerData.uid; } else { id = ArmyManager.Instance.getArmy(armyID).alternate [_data.TeamPosIndex - 11]; } _data.role = StorageManagerment.Instance.getRole(id); } } } else { if (BattleManager.battleData.playerFormationID == 1) { _data.orgScale = BattleManager.SACLEOF3V3; } else if (BattleManager.battleData.playerFormationID == 2) { //todo 4人阵放大不 } if (BattleManager.battleData.isArenaFinal || BattleManager.battleData.isGuide || BattleManager.battleData.isLadders || BattleManager.battleData.isMineralFightRecord || BattleManager.battleData.isGodsWarFinal || BattleManager.battleData.isGodsWarGroupFight) { //_data.role = CardManagerment.Instance.createCard ("", playerData.sid, 0, 0); _data.role = CardManagerment.Instance.createCard(playerData.sid, playerData.surLevel); } else if (BattleManager.battleData.isOneOnOneBossFight) //恶魔挑战(只有一个人)很危险的操作 { _data.role = StorageManagerment.Instance.getRole(playerData.uid); //return _data; } else { _data.role = StorageManagerment.Instance.getRole(_data.storeID); } } } } } else { //敌人 //todo pvp单独处理,下面是pve的情况 if (playerData.isGuardianForce) { _data.role = CardManagerment.Instance.createCard(playerData.sid); } else { if (BattleManager.battleData.battleType == BattleType.BATTLE_TEN) { //十人战大小不同 _data.orgScale = BattleManager.SACLEOF10V10; } //_data.role = CardManagerment.Instance.createCard ("", playerData.sid, 0, 0); _data.role = CardManagerment.Instance.createCard(playerData.sid, playerData.surLevel); } } if (playerData.isGuardianForce) { if (playerData.camp == TeamInfo.OWN_CAMP) { _data.orgPosition = new Vector3(0, 0, -3); } else { _data.orgPosition = new Vector3(0, 0, 3); } } else { if (_data.isNPC) { _data.orgPosition = BattleManager.Instance.npcPoint.FindChild(_data.TeamPosIndex.ToString()).position; } else if (_data.isBoss) { _data.orgPosition = parentTeam.TeamHitPoint.position; } else { //如果是人 _data.orgPosition = parentTeam.formation.getPosition(_data.TeamPosIndex); } if (_data.role != null) { _data.isBoss = _data.role.isBoss(); } } if (_data.role == null) { MonoBase.print("role is null sid=" + playerData.sid); return(null); } return(_data); }