// 将所有玩家的所有行动加载到战斗序列当中 public void FetchActionFromBattleInfoSet(BattleSequence ParaBattleSequence) { for (int i = 0; i < PlayerNum; i++) { PlayerBattleInfoSet CurrentPlayerBattleInfoSet = PlayerBattleInfoSetOfPlayID[PlayerIDOfIndex[i]]; CurrentPlayerBattleInfoSet.FetchActionFromPlayerBattleInfoSet(ParaBattleSequence); } }
// 为所有玩家的所有行动计算初始冷却时间 public void InitializeCumulativeCooldownTime() { float MaxRange = GetMaxRangeInAllAction(); for (int i = 0; i < PlayerNum; i++) { PlayerBattleInfoSet CurrentPlayerBattleInfoSet = PlayerBattleInfoSetOfPlayID[PlayerIDOfIndex[i]]; CurrentPlayerBattleInfoSet.InitializeCumulativeCooldownTime(MaxRange); } }
public void DubugDisplay() { Debug.Log("**********************************************************"); for (int i = 0; i < PlayerNum; i++) { PlayerBattleInfoSet CurrentPlayerBattleInfoSet = PlayerBattleInfoSetOfPlayID[PlayerIDOfIndex[i]]; Debug.Log("Player " + PlayerIDOfIndex[i] + " MaxRange " + PlayerBattleInfoSetOfPlayID[PlayerIDOfIndex[i]].GetMaxRange()); CurrentPlayerBattleInfoSet.DebugDisplay(); } Debug.Log("**********************************************************"); }
public PlayerBattleInfoSet GetPlayerBattleInfoSetByPlayerID(int PlayerID) { if (PlayerBattleInfoSetOfPlayID.ContainsKey(PlayerID) == true) { return(PlayerBattleInfoSetOfPlayID[PlayerID]); } else { PlayerBattleInfoSet NewPlayerBattleInfoSet = new PlayerBattleInfoSet(); NewPlayerBattleInfoSet.SetOwner(PlayerID); AddPlayerBattleInfoSet(NewPlayerBattleInfoSet); return(PlayerBattleInfoSetOfPlayID[PlayerID]); } }
public void AddPlayerBattleInfoSet(PlayerBattleInfoSet NewPlayerBattleInfoSet) { if (PlayerBattleInfoSetOfPlayID.ContainsKey(NewPlayerBattleInfoSet.GetOwner()) == true) { Debug.Log("Add PlayerBattleInfoSet Fail~ There already have one with same key value."); } else { PlayerBattleInfoSetOfPlayID.Add(NewPlayerBattleInfoSet.GetOwner(), new PlayerBattleInfoSet()); PlayerBattleInfoSetOfPlayID[NewPlayerBattleInfoSet.GetOwner()] = NewPlayerBattleInfoSet; PlayerIDOfIndex.Add(PlayerNum, NewPlayerBattleInfoSet.GetOwner()); PlayerNum++; } }
// 根据执行单位和执行单位使用的武器获取所有可攻击的单位类型(属于敌方的并且符合武器目标筛选标旗的单位类型) public List <UnitTypeInfo> FindAvaliableEnemyUnitTypes(Unit ExecuteUnit, Weapon ExecuteUnitWeapon) { List <UnitTypeInfo> Res = new List <UnitTypeInfo>(); for (int i = 0; i < PlayerNum; i++) { // 如果执行单位的所有者视当前玩家为敌人 if (MainDiplomacyManager.GetDiplomacy(ExecuteUnit.GetUnitOwner(), PlayerIDOfIndex[i]) == 0) { PlayerBattleInfoSet CurrentPlayerBattleInfoSet = PlayerBattleInfoSetOfPlayID[PlayerIDOfIndex[i]]; CurrentPlayerBattleInfoSet.FindAvaliableEnemyUnitTypes(ExecuteUnitWeapon, Res); } } return(Res); }