public BuildingTypeVO GetHighestAvailableBuildingVOForTroop(TroopTypeVO troop) { Entity entity = null; switch (troop.Type) { case TroopType.Infantry: entity = this.GetHighestAvailableBarracks(); break; case TroopType.Vehicle: entity = this.GetHighestAvailableFactory(); break; case TroopType.Mercenary: { CantinaNode head = this.CantinaNodeList.Head; if (head != null) { entity = head.Entity; } break; } case TroopType.Hero: { TacticalCommandNode head2 = this.TacticalCommandNodeList.Head; if (head2 != null) { entity = head2.Entity; } break; } default: Service.Logger.Error("GetHighestAvailableBuildingVOForTroop; Unsupported troop type: " + troop.Type.ToString() + " UID: " + troop.Uid); return(null); } BuildingTypeVO buildingTypeVO = null; if (entity != null) { BuildingComponent buildingComponent = entity.Get <BuildingComponent>(); if (buildingComponent == null) { Service.Logger.Error("GetHighestAvailableBuildingVOForTroop; No building component found for : " + buildingTypeVO.Uid); return(null); } buildingTypeVO = buildingComponent.BuildingType; } return(buildingTypeVO); }
public int GetHighestLevelForHeroCommands() { int num = 1; for (TacticalCommandNode tacticalCommandNode = this.TacticalCommandNodeList.Head; tacticalCommandNode != null; tacticalCommandNode = tacticalCommandNode.Next) { int lvl = tacticalCommandNode.BuildingComp.BuildingType.Lvl; if (lvl > num) { num = lvl; } } return(num); }
private void AddAllEffects(bool checkContracts) { BuildingLookupController buildingLookupController = Service.BuildingLookupController; NodeList <TacticalCommandNode> tacticalCommandNodeList = buildingLookupController.TacticalCommandNodeList; for (TacticalCommandNode tacticalCommandNode = tacticalCommandNodeList.Head; tacticalCommandNode != null; tacticalCommandNode = tacticalCommandNode.Next) { this.UpdateEffectsForBuilding(tacticalCommandNode.BuildingComp, false, checkContracts); } NodeList <FleetCommandNode> fleetCommandNodeList = buildingLookupController.FleetCommandNodeList; for (FleetCommandNode fleetCommandNode = fleetCommandNodeList.Head; fleetCommandNode != null; fleetCommandNode = fleetCommandNode.Next) { this.UpdateEffectsForBuilding(fleetCommandNode.BuildingComp, true, checkContracts); } this.AddNavigationCenterHolo(); }
private void RecalculateHeroHousingCapacity() { GamePlayer worldOwner = GameUtils.GetWorldOwner(); int num = 0; NodeList <TacticalCommandNode> tacticalCommandNodeList = Service.Get <BuildingLookupController>().TacticalCommandNodeList; for (TacticalCommandNode tacticalCommandNode = tacticalCommandNodeList.Head; tacticalCommandNode != null; tacticalCommandNode = tacticalCommandNode.Next) { BuildingTypeVO buildingType = tacticalCommandNode.BuildingComp.BuildingType; if (!ContractUtils.IsBuildingConstructing(tacticalCommandNode.Entity)) { num += buildingType.Storage; } } if (num == 0) { num = GameConstants.NEW_PLAYER_HERO_CAPACITY; } worldOwner.Inventory.Hero.SetTotalStorageCapacity(num); }
public bool HasConstructedBuilding(BuildingTypeVO reqBuilding) { int lvl = reqBuilding.Lvl; switch (reqBuilding.Type) { case BuildingType.HQ: for (HQNode hQNode = this.HQNodeList.Head; hQNode != null; hQNode = hQNode.Next) { if (GameUtils.GetBuildingEffectiveLevel((SmartEntity)hQNode.BuildingComp.Entity) >= lvl) { return(true); } } return(false); case BuildingType.Barracks: for (BarracksNode barracksNode = this.BarracksNodeList.Head; barracksNode != null; barracksNode = barracksNode.Next) { if (GameUtils.GetBuildingEffectiveLevel((SmartEntity)barracksNode.BuildingComp.Entity) >= lvl) { return(true); } } return(false); case BuildingType.Factory: for (FactoryNode factoryNode = this.FactoryNodeList.Head; factoryNode != null; factoryNode = factoryNode.Next) { if (GameUtils.GetBuildingEffectiveLevel((SmartEntity)factoryNode.BuildingComp.Entity) >= lvl) { return(true); } } return(false); case BuildingType.FleetCommand: for (FleetCommandNode fleetCommandNode = this.FleetCommandNodeList.Head; fleetCommandNode != null; fleetCommandNode = fleetCommandNode.Next) { if (GameUtils.GetBuildingEffectiveLevel((SmartEntity)fleetCommandNode.BuildingComp.Entity) >= lvl) { return(true); } } return(false); case BuildingType.HeroMobilizer: for (TacticalCommandNode tacticalCommandNode = this.TacticalCommandNodeList.Head; tacticalCommandNode != null; tacticalCommandNode = tacticalCommandNode.Next) { if (GameUtils.GetBuildingEffectiveLevel((SmartEntity)tacticalCommandNode.BuildingComp.Entity) >= lvl) { return(true); } } return(false); case BuildingType.ChampionPlatform: for (ChampionPlatformNode championPlatformNode = this.ChampionPlatformNodeList.Head; championPlatformNode != null; championPlatformNode = championPlatformNode.Next) { if (GameUtils.GetBuildingEffectiveLevel((SmartEntity)championPlatformNode.BuildingComp.Entity) >= lvl) { return(true); } } return(false); case BuildingType.Housing: for (HousingNode housingNode = this.HousingNodeList.Head; housingNode != null; housingNode = housingNode.Next) { if (GameUtils.GetBuildingEffectiveLevel((SmartEntity)housingNode.BuildingComp.Entity) >= lvl) { return(true); } } return(false); case BuildingType.Squad: for (SquadBuildingNode squadBuildingNode = this.SquadBuildingNodeList.Head; squadBuildingNode != null; squadBuildingNode = squadBuildingNode.Next) { if (GameUtils.GetBuildingEffectiveLevel((SmartEntity)squadBuildingNode.BuildingComp.Entity) >= lvl) { return(true); } } return(false); case BuildingType.Starport: for (StarportNode starportNode = this.StarportNodeList.Head; starportNode != null; starportNode = starportNode.Next) { if (GameUtils.GetBuildingEffectiveLevel((SmartEntity)starportNode.BuildingComp.Entity) >= lvl) { return(true); } } return(false); case BuildingType.DroidHut: for (DroidHutNode droidHutNode = this.DroidHutNodeList.Head; droidHutNode != null; droidHutNode = droidHutNode.Next) { if (GameUtils.GetBuildingEffectiveLevel((SmartEntity)droidHutNode.BuildingComp.Entity) >= lvl) { return(true); } } return(false); case BuildingType.Wall: for (WallNode wallNode = this.WallNodeList.Head; wallNode != null; wallNode = wallNode.Next) { if (GameUtils.GetBuildingEffectiveLevel((SmartEntity)wallNode.BuildingComp.Entity) >= lvl) { return(true); } } return(false); case BuildingType.Turret: for (TurretBuildingNode turretBuildingNode = this.TurretBuildingNodeList.Head; turretBuildingNode != null; turretBuildingNode = turretBuildingNode.Next) { if (turretBuildingNode.BuildingComp.BuildingType.UpgradeGroup == reqBuilding.UpgradeGroup && GameUtils.GetBuildingEffectiveLevel((SmartEntity)turretBuildingNode.BuildingComp.Entity) >= lvl) { return(true); } } return(false); case BuildingType.TroopResearch: for (OffenseLabNode offenseLabNode = this.OffenseLabNodeList.Head; offenseLabNode != null; offenseLabNode = offenseLabNode.Next) { if (GameUtils.GetBuildingEffectiveLevel((SmartEntity)offenseLabNode.BuildingComp.Entity) >= lvl) { return(true); } } return(false); case BuildingType.DefenseResearch: for (DefenseLabNode defenseLabNode = this.DefenseLabNodeList.Head; defenseLabNode != null; defenseLabNode = defenseLabNode.Next) { if (GameUtils.GetBuildingEffectiveLevel((SmartEntity)defenseLabNode.BuildingComp.Entity) >= lvl) { return(true); } } return(false); case BuildingType.Resource: for (GeneratorNode generatorNode = this.GeneratorNodeList.Head; generatorNode != null; generatorNode = generatorNode.Next) { if (generatorNode.BuildingComp.BuildingType.Currency == reqBuilding.Currency && GameUtils.GetBuildingEffectiveLevel((SmartEntity)generatorNode.BuildingComp.Entity) >= lvl) { return(true); } } return(false); case BuildingType.Storage: for (StorageNode storageNode = this.StorageNodeList.Head; storageNode != null; storageNode = storageNode.Next) { if (storageNode.BuildingComp.BuildingType.Currency == reqBuilding.Currency && GameUtils.GetBuildingEffectiveLevel((SmartEntity)storageNode.BuildingComp.Entity) >= lvl) { return(true); } } return(false); case BuildingType.Trap: for (TrapNode trapNode = this.TrapNodeList.Head; trapNode != null; trapNode = trapNode.Next) { if (GameUtils.GetBuildingEffectiveLevel((SmartEntity)trapNode.BuildingComp.Entity) >= lvl) { return(true); } } return(false); case BuildingType.Cantina: for (CantinaNode cantinaNode = this.CantinaNodeList.Head; cantinaNode != null; cantinaNode = cantinaNode.Next) { if (GameUtils.GetBuildingEffectiveLevel((SmartEntity)cantinaNode.BuildingComp.Entity) >= lvl) { return(true); } } return(false); case BuildingType.NavigationCenter: for (NavigationCenterNode navigationCenterNode = this.NavigationCenterNodeList.Head; navigationCenterNode != null; navigationCenterNode = navigationCenterNode.Next) { if (GameUtils.GetBuildingEffectiveLevel((SmartEntity)navigationCenterNode.BuildingComp.Entity) >= lvl) { return(true); } } return(false); case BuildingType.ScoutTower: for (ScoutTowerNode scoutTowerNode = this.ScoutTowerNodeList.Head; scoutTowerNode != null; scoutTowerNode = scoutTowerNode.Next) { if (GameUtils.GetBuildingEffectiveLevel((SmartEntity)scoutTowerNode.BuildingComp.Entity) >= lvl) { return(true); } } return(false); case BuildingType.Armory: for (ArmoryNode armoryNode = this.ArmoryNodeList.Head; armoryNode != null; armoryNode = armoryNode.Next) { if (GameUtils.GetBuildingEffectiveLevel((SmartEntity)armoryNode.BuildingComp.Entity) >= lvl) { return(true); } } return(false); } Service.Logger.Warn("Unknown reqBuilding type for level: " + reqBuilding.Uid); return(false); }
private void FillBuildingListByType(List <SmartEntity> list, BuildingType type) { switch (type) { case BuildingType.Any: { NodeList <BuildingNode> nodeList = this.entityController.GetNodeList <BuildingNode>(); for (BuildingNode buildingNode = nodeList.Head; buildingNode != null; buildingNode = buildingNode.Next) { list.Add((SmartEntity)buildingNode.Entity); } return; } case BuildingType.HQ: for (HQNode hQNode = this.HQNodeList.Head; hQNode != null; hQNode = hQNode.Next) { list.Add((SmartEntity)hQNode.Entity); } return; case BuildingType.Barracks: for (BarracksNode barracksNode = this.BarracksNodeList.Head; barracksNode != null; barracksNode = barracksNode.Next) { list.Add((SmartEntity)barracksNode.Entity); } return; case BuildingType.Factory: for (FactoryNode factoryNode = this.FactoryNodeList.Head; factoryNode != null; factoryNode = factoryNode.Next) { list.Add((SmartEntity)factoryNode.Entity); } return; case BuildingType.FleetCommand: for (FleetCommandNode fleetCommandNode = this.FleetCommandNodeList.Head; fleetCommandNode != null; fleetCommandNode = fleetCommandNode.Next) { list.Add((SmartEntity)fleetCommandNode.Entity); } return; case BuildingType.HeroMobilizer: for (TacticalCommandNode tacticalCommandNode = this.TacticalCommandNodeList.Head; tacticalCommandNode != null; tacticalCommandNode = tacticalCommandNode.Next) { list.Add((SmartEntity)tacticalCommandNode.Entity); } return; case BuildingType.ChampionPlatform: for (ChampionPlatformNode championPlatformNode = this.ChampionPlatformNodeList.Head; championPlatformNode != null; championPlatformNode = championPlatformNode.Next) { list.Add((SmartEntity)championPlatformNode.Entity); } return; case BuildingType.Housing: for (HousingNode housingNode = this.HousingNodeList.Head; housingNode != null; housingNode = housingNode.Next) { list.Add((SmartEntity)housingNode.Entity); } return; case BuildingType.Squad: for (SquadBuildingNode squadBuildingNode = this.SquadBuildingNodeList.Head; squadBuildingNode != null; squadBuildingNode = squadBuildingNode.Next) { list.Add((SmartEntity)squadBuildingNode.Entity); } return; case BuildingType.Starport: for (StarportNode starportNode = this.StarportNodeList.Head; starportNode != null; starportNode = starportNode.Next) { list.Add((SmartEntity)starportNode.Entity); } return; case BuildingType.DroidHut: for (DroidHutNode droidHutNode = this.DroidHutNodeList.Head; droidHutNode != null; droidHutNode = droidHutNode.Next) { list.Add((SmartEntity)droidHutNode.Entity); } return; case BuildingType.Wall: for (WallNode wallNode = this.WallNodeList.Head; wallNode != null; wallNode = wallNode.Next) { list.Add((SmartEntity)wallNode.Entity); } return; case BuildingType.Turret: for (TurretBuildingNode turretBuildingNode = this.TurretBuildingNodeList.Head; turretBuildingNode != null; turretBuildingNode = turretBuildingNode.Next) { list.Add((SmartEntity)turretBuildingNode.Entity); } return; case BuildingType.TroopResearch: for (OffenseLabNode offenseLabNode = this.OffenseLabNodeList.Head; offenseLabNode != null; offenseLabNode = offenseLabNode.Next) { list.Add((SmartEntity)offenseLabNode.Entity); } return; case BuildingType.DefenseResearch: for (DefenseLabNode defenseLabNode = this.DefenseLabNodeList.Head; defenseLabNode != null; defenseLabNode = defenseLabNode.Next) { list.Add((SmartEntity)defenseLabNode.Entity); } return; case BuildingType.Resource: for (GeneratorNode generatorNode = this.GeneratorNodeList.Head; generatorNode != null; generatorNode = generatorNode.Next) { list.Add((SmartEntity)generatorNode.Entity); } return; case BuildingType.Storage: for (StorageNode storageNode = this.StorageNodeList.Head; storageNode != null; storageNode = storageNode.Next) { list.Add((SmartEntity)storageNode.Entity); } return; case BuildingType.ShieldGenerator: for (ShieldGeneratorNode shieldGeneratorNode = this.ShieldGeneratorNodeList.Head; shieldGeneratorNode != null; shieldGeneratorNode = shieldGeneratorNode.Next) { list.Add((SmartEntity)shieldGeneratorNode.Entity); } return; case BuildingType.Clearable: for (ClearableNode clearableNode = this.ClearableNodeList.Head; clearableNode != null; clearableNode = clearableNode.Next) { list.Add((SmartEntity)clearableNode.Entity); } return; case BuildingType.Trap: for (TrapNode trapNode = this.TrapNodeList.Head; trapNode != null; trapNode = trapNode.Next) { list.Add((SmartEntity)trapNode.Entity); } return; case BuildingType.Cantina: for (CantinaNode cantinaNode = this.CantinaNodeList.Head; cantinaNode != null; cantinaNode = cantinaNode.Next) { list.Add((SmartEntity)cantinaNode.Entity); } return; case BuildingType.NavigationCenter: for (NavigationCenterNode navigationCenterNode = this.NavigationCenterNodeList.Head; navigationCenterNode != null; navigationCenterNode = navigationCenterNode.Next) { list.Add((SmartEntity)navigationCenterNode.Entity); } return; case BuildingType.ScoutTower: for (ScoutTowerNode scoutTowerNode = this.ScoutTowerNodeList.Head; scoutTowerNode != null; scoutTowerNode = scoutTowerNode.Next) { list.Add((SmartEntity)scoutTowerNode.Entity); } return; case BuildingType.Armory: for (ArmoryNode armoryNode = this.ArmoryNodeList.Head; armoryNode != null; armoryNode = armoryNode.Next) { list.Add((SmartEntity)armoryNode.Entity); } return; } Service.Logger.Warn("Unknown building type " + type); }