public TargetingController() { Service.Set <TargetingController>(this); this.pathingManager = Service.Get <PathingManager>(); this.shooterController = Service.Get <ShooterController>(); this.spatialIndexController = Service.Get <SpatialIndexController>(); EntityController entityController = Service.Get <EntityController>(); this.defensiveTroopNodeList = entityController.GetNodeList <DefensiveTroopNode>(); this.offensiveTroopNodeList = entityController.GetNodeList <OffensiveTroopNode>(); this.offensiveHealerNodeList = entityController.GetNodeList <OffensiveHealerNode>(); this.defensiveHealerNodeList = entityController.GetNodeList <DefensiveHealerNode>(); }
public TargetingController() { Service.TargetingController = this; this.pathingManager = Service.PathingManager; this.shooterController = Service.ShooterController; this.spatialIndexController = Service.SpatialIndexController; EntityController entityController = Service.EntityController; this.defensiveTroopNodeList = entityController.GetNodeList <DefensiveTroopNode>(); this.offensiveTroopNodeList = entityController.GetNodeList <OffensiveTroopNode>(); this.offensiveHealerNodeList = entityController.GetNodeList <OffensiveHealerNode>(); this.defensiveHealerNodeList = entityController.GetNodeList <DefensiveHealerNode>(); EventManager eventManager = Service.EventManager; eventManager.RegisterObserver(this, EventId.ProcBuff); eventManager.RegisterObserver(this, EventId.RemovingBuff); }
public EatResponse OnEvent(EventId id, object cookie) { if (id <= EventId.BuildingReplaced) { if (id <= EventId.BuildingCancelled) { if (id != EventId.BuildingViewReady) { if (id != EventId.BuildingCancelled) { return(EatResponse.NotEaten); } } else { EntityViewParams entityViewParams = (EntityViewParams)cookie; if (entityViewParams.Entity.Has <ScoutTowerComponent>()) { this.CreateScoutHolo(); return(EatResponse.NotEaten); } return(EatResponse.NotEaten); } } else if (id != EventId.EntityKilled) { if (id != EventId.BuildingConstructed) { if (id != EventId.BuildingReplaced) { return(EatResponse.NotEaten); } Entity entity = cookie as Entity; if (entity.Has <ScoutTowerComponent>()) { this.CreateScoutHolo(); return(EatResponse.NotEaten); } return(EatResponse.NotEaten); } } else { SmartEntity smartEntity = (SmartEntity)cookie; if (smartEntity.BuildingComp == null) { return(EatResponse.NotEaten); } BuildingType type = smartEntity.BuildingComp.BuildingType.Type; if (!this.raidDefenseTrainerBindings.Contains(type)) { return(EatResponse.NotEaten); } UXController uXController = Service.Get <UXController>(); Lang lang = Service.Get <Lang>(); switch (type) { case BuildingType.FleetCommand: Service.Get <DeployerController>().SpecialAttackDeployer.ExitMode(); uXController.HUD.DisableSpecialAttacks(); uXController.MiscElementsManager.ShowPlayerInstructions(lang.Get("STARSHIP_TRAINER_DESTROYED", new object[0])); return(EatResponse.NotEaten); case BuildingType.HeroMobilizer: Service.Get <DeployerController>().HeroDeployer.ExitMode(); uXController.HUD.DisableHeroDeploys(); uXController.MiscElementsManager.ShowPlayerInstructions(lang.Get("HERO_TRAINER_DESTROYED", new object[0])); return(EatResponse.NotEaten); case BuildingType.ChampionPlatform: case BuildingType.Housing: return(EatResponse.NotEaten); case BuildingType.Squad: Service.Get <DeployerController>().SquadTroopDeployer.ExitMode(); uXController.HUD.DisableSquadDeploy(); uXController.MiscElementsManager.ShowPlayerInstructions(lang.Get("SQUAD_CENTER_DESTROYED", new object[0])); return(EatResponse.NotEaten); default: return(EatResponse.NotEaten); } } ContractEventData contractEventData = (ContractEventData)cookie; if (contractEventData.BuildingVO.Type == BuildingType.ScoutTower) { this.SendRaidDefenseUpdate(); } } else { if (id <= EventId.ContractStarted) { if (id != EventId.WorldLoadComplete) { if (id == EventId.WorldReset) { this.DestroyScoutHolo(); return(EatResponse.NotEaten); } if (id != EventId.ContractStarted) { return(EatResponse.NotEaten); } } else { IState currentState = Service.Get <GameStateMachine>().CurrentState; if (currentState is HomeState && this.RaidCompleteDidAwardCrate()) { GameUtils.ShowCrateAwardModal(this.lastAwardedCrateUid); this.lastAwardedCrateUid = null; Service.Get <EventManager>().UnregisterObserver(this, EventId.WorldLoadComplete); return(EatResponse.NotEaten); } return(EatResponse.NotEaten); } } else if (id != EventId.ContractContinued) { if (id == EventId.HeroDeployed) { EntityController entityController = Service.Get <EntityController>(); NodeList <OffensiveTroopNode> nodeList = entityController.GetNodeList <OffensiveTroopNode>(); TroopAttackController troopAttackController = Service.Get <TroopAttackController>(); for (OffensiveTroopNode offensiveTroopNode = nodeList.Head; offensiveTroopNode != null; offensiveTroopNode = offensiveTroopNode.Next) { troopAttackController.RefreshTarget((SmartEntity)offensiveTroopNode.Entity); } return(EatResponse.NotEaten); } if (id != EventId.PlanetRelocateStarted) { return(EatResponse.NotEaten); } if (this.AreRaidsAccessible()) { this.SendRaidDefenseUpdate(); return(EatResponse.NotEaten); } return(EatResponse.NotEaten); } ContractEventData contractEventData2 = (ContractEventData)cookie; if (contractEventData2.BuildingVO.Type == BuildingType.ScoutTower) { this.DestroyScoutHolo(); } } return(EatResponse.NotEaten); }