public void MajorEmpireUntameKaiju(Kaiju kaiju, int instigatorEmpireIndex, bool clearMilitias = false) { if (kaiju.MajorEmpire == null || !(kaiju.MajorEmpire is MajorEmpire)) { Diagnostics.LogError("Kaiju has an invalid owner."); } if (this.KaijuEmpire.Index != kaiju.KaijuEmpire.Index) { Diagnostics.LogError("KaijuCouncil KaijuEmpire must be the same as Kaiju KaijuEmpire!"); } if (clearMilitias) { kaiju.ClearMilitias(); } kaiju.RemoveOwner(instigatorEmpireIndex); this.departmentOfDefense.AddArmy(kaiju.KaijuArmy); kaiju.ChangeToWildState(); this.KaijuEmpire.AddChild(kaiju.KaijuGarrison); if (kaiju.KaijuArmy != null) { this.KaijuEmpire.AddChild(kaiju.KaijuArmy); } this.KaijuEmpire.AddKaiju(kaiju); this.KaijuEmpire.Refresh(false); this.Kaiju = kaiju; }
public void AddRegionalEffect(RegionalEffect effect) { this.regionalEffects.Add(effect); for (int i = 0; i < effect.Definition.Descriptors.Length; i++) { base.AddDescriptor(effect.Definition.Descriptors[i], true); } this.Refresh(false); IEventService service = Services.GetService <IEventService>(); if (service != null) { IGameEntityRepositoryService service2 = this.gameService.Game.Services.GetService <IGameEntityRepositoryService>(); if (service2 != null) { Kaiju kaiju = null; service2.TryGetValue <Kaiju>(effect.OwnerGUID, out kaiju); if (kaiju != null) { EventCityAddRegionalEffects eventToNotify = new EventCityAddRegionalEffects(this.Empire, this, kaiju); service.Notify(eventToNotify); } } } }
private void KaijuLostEncounter(Kaiju kaiju, global::Empire stunner, bool setKaijuFree) { bool flag = Amplitude.Unity.Runtime.Runtime.Registry.GetValue <bool>("Gameplay/Kaiju/KaijuAutoTameBeforeLoseEncounter", true); bool relocate = false; if (setKaijuFree) { flag = false; relocate = true; } global::PlayerController server = this.KaijuEmpire.PlayerControllers.Server; if (kaiju.IsTamed()) { MajorEmpire majorEmpire = kaiju.MajorEmpire; if (server != null) { OrderUntameKaiju order = new OrderUntameKaiju(kaiju, relocate, stunner.Index, flag); server.PostOrder(order); } } else if (flag) { if (server != null) { OrderTameKaiju order2 = new OrderTameKaiju(stunner.Index, kaiju, null); server.PostOrder(order2); } } else { this.Kaiju.ChangeToStunState(stunner); this.ResetRelocationETA(); } }
public override void ReadXml(XmlReader reader) { int num = reader.ReadVersionAttribute(); base.ReadXml(reader); GameEntityGUID guid = new GameEntityGUID(reader.GetAttribute <ulong>("GUID")); Kaiju kaiju = new Kaiju(this.KaijuEmpire, guid); reader.ReadElementSerializable <Kaiju>(ref kaiju); if (kaiju != null) { this.Kaiju = kaiju; } this.relocationETA = reader.ReadElementString <int>("relocationETA"); this.kaijuSpawnTurn = reader.ReadElementString <int>("kaijuSpawnTurn"); this.lastLiceArmySpawnTurn = reader.ReadElementString <int>("lastLiceArmySpawnTurn"); this.liceArmies.Clear(); this.liceArmiesCache = null; if (num >= 2) { int attribute = reader.GetAttribute <int>("liceArmiesCount"); reader.ReadStartElement("liceArmies"); for (int i = 0; i < attribute; i++) { this.liceArmies.Add(new GameEntityGUID(reader.ReadElementString <ulong>("liceArmyGUID"))); } reader.ReadEndElement("liceArmies"); } }
private void CreateObjectiveFor(int regionIndex, Kaiju kaiju) { GlobalObjectiveMessage globalObjectiveMessage = base.GenerateObjective(base.ObjectiveType, regionIndex, kaiju.GUID); this.globalObjectiveMessages.Add(globalObjectiveMessage); this.RefreshMessagePriority(globalObjectiveMessage); }
public static void assignData(Kaiju aKaiju, Board aBoard, float aNumber, SkillBar aSkillBar) { currentBoard = aBoard; currentKaiju = aKaiju; growScoreRelation = aNumber; currentSkillBar = aSkillBar; }
protected override State Execute(AIBehaviorTree aiBehaviorTree, params object[] parameters) { Army army = aiBehaviorTree.Variables[this.TargetVarName] as Army; Kaiju kaiju = aiBehaviorTree.Variables[this.TargetVarName] as Kaiju; if (army == null && kaiju != null && kaiju.OnArmyMode()) { army = kaiju.KaijuArmy; } if (army != null) { return(this.ArmyExecute(army, aiBehaviorTree, parameters)); } Garrison garrison = aiBehaviorTree.Variables[this.TargetVarName] as Garrison; if (garrison == null && kaiju != null && kaiju.OnGarrisonMode()) { garrison = kaiju.KaijuGarrison; } if (garrison != null) { return(this.GeneralExecute(garrison, aiBehaviorTree, parameters)); } aiBehaviorTree.ErrorCode = 10; return(State.Failure); }
override public void destroy() { base.destroy(); btnNextScreen.destroy(); btnNextScreen = null; optionsBttn.destroy(); optionsBttn = null; mBoard.destroy(); mBoard = null; monster.destroy(); monster = null; building.destroy(); building = null; screenDim.destroy(); screenDim = null; timeLeft.destroy(); timeLeft = null; skills.destroy(); skills = null; backMenuBttn.destroy(); backMenuBttn = null; tryAgainBttn.destroy(); tryAgainBttn = null; scoreText.destroy(); scoreText = null; }
public void RemoveTamedKaiju(Kaiju kaiju) { if (this.TamedKaijus.Contains(kaiju)) { IDatabase<SimulationDescriptor> database = Databases.GetDatabase<SimulationDescriptor>(false); SimulationDescriptor descriptor = null; if (database.TryGetValue(kaiju.KaijuEmpire.KaijuFaction.EmpireTamedKaijuDescriptor, out descriptor)) { base.SimulationObject.RemoveDescriptor(descriptor); } this.TamedKaijus.Remove(kaiju); base.RemoveChild(kaiju); if (kaiju.KaijuGarrison != null) { base.RemoveChild(kaiju.KaijuGarrison); } if (kaiju.KaijuArmy != null) { base.RemoveChild(kaiju.KaijuArmy); base.GetAgency<DepartmentOfDefense>().RemoveArmy(kaiju.KaijuArmy, false); } kaiju.Refresh(false); this.Refresh(false); if (this.TamedKaijusCollectionChanged != null) { this.TamedKaijusCollectionChanged(this, new CollectionChangeEventArgs(CollectionChangeAction.Remove, kaiju)); } } }
protected override State Execute(AIBehaviorTree aiBehaviorTree, params object[] parameters) { if (string.IsNullOrEmpty(this.TargetVarName)) { return(State.Success); } Kaiju kaiju = aiBehaviorTree.Variables[this.TargetVarName] as Kaiju; if (kaiju == null || kaiju.IsTamed()) { return(State.Success); } if (!(aiBehaviorTree.AICommander.Empire is MajorEmpire)) { return(State.Success); } Army army; if (base.GetArmyUnlessLocked(aiBehaviorTree, "$Army", out army) != AIArmyMission.AIArmyMissionErrorCode.None) { return(State.Success); } if (this.aILayer_Trade.ArmiesThatTriedKaijuTameResourceTrading.Contains(army.GUID)) { return(State.Success); } this.aILayer_Trade.ArmiesThatTriedKaijuTameResourceTrading.Add(army.GUID); return(State.Failure); }
protected override void RefreshObjectives(StaticString context, StaticString pass) { base.RefreshObjectives(context, pass); for (int i = 0; i < this.MajorEmpire.TamedKaijus.Count; i++) { Kaiju kaiju = this.MajorEmpire.TamedKaijus[i]; if (kaiju.OnArmyMode()) { AICommander aicommander = this.aiCommanders.Find((AICommander match) => match.ForceArmyGUID == kaiju.KaijuArmy.GUID); if (aicommander == null) { this.AddCommander(new AICommander_KaijuSupport { ForceArmyGUID = kaiju.KaijuArmy.GUID, Empire = base.AIEntity.Empire, AIPlayer = base.AIEntity.AIPlayer }); } else { aicommander.Initialize(); aicommander.Load(); aicommander.CreateMission(); } } } }
private bool IsKaijuValidForTame(Army army, Kaiju kaiju, ref List <StaticString> failureFlags, bool checkNearbyKaijus = true) { if (army == null || kaiju == null) { failureFlags.Add(ArmyAction.NoCanDoWhileHidden); return(false); } if (checkNearbyKaijus && !this.IsKaijuNearby(kaiju, army)) { failureFlags.Add(ArmyAction.NoCanDoWhileHidden); return(false); } if (kaiju.IsTamed()) { failureFlags.Add(ArmyAction.NoCanDoWhileHidden); return(false); } if (kaiju.IsStunned()) { failureFlags.Add(ArmyAction.NoCanDoWhileHidden); return(false); } if (ELCPUtilities.UseELCPSymbiosisBuffs && !ELCPUtilities.CanELCPTameKaiju(kaiju, this.TameCost, army.Empire)) { failureFlags.Add(ArmyAction.NoCanDoWhileCannotAffordCosts); return(false); } return(true); }
public override void Execute(Army army, global::PlayerController playerController, out Ticket ticket, EventHandler <TicketRaisedEventArgs> ticketRaisedEventHandler, params object[] parameters) { ticket = null; ArmyAction.FailureFlags.Clear(); Kaiju kaiju = null; if (parameters != null && parameters.Length != 0) { if (parameters[0] is Kaiju) { kaiju = (parameters[0] as Kaiju); } else if (parameters[0] is KaijuGarrison) { kaiju = (parameters[0] as KaijuGarrison).Kaiju; } else if (parameters[0] is KaijuArmy) { kaiju = (parameters[0] as KaijuArmy).Kaiju; } } if (kaiju != null) { OrderTameUnstunnedKaiju order = new OrderTameUnstunnedKaiju(army.Empire.Index, kaiju, army); Diagnostics.Assert(playerController != null); playerController.PostOrder(order, out ticket, ticketRaisedEventHandler); } }
public void SetupPortrait(Kaiju kaiju, Empire playerEmpire) { this.Kaiju = kaiju; if (this.Portrait != null) { IGuiPanelHelper guiPanelHelper = Services.GetService <global::IGuiService>().GuiPanelHelper; Diagnostics.Assert(guiPanelHelper != null, "Unable to access GuiPanelHelper"); Texture2D image; if (guiPanelHelper.TryGetTextureFromIcon(this.KaijuGuiElement, global::GuiPanel.IconSize.Large, out image)) { this.Portrait.Image = image; } } Amplitude.Unity.Gui.IGuiService service = Services.GetService <global::IGuiService>(); Diagnostics.Assert(service != null); KaijuTameCost kaijuTameCost = KaijuCouncil.GetKaijuTameCost(); this.CostGroup.Visible = this.Kaiju.IsWild(); KaijuCouncil agency = this.Kaiju.KaijuEmpire.GetAgency <KaijuCouncil>(); this.CostValue.Text = GuiFormater.FormatGui(kaijuTameCost.GetValue(playerEmpire), false, true, false, 0) + service.FormatSymbol(ELCPUtilities.UseELCPSymbiosisBuffs ? agency.ELCPResourceName : kaijuTameCost.ResourceName); if (this.Background != null) { this.Background.TintColor = this.Kaiju.Empire.Color; } this.AgeTransform.AgeTooltip.Content = AgeLocalizer.Instance.LocalizeString(KaijuTechPortrait.PortraitClickTooltip); }
private void Order_KaijuRisen(object sender, TicketRaisedEventArgs e) { if (e.Result == PostOrderResponse.Processed) { OrderKaijuChangeMode orderKaijuChangeMode = e.Order as OrderKaijuChangeMode; Kaiju kaiju = null; if (!this.gameEntityRepositoryService.TryGetValue <Kaiju>(orderKaijuChangeMode.KaijuGUID, out kaiju) || !this.MajorEmpire.TamedKaijus.Contains(kaiju)) { return; } AICommander aicommander = this.aiCommanders.Find((AICommander match) => match.ForceArmyGUID == kaiju.KaijuArmy.GUID); if (aicommander == null) { this.AddCommander(new AICommander_KaijuSupport { ForceArmyGUID = kaiju.KaijuArmy.GUID, Empire = base.AIEntity.Empire, AIPlayer = base.AIEntity.AIPlayer }); return; } aicommander.Initialize(); aicommander.Load(); aicommander.CreateMission(); } }
public static bool CanELCPTameKaiju(Kaiju kaiju, KaijuTameCost tameCost, global::Empire empire) { KaijuCouncil agency = kaiju.KaijuEmpire.GetAgency <KaijuCouncil>(); float num = -tameCost.GetValue(empire.SimulationObject); DepartmentOfTheTreasury agency2 = empire.GetAgency <DepartmentOfTheTreasury>(); return(agency2 != null && agency2.IsTransferOfResourcePossible(empire, agency.ELCPResourceName, ref num)); }
public CSurvivalState(CInfo stageInfo) { CGame.inst().setImage("Sprites/level_Background00"); CurrentStageData.clearData(); SoundList.instance.playLevelMusic(); tryAgainInfo = stageInfo; switch (stageInfo.Kaiju) { case 1: monster = new Dinosaur(stageInfo.startStage, stageInfo.firstStage, stageInfo.secondStage); break; case 2: monster = new Kong(stageInfo.startStage, stageInfo.firstStage, stageInfo.secondStage); break; case 3: monster = new Kraken(stageInfo.startStage, stageInfo.firstStage, stageInfo.secondStage); break; } current_state = STATE_PLAYING; CurrentStageData.difficulty = 0; mBoard = new Board(1); building = new Enemy(0); timeLeft = new CText("Time: ", CText.alignment.TOP_CENTER); timeLeft.setX(0); timeLeft.setY(0); timeLeft.setColor(Color.black); scoreText = new CText("SCORE :", CText.alignment.TOP_CENTER); scoreText.setX(400); scoreText.setY(0); scoreText.setColor(Color.black); btnNextScreen = new CSprite(); btnNextScreen.setSortingLayer("TextUI"); mBoard.targetScore = stageInfo.TargetScore; // MOVE TO CLASS float scoreCoefficient = (float)70 / (float)mBoard.targetScore; skills = new SkillBar(stageInfo.Kaiju); mTimer = new Timer(); CurrentStageData.assignData(monster, mBoard, scoreCoefficient, skills); CurrentStageData.assignTimer(mTimer); screenDim = new CSprite(); screenDim.setSortingLayer("ScreenShade"); screenDim.setName("Sombra"); backMenuBttn = new CSprite(); backMenuBttn.setSortingLayer("TextUI"); tryAgainBttn = new CSprite(); tryAgainBttn.setSortingLayer("TextUI"); optionsBttn = new CSprite(); optionsBttn.setImage(Resources.Load <Sprite>("Sprites/Buttons/Pause_Button")); optionsBttn.setXY(680, 40); optionsBttn.setSortingLayer("TextUI"); }
// Init all the game states void initLevel() { // Init Cnavas gameCanvas.SetActive(true); winCanvas.SetActive(false); shareSucceedCanvas.SetActive(false); findEggCanvas.SetActive(false); editEggNameCanvas.SetActive(false); Debug.Log("Canvas finished"); // Init Reward score = 0; eggIndex = -1; eggName = ""; Debug.Log("REward f"); // Init Game States buildingDestroyedCount = 0; win = false; shareStatus = FacebookManager.ShareStatus.None; fallenPiecesCount = 0; // Shake Action shakeDetectionThreshold *= shakeDetectionThreshold; lowPassValue = Input.acceleration; Debug.Log("Shake f "); // To Be Used GameObjects shakeText = gameCanvas.transform.FindChild("ShakeText").gameObject; shakeText.SetActive(false); ground = GameObject.FindGameObjectWithTag("ground"); progressBar = gameCanvas.transform.FindChild("FullImage").gameObject; Debug.Log("Progress finished"); GetComponent <SpriteControl> ().deactivateColor(); MainMenuScript mainMenu = mainController.GetComponent <MainMenuScript> (); kaiju = GameObject.Find("Kaiju").gameObject; selectedKaiju = mainMenu.SelectedKaiju; if (selectedKaiju != null) { kaiju.GetComponent <MonsterCreator> (). setUpMonster(selectedKaiju.HeadType, selectedKaiju.HandType, selectedKaiju.BodyType, selectedKaiju.MonsterColor); } else { kaiju.GetComponent <MonsterCreator> (). setUpMonster(6, 1, 1, Color.white); } Debug.Log("Setup Kaiju"); StartCoroutine(closeDestroyText(2.0f)); }
void initCamera(CameraMode mode) { mainController = GameObject.Find("MainController").GetComponent <MainController>(); startCamera(); takingPhoto = false; CAMREADY = false; KaijuSelfieModel.SetActive(false); BuildingSelfieModel.SetActive(false); EggSelfieModel.SetActive(false); EggCheckinModel.SetActive(false); MainMenuScript mainMenu = mainController.gameObject.GetComponent <MainMenuScript> (); Debug.Log(mode); switch (mode) { case CameraMode.BuildingDestruction: BuildingSelfieModel.SetActive(true); Kaiju kaiju = mainMenu.SelectedKaiju; BuildingSelfieModel.GetComponent <MonsterCreator> ().setUpMonster(kaiju.HeadType, kaiju.HandType, kaiju.BodyType, kaiju.MonsterColor); break; case CameraMode.EggHatching: // TODO: get egg information from spatial EggSelfieModel.SetActive(true); Debug.Log(mainController.selectedEgg.Index); GameObject Egg = HatchingEggs [mainController.selectedEgg.Index - 1]; Egg.SetActive(true); GameObject kaijuHead = GameObject.Find("KaijuHead"); kaijuHead.SetActive(false); StartCoroutine(ShowKaijuHead(kaijuHead)); kaijuHead.GetComponent <SpriteRenderer> ().sprite = mainController.selectedEgg.KaijuEmbryo.HeadSprite; break; case CameraMode.Kaiju: KaijuSelfieModel.SetActive(true); Kaiju selectedKaiju = mainMenu.SelectedKaiju; KaijuSelfieModel.GetComponent <MonsterCreator> ().setUpMonster(selectedKaiju.HeadType, selectedKaiju.HandType, selectedKaiju.BodyType, selectedKaiju.MonsterColor); break; case CameraMode.EggCheckin: EggCheckinModel.SetActive(true); GameObject CheckinEgg = GameObject.Find("CheckinEgg"); CheckinEgg.GetComponent <SpriteRenderer> ().sprite = mainController.selectedEgg.Sprite; //CheckinEgg.transform.localScale = new Vector3 (873.0f / mainController.selectedEgg.Sprite.texture.width, 878.0f / mainController.selectedEgg.Sprite.texture.height); break; default: break; } uiCanvas.SetActive(false); camDisplayCanvas.SetActive(false); shareCanvas.SetActive(false); }
public CLevelState(int stageNumber) { SoundList.instance.playLevelMusic(); CInfo stageInfo = LevelsInfo.getLevel(stageNumber); CGame.inst().setImage("Sprites/level_Background0" + stageInfo.building.ToString()); CurrentStageData.currentStage = stageNumber; switch (stageInfo.Kaiju) { case 1: monster = new Dinosaur(stageInfo.startStage, stageInfo.firstStage, stageInfo.secondStage); break; case 2: monster = new Kong(stageInfo.startStage, stageInfo.firstStage, stageInfo.secondStage); break; case 3: monster = new Kraken(stageInfo.startStage, stageInfo.firstStage, stageInfo.secondStage); break; } current_state = STATE_PLAYING; CurrentStageData.difficulty = stageInfo.dif; mBoard = new Board(0); //monster = new Kong(1, 53, 76); building = new Enemy(stageInfo.building); mText = new CText("TEST", CText.alignment.TOP_CENTER); mText.setX(0); mText.setY(0); mText.setColor(Color.black); mBoard.movementsLeft = stageInfo.movements; // MOVE TO CLASS mBoard.targetScore = stageInfo.TargetScore; // MOVE TO CLASS float scoreCoefficient = (float)70 / (float)mBoard.targetScore; skills = new SkillBar(stageInfo.Kaiju); CurrentStageData.assignData(monster, mBoard, scoreCoefficient, skills); screenDim = new CSprite(); screenDim.setSortingLayer("ScreenShade"); screenDim.setName("Sombra"); backMenuBttn = new CSprite(); backMenuBttn.setSortingLayer("TextUI"); tryAgainBttn = new CSprite(); tryAgainBttn.setSortingLayer("TextUI"); btnNextScreen = new CSprite(); btnNextScreen.setSortingLayer("TextUI"); optionsBttn = new CSprite(); optionsBttn.setImage(Resources.Load <Sprite>("Sprites/Buttons/Pause_Button")); optionsBttn.setXY(680, 40); optionsBttn.setSortingLayer("TextUI"); }
// TODO add other relevant fields private OwnedEgg(int imageIndex, string id, LocationCombination combo, string kaijuName, Kaiju kaiju) { _id = id; _imageIndex = imageIndex; _requests = new IdList(); _requiredLocations = combo; //_size = STARTING_EGG_SIZE; _checkInnableMarkers = new List <HatchLocationMarker>(); _checkInnableLocs = new Dictionary <BasicMarker, HashSet <GenericLocation> >(); _hatchable = !(PlacesToTake.Count() > 0); _kaiju = kaiju; _kaiju.GivenName = kaijuName; }
public static bool IsPositionValidForSettleKaiju(WorldPosition worldPosition, Kaiju kaiju = null) { if (!KaijuCouncil.IgnoreRegionRequirements && !KaijuCouncil.IsRegionValidForSettleKaiju(KaijuCouncil.worldPositionService.GetRegion(worldPosition))) { return(false); } if (KaijuCouncil.worldPositionService.IsFrozenWaterTile(worldPosition) || KaijuCouncil.worldPositionService.IsWaterTile(worldPosition)) { return(false); } Army armyAtPosition = KaijuCouncil.worldPositionService.GetArmyAtPosition(worldPosition); return(KaijuCouncil.attractivenessMap.GetValue(worldPosition) && (armyAtPosition == null || (kaiju != null && armyAtPosition.Empire.Index == kaiju.Empire.Index && armyAtPosition.GUID == kaiju.KaijuArmy.GUID)) && KaijuCouncil.worldPositionService.GetDistrict(worldPosition) == null); }
public void SpawnKaiju(WorldPosition targetPosition, GameEntityGUID kaijuGUID, GameEntityGUID garrisonGUID, GameEntityGUID armyGUID, GameEntityGUID monsterGUID, GameEntityGUID[] licesGUIDs) { Kaiju kaiju = new Kaiju(base.Empire as KaijuEmpire, kaijuGUID); string[] kaijuDescriptors = this.KaijuEmpire.KaijuFaction.KaijuDescriptors; for (int i = 0; i < kaijuDescriptors.Length; i++) { SimulationDescriptor descriptor = null; if (this.descriptorsDatabase.TryGetValue(kaijuDescriptors[i], out descriptor)) { kaiju.AddDescriptor(descriptor, false); } } KaijuGarrison kaijuGarrison = new KaijuGarrison(garrisonGUID, targetPosition); SimulationDescriptor value = this.descriptorsDatabase.GetValue(Kaiju.ClassKaijuGarrison); kaijuGarrison.AddDescriptor(value, false); kaijuGarrison.SetPropertyBaseValue(SimulationProperties.MaximumUnitSlotCount, (float)(licesGUIDs.Length + 1)); kaiju.SetGarrison(kaijuGarrison); KaijuArmy kaijuArmy = this.departmentOfDefense.CreateKaijuArmy(armyGUID, targetPosition, true); SimulationDescriptor value2 = this.descriptorsDatabase.GetValue(Kaiju.ClassKaijuArmy); kaijuArmy.AddDescriptor(value2, false); kaijuArmy.SetPropertyBaseValue(SimulationProperties.MaximumUnitSlotCount, (float)(licesGUIDs.Length + 1)); kaiju.SetArmy(kaijuArmy); this.gameEntityRepositoryService.Register(kaijuArmy); this.gameEntityRepositoryService.Register(kaiju); kaiju.ChangeToWildState(); kaiju.ChangeToGarrisonMode(false); Unit unit = DepartmentOfDefense.CreateUnitByDesign(monsterGUID, this.KaijuEmpire.FindMonsterDesign(true)); kaiju.AddUnit(unit); for (int j = 0; j < licesGUIDs.Length; j++) { Unit unit2 = DepartmentOfDefense.CreateUnitByDesign(licesGUIDs[j], this.KaijuEmpire.FindLiceDesign(true)); kaiju.AddUnit(unit2); } this.lastLiceArmySpawnTurn = (this.gameService.Game as global::Game).Turn; this.Kaiju = kaiju; this.KaijuEmpire.AddKaiju(kaiju); kaiju.Refresh(false); foreach (global::Empire empire in (this.gameService.Game as global::Game).Empires) { if (empire is MajorEmpire) { this.eventService.Notify(new EventKaijuSpawned(empire, this.Kaiju)); } } }
public static Kaiju[] GetAllKaiju(int count, string newName, int numberName, float version, int distanceOfJump = 3, int flyghtSpeed = 4, float thicknessOfTitanium = 1.1f, int levelOfLibido = 1, int lightningStrikes = 1) { if (count > 0 & numberName > 0) { int sumOfAllKaiju = count * 6; Kaiju[] masAllKaiju = new Kaiju[sumOfAllKaiju]; Kaiju[] tempKaiju = GetKaiju(namesKaiju.Kaiju, numberName, version, count); Gorilla[] tempGorilla = GetGorilla(namesKaiju.Gorila, numberName, version, distanceOfJump, count); Flying[] tempFluing = GetFlying(namesKaiju.Flying, numberName, version, flyghtSpeed, count); Titan[] tempTitan = GetTitan(namesKaiju.Titan, numberName, version, thicknessOfTitanium, count); Apollon[] tempApollon = GetApollon(namesKaiju.Apollon, numberName, version, thicknessOfTitanium, levelOfLibido, count); Zeus[] tempZeus = GetZeus(namesKaiju.Zeus, numberName, version, thicknessOfTitanium, lightningStrikes, count); for (int i = 0; i < count; i++) { tempKaiju[i].Name = "Kaiju: " + newName + numberName++; masAllKaiju[i] = tempKaiju[i]; } for (int i = count, j = 0; i < count * 2; i++, j++) { tempGorilla[j].Name = "Gorilla: " + newName + numberName++; masAllKaiju[i] = tempGorilla[j]; } for (int i = count * 2, j = 0; i < count * 3; i++, j++) { tempFluing[j].Name = "Fluing: " + newName + numberName++; masAllKaiju[i] = tempFluing[j]; } for (int i = count * 3, j = 0; i < count * 4; i++, j++) { tempTitan[j].Name = "Titan: " + newName + numberName++; masAllKaiju[i] = tempTitan[j]; } for (int i = count * 4, j = 0; i < count * 5; i++, j++) { tempApollon[j].Name = "Apollon: " + newName + numberName++; masAllKaiju[i] = tempApollon[j]; } for (int i = count * 5, j = 0; i < count * 6; i++, j++) { tempZeus[j].Name = "Zeus: " + newName + numberName++; masAllKaiju[i] = tempZeus[j]; } return masAllKaiju; } else { throw new System.Exception("The parameter is incorrect!"); } }
public override bool CanExecute(Army army, ref List <StaticString> failureFlags, params object[] parameters) { if (!base.CanExecute(army, ref failureFlags, parameters)) { return(false); } if (army.IsNaval) { failureFlags.Add(ArmyAction.NoCanDoWhileHidden); return(false); } KaijuArmy kaijuArmy = army as KaijuArmy; if (kaijuArmy == null) { return(false); } if (!base.CanAfford(army)) { failureFlags.Add(ArmyAction.NoCanDoWhileCannotAffordCosts); return(false); } if (!base.CheckActionPointsPrerequisites(army)) { failureFlags.Add(ArmyAction.NoCanDoWhileNotEnoughActionPointsLeft); return(false); } if (army.IsInEncounter) { if (failureFlags != null) { failureFlags.Add(ArmyAction.NoCanDoWhileLockedInBattle); } return(false); } Kaiju kaiju = kaijuArmy.Kaiju; if (Services.GetService <IGameService>().Game.Services.GetService <IWorldPositionningService>().IsWaterTile(kaijuArmy.WorldPosition)) { failureFlags.Add(ArmyAction.NoCanDoWhileOnFrozenWaterTile); return(false); } if (kaiju.CanChangeToGarrisonMode()) { return(true); } failureFlags.Add(ArmyAction_SettleKaiju.NoCanDoWhileRegionIsOwned); return(false); }
private void SetupKaijuPortraits(AgeTransform tableitem, Kaiju kaiju, int index) { KaijuTechPortrait component = tableitem.GetComponent <KaijuTechPortrait>(); component.SetupPortrait(kaiju, base.Empire); if (component.KaijuGuiElement != null) { component.AgeTransform.X = ((!AgeUtils.HighDefinition) ? component.KaijuGuiElement.X : (component.KaijuGuiElement.X * AgeUtils.HighDefinitionFactor)); component.AgeTransform.Y = ((!AgeUtils.HighDefinition) ? component.KaijuGuiElement.Y : (component.KaijuGuiElement.Y * AgeUtils.HighDefinitionFactor)); return; } Diagnostics.LogError("The Kaiju doesn't have a KaijuTechPortrait"); component.AgeTransform.X = 0f; component.AgeTransform.Y = 0f; }
public void FillTargets(Army army, List <IGameEntity> gameEntities, ref List <StaticString> failureFlags) { if (army == null) { throw new ArgumentNullException("army"); } IGameService service = Services.GetService <IGameService>(); if (service == null) { return; } global::Game x = service.Game as global::Game; if (x == null) { return; } IWorldPositionningService service2 = service.Game.Services.GetService <IWorldPositionningService>(); Diagnostics.Assert(service2 != null); for (int i = 0; i < 6; i++) { WorldPosition neighbourTile = service2.GetNeighbourTile(army.WorldPosition, (WorldOrientation)i, 1); Region region = service2.GetRegion(neighbourTile); if (region != null && region.Kaiju != null) { Kaiju kaiju = region.Kaiju; if (this.IsKaijuValidForTame(army, kaiju, ref failureFlags, true) && !gameEntities.Contains(kaiju)) { gameEntities.Add(kaiju); } } Army armyAtPosition = service2.GetArmyAtPosition(neighbourTile); if (armyAtPosition != null && armyAtPosition is KaijuArmy) { KaijuArmy kaijuArmy = armyAtPosition as KaijuArmy; if (kaijuArmy != null) { Kaiju kaiju2 = kaijuArmy.Kaiju; if (kaiju2 != null && kaiju2.OnArmyMode() && !kaiju2.IsStunned() && !gameEntities.Contains(kaiju2)) { gameEntities.Add(kaijuArmy.Kaiju); } } } } }
private void CreateRelocationNeeds() { float num = 0f; foreach (Kaiju kaiju in this.MajorEmpire.TamedKaijus) { if (kaiju.OnArmyMode()) { num += kaiju.KaijuArmy.GetPropertyValue(SimulationProperties.LandMilitaryPower); } else { num += kaiju.KaijuGarrison.GetPropertyValue(SimulationProperties.LandMilitaryPower); } } this.KaijusToRise.Clear(); this.KaijuSupport = (this.DiplomacyLayer.GetMilitaryPowerDif(false) - num <= (base.AIEntity.Empire.GetPropertyValue(SimulationProperties.LandMilitaryPower) - num) * 0.4f); List <Region> list = new List <Region>(); List <StaticString> list2 = new List <StaticString>(); for (int i = 0; i < this.MajorEmpire.TamedKaijus.Count; i++) { Kaiju kaiju2 = this.MajorEmpire.TamedKaijus[i]; list2.Clear(); if (!kaiju2.OnArmyMode() && this.garrisonAction_MigrateKaiju.CanExecute(kaiju2.KaijuGarrison, ref list2, new object[0]) && this.garrisonAction_MigrateKaiju.ComputeRemainingCooldownDuration(kaiju2.KaijuGarrison) < 1f) { if (!this.KaijuSupport || !this.IsKaijuValidForSupport(kaiju2)) { Region mostProfitableRegionForKaiju = this.GetMostProfitableRegionForKaiju(kaiju2, list); if (mostProfitableRegionForKaiju != null && kaiju2.Region != mostProfitableRegionForKaiju) { WorldPosition bestDefensiveKaijuPosition = this.GetBestDefensiveKaijuPosition(mostProfitableRegionForKaiju); if (bestDefensiveKaijuPosition.IsValid) { list.Add(mostProfitableRegionForKaiju); KaijuRelocationMessage message = new KaijuRelocationMessage(kaiju2.GUID, bestDefensiveKaijuPosition); base.AIEntity.AIPlayer.Blackboard.AddMessage(message); } } } else { this.KaijusToRise.Add(kaiju2.GUID); } } } }
protected override State Execute(AIBehaviorTree aiBehaviorTree, params object[] parameters) { if (this.ticket != null) { if (!this.orderExecuted) { return(State.Running); } if (this.ticket.PostOrderResponse == PostOrderResponse.PreprocessHasFailed) { this.orderExecuted = false; this.ticket = null; aiBehaviorTree.ErrorCode = 1; return(State.Failure); } this.orderExecuted = false; this.ticket = null; return(State.Success); } else { Army army; if (base.GetArmyUnlessLocked(aiBehaviorTree, "$Army", out army) != AIArmyMission.AIArmyMissionErrorCode.None) { return(State.Failure); } if (!(army is KaijuArmy)) { return(State.Failure); } Kaiju kaiju = (army as KaijuArmy).Kaiju; if (kaiju == null || !(army.Empire is MajorEmpire) || kaiju.OnGarrisonMode() || !KaijuCouncil.IsPositionValidForSettleKaiju(army.WorldPosition, kaiju)) { return(State.Failure); } this.failuresFlags.Clear(); if (!this.armyAction_SettleKaiju.CanExecute(army, ref this.failuresFlags, new object[0])) { return(State.Failure); } this.orderExecuted = false; this.armyAction_SettleKaiju.Execute(army, aiBehaviorTree.AICommander.Empire.PlayerControllers.AI, out this.ticket, new EventHandler <TicketRaisedEventArgs>(this.Order_TicketRaised), new object[0]); return(State.Running); } }
protected override State Execute(AIBehaviorTree aiBehaviorTree, params object[] parameters) { Army army; if (base.GetArmyUnlessLocked(aiBehaviorTree, "$Army", out army) != AIArmyMission.AIArmyMissionErrorCode.None) { return(State.Failure); } ArmyAction armyAction = null; IDatabase <ArmyAction> database = Databases.GetDatabase <ArmyAction>(false); if (database == null || !database.TryGetValue(this.ArmyActionReadOnlyName, out armyAction)) { return(State.Failure); } bool flag = false; ArmyAction_TameUnstunnedKaiju armyAction_TameUnstunnedKaiju = armyAction as ArmyAction_TameUnstunnedKaiju; if (ELCPUtilities.UseELCPSymbiosisBuffs && armyAction_TameUnstunnedKaiju != null && this.TargetVarName != string.Empty) { Kaiju kaiju = (aiBehaviorTree.Variables[this.TargetVarName] as IGameEntity) as Kaiju; if (kaiju != null) { flag = ELCPUtilities.CanELCPTameKaiju(kaiju, armyAction_TameUnstunnedKaiju.TameCost, army.Empire); } } else { flag = armyAction.CanAfford(army.Empire); } if (flag) { if (aiBehaviorTree.Variables.ContainsKey(this.Output_ArmyActionVarName)) { aiBehaviorTree.Variables[this.Output_ArmyActionVarName] = this.ArmyActionReadOnlyName; } else { aiBehaviorTree.Variables.Add(this.Output_ArmyActionVarName, this.ArmyActionReadOnlyName); } return(State.Success); } aiBehaviorTree.ErrorCode = 38; return(State.Failure); }
public void addKaijuMenuItem(Kaiju k) { _lastPadding.transform.SetParent(null, false); GameObject kaijuMenuItem = GameObject.Instantiate(_kaijuMenuItemPrefab); kaijuMenuItem.transform.SetParent(_kaijuMenuContentPanel, false); kaijuMenuItem.GetComponent <KaijuMenuItem>().Kaiju = k; _kaijuMenuItems.Add(kaijuMenuItem.GetComponent <KaijuMenuItem>()); _state.KaijuIndex = _kaijuMenuItems.Count - 1; if (_kaijuMenuItems.Count >= 2) { if (_kaijuMenuItems.Count == 2) { _lastPadding.GetComponent <KaijuMenuItem> ().Kaiju = _kaijuMenuItems [0].Kaiju; } _firstPaddingKaijuMenuItem.Kaiju = _kaijuMenuItems[_kaijuMenuItems.Count - 1].Kaiju; } _lastPadding.transform.SetParent(_kaijuMenuContentPanel, false); }
// Use this for initialization public override void Start() { Instance = this; theCity = GameObject.FindGameObjectWithTag("City").GetComponent<CityManager>(); player = GameObject.FindGameObjectWithTag("Player"); kaiju = player.GetComponent<Kaiju>(); cityWidth = theCity.getWidth(); float x = theCity.gameObject.transform.position.x; if (x < 1) { // just incase this is 0 and messes with the math. x = 1; } float z = theCity.gameObject.transform.position.z; if (z < 1) { // just incase this is 0 and messes with the math. z = 1; } //X of City * width in tiles * width of tiles. cityBoundary.x = x + theCity.getWidth() * 2; cityBoundary.z = z + theCity.getDepth() * 2; StartCoroutine("Spawn"); base.Start(); }
public void Add(params Kaiju[] kaiju) { if (kaiju != null & kaiju.Length != 0) { if (countKaiju + kaiju.Length > masKaiju.Length) { Kaiju[] copyMasKaiju = new Kaiju[masKaiju.Length]; for (int i = 0; i < masKaiju.Length; i++) { copyMasKaiju[i] = masKaiju[i]; } masKaiju = new Kaiju[countKaiju + kaiju.Length + 10]; for (int i = 0; i < copyMasKaiju.Length; i++) { masKaiju[i] = copyMasKaiju[i]; } } for (int i = 0; i < kaiju.Length; i++) { masKaiju[countKaiju] = kaiju[i]; countKaiju++; } } }
private Kaiju[] GetArrayForName(string name) { int countKaijuMethod = 0; string NameType = name; for (int i = 0; i < countKaiju; i++) { Type t1 = masKaiju[i].GetType(); if (NameType == t1.Name) { countKaijuMethod++; } } Kaiju[] mKaiju = new Kaiju[countKaijuMethod]; for (int iKaiju = 0, iTrueKaiju = 0; iKaiju < countKaiju; iKaiju++) { Type t1 = masKaiju[iKaiju].GetType(); if (NameType == t1.Name) { mKaiju[iTrueKaiju++] = masKaiju[iKaiju]; } if (iTrueKaiju == countKaijuMethod) { break; } } return mKaiju; }
public Kaiju[] GetArrayKaiju() { Kaiju[] tempMasKaiju = new Kaiju[countKaiju]; for (int i = 0; i < countKaiju; i++) { tempMasKaiju[i] = masKaiju[i]; } return tempMasKaiju; }
public void AddToFile(Kaiju obj) { StreamWriter sw = new StreamWriter(Resource_1.pathSaveKaiju, true); sw.WriteLine(obj.StringForFile()); sw.Close(); }
public Kaiju[] ReadFile() { int counterObj = CountObjInFile(); Kaiju[] resultArrayKaiju = new Kaiju[counterObj]; StreamReader sr = new StreamReader(Resource_1.pathSaveKaiju); string[] ArrayStringData; string tempString; string name=null; float version = 0; int id; float thicknessOfTitanium=0; int levelOfLibido=0; int lightningStrikes=0; int distanceOfJump=0; int flightSpeed=0; for (int i = 0; i < counterObj; i++) { tempString = sr.ReadLine(); ArrayStringData = ParseString(tempString); for (int j = 0; j < ArrayStringData.Length; j++) { if (ArrayStringData[j].IndexOf("id") > -1) { Int32.TryParse(ArrayStringData[j + 1], out id); } if (ArrayStringData[j].IndexOf("Name") > -1) { name = ArrayStringData[j + 1]; } if (ArrayStringData[j].IndexOf("Version") > -1) { float.TryParse(ArrayStringData[j + 1], out version); } if (ArrayStringData[j].IndexOf("ThicknessOfTitanium") > -1) { float.TryParse(ArrayStringData[j + 1], out thicknessOfTitanium); } if (ArrayStringData[j].IndexOf("LevelOfLibido") > -1) { Int32.TryParse(ArrayStringData[j + 1], out levelOfLibido); } if (ArrayStringData[j].IndexOf("LightningStrikes") > -1) { Int32.TryParse(ArrayStringData[j + 1], out lightningStrikes); } if (ArrayStringData[j].IndexOf("DistanceOfJump") > -1) { Int32.TryParse(ArrayStringData[j + 1], out distanceOfJump); } if (ArrayStringData[j].IndexOf("FlightSpeed") > -1) { Int32.TryParse(ArrayStringData[j + 1], out flightSpeed); } } switch (ArrayStringData[0]) { case "Kaiju": resultArrayKaiju[i] = new Kaiju(name, version); break; case "Titan": resultArrayKaiju[i] = new Titan(thicknessOfTitanium, name, version); break; case "Apollon": resultArrayKaiju[i] = new Apollon(levelOfLibido, thicknessOfTitanium, name, version); break; case "Zeus": resultArrayKaiju[i] = new Zeus(lightningStrikes, thicknessOfTitanium, name, version); break; case "Gorilla": resultArrayKaiju[i] = new Gorilla(distanceOfJump, name, version); break; case "Flying": resultArrayKaiju[i] = new Flying(flightSpeed, name, version); break; } } sr.Close(); return resultArrayKaiju; }
public static Kaiju[] GetKaiju(namesKaiju name, int numberName, float version, int count) { if (name >= namesKaiju.Kaiju & name <= namesKaiju.Zeus & numberName > 0 & count > 0) { Kaiju[] masKaiju = new Kaiju[count]; for (int i = 0; i < masKaiju.Length; i++) { masKaiju[i] = new Kaiju(name.ToString() + numberName++, version); } return masKaiju; } else { throw new System.Exception("The parameter is incorrect!"); } }