public EatResponse OnEvent(EventId id, object cookie) { switch (id) { case EventId.BuildingViewReady: { EntityViewParams entityViewParams = (EntityViewParams)cookie; if (entityViewParams.Entity.Has <ScoutTowerComponent>()) { this.CreateScoutHolo(); } return(EatResponse.NotEaten); } case EventId.BuildingViewFailed: { IL_14: if (id == EventId.BuildingConstructed) { goto IL_A5; } if (id != EventId.BuildingReplaced) { switch (id) { case EventId.WorldLoadComplete: { IState currentState = Service.GameStateMachine.CurrentState; if (currentState is HomeState && this.RaidCompleteDidAwardCrate()) { GameUtils.ShowCrateAwardModal(this.lastAwardedCrateUid); this.lastAwardedCrateUid = null; Service.EventManager.UnregisterObserver(this, EventId.WorldLoadComplete); } return(EatResponse.NotEaten); } case EventId.WorldInTransitionComplete: case EventId.WorldOutTransitionComplete: IL_3D: if (id == EventId.ContractStarted || id == EventId.ContractContinued) { ContractEventData contractEventData = (ContractEventData)cookie; if (contractEventData.BuildingVO.Type == BuildingType.ScoutTower) { this.DestroyScoutHolo(); } return(EatResponse.NotEaten); } if (id != EventId.EntityKilled) { if (id == EventId.HeroDeployed) { EntityController entityController = Service.EntityController; NodeList <OffensiveTroopNode> nodeList = entityController.GetNodeList <OffensiveTroopNode>(); TroopAttackController troopAttackController = Service.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); } 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.UXController; Lang lang = Service.Lang; if (type != BuildingType.FleetCommand) { if (type != BuildingType.Squad) { if (type == BuildingType.HeroMobilizer) { Service.DeployerController.HeroDeployer.ExitMode(); uXController.HUD.DisableHeroDeploys(); uXController.MiscElementsManager.ShowPlayerInstructions(lang.Get("HERO_TRAINER_DESTROYED", new object[0])); } } else { Service.DeployerController.SquadTroopDeployer.ExitMode(); uXController.HUD.DisableSquadDeploy(); uXController.MiscElementsManager.ShowPlayerInstructions(lang.Get("SQUAD_CENTER_DESTROYED", new object[0])); } } else { Service.DeployerController.SpecialAttackDeployer.ExitMode(); uXController.HUD.DisableSpecialAttacks(); uXController.MiscElementsManager.ShowPlayerInstructions(lang.Get("STARSHIP_TRAINER_DESTROYED", new object[0])); } return(EatResponse.NotEaten); } break; case EventId.WorldReset: this.DestroyScoutHolo(); return(EatResponse.NotEaten); } goto IL_3D; } SmartEntity smartEntity2 = cookie as SmartEntity; if (smartEntity2.ScoutTowerComp != null) { this.CreateScoutHolo(); } return(EatResponse.NotEaten); } case EventId.BuildingCancelled: goto IL_A5; } goto IL_14; IL_A5: ContractEventData contractEventData2 = (ContractEventData)cookie; if (contractEventData2.BuildingVO.Type == BuildingType.ScoutTower) { this.SendRaidDefenseUpdate(); } return(EatResponse.NotEaten); }