public MutantCharacter SpawnRandomAnimalCharacter(string name, AISquad squad, Vector3 loc) { MutantCharacter character = GameObject.Instantiate(Resources.Load("MutantAnimal") as GameObject).GetComponent <MutantCharacter>(); character.CharacterID = name; character.Initialize(); character.CharacterType = CharacterType.Animal; character.MyNavAgent.enabled = false; character.Faction = squad.Faction; character.SquadID = squad.ID; GameManager.Inst.ItemManager.LoadNPCInventory(character.Inventory, squad.Faction, 0); character.MyAI.WeaponSystem.LoadWeaponsFromInventory(false); character.transform.position = loc; character.MyNavAgent.enabled = true; character.gameObject.name = character.gameObject.name + _counter.ToString(); _counter++; return(character); }
public void RemoveExplorerSquad(AISquad squad) { if (_explorerSquads.Contains(squad)) { _explorerSquads.Remove(squad); } }
public HumanCharacter SpawnRandomHumanCharacter(string name, AISquad squad, Vector3 loc) { HumanCharacter character = GameObject.Instantiate(Resources.Load("HumanCharacter") as GameObject).GetComponent <HumanCharacter>(); character.CharacterID = name; character.Initialize(); character.MyNavAgent.enabled = false; character.CharacterType = CharacterType.Human; character.SquadID = squad.ID; character.Faction = squad.Faction; GameManager.Inst.ItemManager.LoadNPCInventory(character.Inventory, squad.Faction, squad.Tier); character.MyAI.WeaponSystem.LoadWeaponsFromInventory(false); character.MyStatus.MaxHealth = 100; character.MyStatus.Health = 100; character.transform.position = loc; //character.transform.position = new Vector3(70.76f, 3.296f, -23.003f); character.MyNavAgent.enabled = true; character.Name = GameManager.Inst.DBManager.DBHandlerDialogue.GetRandomName(); character.gameObject.name = character.gameObject.name + _counter.ToString(); _counter++; return(character); }
public void AssignExpFollowerRole(Character c, AISquad squad) { c.MyAI.BlackBoard.FollowTarget = squad.Commander; c.MyAI.BlackBoard.PatrolLoc = c.transform.position; c.MyAI.BlackBoard.PatrolRange = new Vector3(10, 5, 10); c.MyAI.BlackBoard.CombatRange = new Vector3(25, 5, 25); c.MyAI.BlackBoard.DefensePoint = c.transform.position; c.MyAI.BlackBoard.DefenseRadius = 10; c.MyAI.SetDynamicyGoal(GameManager.Inst.NPCManager.DynamicGoalFollow, 5); }
public void AssignExpCommanderRole(Character c, AISquad squad) { c.IsCommander = true; squad.Commander = c; c.MyAI.BlackBoard.PatrolLoc = squad.NextNavNode.transform.position; c.MyAI.BlackBoard.PatrolRange = new Vector3(10, 5, 10); c.MyAI.BlackBoard.CombatRange = new Vector3(25, 5, 25); c.MyAI.BlackBoard.DefensePoint = c.transform.position; c.MyAI.BlackBoard.DefenseRadius = 10; c.MyAI.SetDynamicyGoal(GameManager.Inst.NPCManager.DynamicGoalExplore, 5); }
public void MergeSquad(AISquad source, AISquad target) { foreach (Character member in source.Members) { member.MyJobs.Clear(); member.MyJobs.Add(NPCJobs.None); member.IsCommander = false; member.MyAI.SetDynamicyGoal(GameManager.Inst.NPCManager.DynamicGoalChill, 5); target.Members.Add(member); member.MyAI.Squad = target; member.SquadID = target.ID; } GameManager.Inst.NPCManager.DeleteSquad(ID); }
public AISquad SpawnHumanExplorerSquad(Faction faction, Household household) { AISquad squad = new AISquad(); squad.ID = faction.ToString() + _randomSquadIndex.ToString(); if (household != null && household.CurrentSquad != null) { squad.Tier = household.CurrentSquad.Tier; } else { squad.Tier = 1; } _randomSquadIndex++; squad.Faction = faction; squad.Household = household; _allSquads.Add(squad.ID, squad); return(squad); }
public List <AISquad> LoadLevelSquads(string levelName) { IDataReader squadReader = GameManager.Inst.DBManager.RunQuery( "SELECT * FROM initial_squads WHERE level='" + levelName + "'"); List <AISquad> squads = new List <AISquad>(); while (squadReader.Read()) { AISquad squad = new AISquad(); squad.ID = squadReader.GetString(0); squad.Tier = squadReader.GetInt32(1); squad.Faction = (Faction)squadReader.GetInt32(2); squad.Household = GameManager.Inst.NPCManager.GetHousehold(squadReader.GetString(3)); squad.Household.CurrentSquad = squad; squads.Add(squad); } return(squads); }
public bool Load(string saveGameName) { string fullPath = Application.persistentDataPath + "/" + saveGameName + ".dat"; BinaryFormatter bf = new BinaryFormatter(); FileStream file; if (File.Exists(fullPath)) { file = File.Open(fullPath, FileMode.Open); } else { return(false); } CurrentSave = (SaveGame)bf.Deserialize(file); //load level GameManager.Inst.WorldManager.AllLevels = CurrentSave.Levels; foreach (Level level in GameManager.Inst.WorldManager.AllLevels) { Debug.Log("Loading levels " + level.Name); if (level.Name == CurrentSave.LevelToLoad) { GameManager.Inst.WorldManager.CurrentLevel = level; break; } } GameManager.Inst.WorldManager.CurrentDay = CurrentSave.CurrentDay; GameManager.Inst.WorldManager.CurrentTime = CurrentSave.CurrentTime; GameManager.Inst.WorldManager.CurrentWeather = CurrentSave.CurrentWeather; GameManager.Inst.WorldManager.IsDayTime = CurrentSave.IsDayTime; GameManager.Inst.WorldManager.DayNightTransition = CurrentSave.DayNightTransition; GameManager.Inst.WorldManager.NightDayTransition = CurrentSave.NightDayTransition; GameManager.Inst.WorldManager.ChangeEnvironment(CurrentSave.CurrentEnvironmentName); //load player basics GameManager.Inst.PlayerProgress.PlayerFirstName = CurrentSave.PlayerFirstName; GameManager.Inst.PlayerProgress.PlayerLastName = CurrentSave.PlayerLastName; //load progress GameManager.Inst.PlayerProgress.DiscoveredTopics = new List <string>(CurrentSave.DiscoveredTopics); GameManager.Inst.PlayerProgress.JournalEntries = new List <List <string> >(CurrentSave.JournalEntries); GameManager.Inst.PlayerProgress.IncompleteTasks = new List <int>(CurrentSave.IncompleteTasks); GameManager.Inst.PlayerProgress.CompletedTasks = new List <int>(CurrentSave.CompletedTasks); //load player status GameManager.Inst.PlayerControl.SelectedPC.MyStatus.Data = CurrentSave.PlayerStatus; //load player boosts GameManager.Inst.PlayerControl.Survival.SetStatBoosts(CurrentSave.PlayerBoosts); //load player inventory GameManager.Inst.PlayerControl.SelectedPC.Inventory.ArmorSlot = CurrentSave.PlayerInventory.ArmorSlot; GameManager.Inst.PlayerControl.SelectedPC.Inventory.HeadSlot = CurrentSave.PlayerInventory.HeadSlot; GameManager.Inst.PlayerControl.SelectedPC.Inventory.RifleSlot = CurrentSave.PlayerInventory.RifleSlot; GameManager.Inst.PlayerControl.SelectedPC.Inventory.SideArmSlot = CurrentSave.PlayerInventory.SideArmSlot; GameManager.Inst.PlayerControl.SelectedPC.Inventory.ThrowSlot = CurrentSave.PlayerInventory.ThrowSlot; GameManager.Inst.PlayerControl.SelectedPC.Inventory.ToolSlot = CurrentSave.PlayerInventory.ToolSlot; GameManager.Inst.PlayerControl.SelectedPC.Inventory.BackpackCols = CurrentSave.PlayerInventory.BackpackCols; GameManager.Inst.PlayerControl.SelectedPC.Inventory.BackpackRows = CurrentSave.PlayerInventory.BackpackRows; GameManager.Inst.PlayerControl.SelectedPC.Inventory.Backpack = new List <GridItemData>(CurrentSave.PlayerInventory.Backpack); GameManager.Inst.PlayerControl.SelectedPC.Inventory.PostLoad(); GameManager.Inst.PlayerControl.SelectedPC.ArmorSystem.SwitchToArmor(GameManager.Inst.PlayerControl.SelectedPC.Inventory.ArmorSlot); GameManager.Inst.PlayerControl.SelectedPC.ArmorSystem.SwitchToHelmet(GameManager.Inst.PlayerControl.SelectedPC.Inventory.HeadSlot); GameManager.Inst.PlayerControl.SelectedPC.MyAI.WeaponSystem.LoadWeaponsFromInventory(false); //place player in last saved location GameManager.Inst.PlayerControl.SelectedPC.transform.position = new Vector3(CurrentSave.PlayerLocation[0], CurrentSave.PlayerLocation[1], CurrentSave.PlayerLocation[2]); //load story conditions GameManager.Inst.QuestManager.StoryConditions = new Dictionary <string, StoryCondition>(); foreach (StoryConditionItem condition in CurrentSave.ItemConditions) { GameManager.Inst.QuestManager.StoryConditions.Add(condition.ID, condition); } foreach (StoryConditionTrigger condition in CurrentSave.TriggerConditions) { GameManager.Inst.QuestManager.StoryConditions.Add(condition.ID, condition); } //load story event handler LinkedList <StoryEventListener> [] storyListenerLists = StoryEventHandler.Instance.AllListenerLists; for (int i = 0; i < storyListenerLists.Length; i++) { storyListenerLists[i].Clear(); for (int j = 0; j < CurrentSave.StoryListenerLists[i].Count; j++) { storyListenerLists[i].AddLast(CurrentSave.StoryListenerLists[i][j]); } } StoryEventHandler.Instance.StoryEventQueue = StoryEventHandler.Instance.ConvertListStoryEventToQueue(CurrentSave.StoryEventList); StoryEventHandler.Instance.CurrentStoryEvent = CurrentSave.CurrentStoryEvent; StoryEventHandler.Instance.IsCurrentEventDone = CurrentSave.IsCurrentEventDone; //load pickup items Level currentLevel = GameManager.Inst.WorldManager.CurrentLevel; //remove all existing pickup items GameObject [] objects = GameObject.FindGameObjectsWithTag("PickupItem"); foreach (GameObject o in objects) { GameObject.Destroy(o); } //create new ones foreach (PickupItemData pickupItemData in currentLevel.PickupItemDatas) { //create an Item from ItemID Item item = GameManager.Inst.ItemManager.LoadItem(pickupItemData.ItemID); var resource = Resources.Load(item.PrefabName + "Pickup"); if (resource != null) { GameObject pickup = GameObject.Instantiate(resource) as GameObject; pickup.transform.position = pickupItemData.Pos.ConvertToVector3(); pickup.transform.localEulerAngles = pickupItemData.EulerAngles.ConvertToVector3(); Transform parent = GameManager.Inst.ItemManager.FindPickupItemParent(pickup.transform); if (parent != null) { pickup.transform.parent = parent; } pickup.GetComponent <PickupItem>().Item = item; pickup.GetComponent <PickupItem>().Quantity = pickupItemData.Quantity; pickup.GetComponent <PickupItem>().Durability = pickupItemData.Durability; } } //load Chests //clear all existing chests in this level and then add new content objects = GameObject.FindGameObjectsWithTag("Chest"); foreach (GameObject o in objects) { Chest chest = o.GetComponent <Chest>(); chest.Items.Clear(); foreach (ChestData chestData in currentLevel.ChestDatas) { if (chest.ChestID == chestData.ChestID) { chest.Items = chestData.Items; chest.IsLocked = chestData.IsLocked; chest.KeyID = chestData.KeyID; chest.PostLoad(); } } } //load doors GameObject [] doors = GameObject.FindGameObjectsWithTag("Door"); foreach (GameObject o in doors) { Door door = o.GetComponent <Door>(); foreach (DoorSaveData doorData in currentLevel.Doors) { if (door.ID == "zsk_blockadedoor") { Debug.Log("blocade door unlocked? " + doorData.ID + " - " + doorData.IsLocked); } if (door.ID == doorData.ID) { door.IsLocked = doorData.IsLocked; door.IsOpen = doorData.IsOpen; } } } //load factions GameManager.Inst.NPCManager.AllFactions.Clear(); foreach (KeyValuePair <Faction, FactionData> factionData in CurrentSave.Factions) { GameManager.Inst.NPCManager.AllFactions.Add(factionData.Key, factionData.Value); factionData.Value.PostLoad(); } //load household GameManager.Inst.NPCManager.AllSquads.Clear(); Household [] households = (Household[])GameObject.FindObjectsOfType <Household>(); foreach (Household household in households) { foreach (HouseholdSaveData saveData in currentLevel.Households) { if (household.name == saveData.HouseholdName) { if (saveData.CurrentSquadID != "") { //create a new squad AISquad squad = new AISquad(); squad.ID = saveData.CurrentSquadID; squad.Tier = saveData.CurrentSquadTier; squad.Faction = saveData.OwningFaction; squad.Household = household; squad.Household.CurrentSquad = squad; if (!GameManager.Inst.NPCManager.AllSquads.ContainsKey(squad.ID)) { GameManager.Inst.NPCManager.AllSquads.Add(squad.ID, squad); } } household.IsMemberAlreadyAdded = true; household.SetScheduleData(saveData.IsRefilledToday, saveData.Expedition1SentToday, saveData.Expedition2SentToday, saveData.ExpeditionTime1, saveData.ExpeditionTime2); } } } //load characters //first remove all existing characters GameObject [] npcs = GameObject.FindGameObjectsWithTag("NPC"); foreach (GameObject npc in npcs) { npc.tag = "Untagged"; GameObject.Destroy(npc.gameObject); } //add new characters from save //then reinitialize NPCManager npcs = GameObject.FindGameObjectsWithTag("NPC"); Debug.Log("Number of loading NPC before loading " + npcs.Length); foreach (CharacterSaveData characterData in currentLevel.Characters) { if (characterData.CharacterType == CharacterType.Human) { HumanCharacter character = GameObject.Instantiate(Resources.Load("HumanCharacter") as GameObject).GetComponent <HumanCharacter>(); character.CharacterID = characterData.CharacterID; character.GoapID = characterData.GoapID; character.Initialize(); character.MyNavAgent.enabled = false; character.CharacterType = characterData.CharacterType; character.SquadID = characterData.SquadID; character.Faction = characterData.Faction; character.IsCommander = characterData.IsCommander; character.IsEssential = characterData.IsEssential; character.MyStatus.Data = characterData.StatusData; character.transform.position = characterData.Pos.ConvertToVector3(); character.transform.localEulerAngles = characterData.Angles.ConvertToVector3(); character.MyNavAgent.enabled = true; character.Name = characterData.Name; character.Title = characterData.Title; character.gameObject.name = characterData.GOName; //attach job components if (characterData.Jobs.Contains(NPCJobs.Trader)) { character.gameObject.AddComponent <Trader>(); } character.Inventory = new CharacterInventory(); character.Inventory.ArmorSlot = characterData.Inventory.ArmorSlot; character.Inventory.HeadSlot = characterData.Inventory.HeadSlot; character.Inventory.RifleSlot = characterData.Inventory.RifleSlot; character.Inventory.SideArmSlot = characterData.Inventory.SideArmSlot; character.Inventory.ThrowSlot = characterData.Inventory.ThrowSlot; character.Inventory.ToolSlot = characterData.Inventory.ToolSlot; character.Inventory.BackpackCols = characterData.Inventory.BackpackCols; character.Inventory.BackpackRows = characterData.Inventory.BackpackRows; character.Inventory.Backpack = new List <GridItemData>(characterData.Inventory.Backpack); character.Inventory.PostLoad(); } else if (characterData.CharacterType == CharacterType.Mutant) { MutantCharacter character = GameObject.Instantiate(Resources.Load("MutantCharacter") as GameObject).GetComponent <MutantCharacter>(); character.CharacterID = characterData.CharacterID; character.GoapID = characterData.GoapID; character.Initialize(); character.MyNavAgent.enabled = false; character.CharacterType = characterData.CharacterType; character.SquadID = characterData.SquadID; character.Faction = characterData.Faction; GameManager.Inst.ItemManager.LoadNPCInventory(character.Inventory, character.Faction, 0); character.Inventory.PostLoad(); character.MyStatus.Data = characterData.StatusData; character.transform.position = characterData.Pos.ConvertToVector3(); character.MyNavAgent.enabled = true; character.Name = characterData.Name; character.Title = characterData.Title; character.gameObject.name = characterData.GOName; } else if (characterData.CharacterType == CharacterType.Animal) { MutantCharacter character = GameObject.Instantiate(Resources.Load("MutantAnimal") as GameObject).GetComponent <MutantCharacter>(); character.CharacterID = characterData.CharacterID; character.GoapID = characterData.GoapID; character.Initialize(); character.MyNavAgent.enabled = false; character.CharacterType = characterData.CharacterType; character.SquadID = characterData.SquadID; character.Faction = characterData.Faction; GameManager.Inst.ItemManager.LoadNPCInventory(character.Inventory, character.Faction, 0); character.Inventory.PostLoad(); character.MyStatus.Data = characterData.StatusData; character.transform.position = characterData.Pos.ConvertToVector3(); character.MyNavAgent.enabled = true; character.Name = characterData.Name; character.Title = characterData.Title; character.gameObject.name = characterData.GOName; } } GameManager.Inst.NPCManager.Initialize(); //add player to NPC manager GameManager.Inst.NPCManager.AddHumanCharacter(GameManager.Inst.PlayerControl.SelectedPC); //load traders foreach (HumanCharacter character in GameManager.Inst.NPCManager.HumansInScene) { Trader trader = character.GetComponent <Trader>(); if (trader != null) { Debug.Log("loading trader, on character " + character.CharacterID); foreach (TraderData traderData in currentLevel.Traders) { if (traderData.CharacterID == character.CharacterID) { trader.Cash = traderData.Cash; trader.Tier = traderData.Tier; trader.TraderInventory = traderData.TraderInventory; trader.SupplyRenewTimer = traderData.SupplyRenewTimer; trader.PostLoad(); } } } } return(true); }
private void SpawnWave(int waveSize, Faction faction, bool isMultiSpawn) { AISquad enemySquad = new AISquad(); enemySquad.Faction = faction; //select a spawn point GameObject [] spawnPoints = GameObject.FindGameObjectsWithTag("Respawn"); int point = UnityEngine.Random.Range(0, spawnPoints.Length); for (int i = 0; i < waveSize; i++) { if (isMultiSpawn) { point = UnityEngine.Random.Range(0, spawnPoints.Length); } if (faction == Faction.Legionnaires) { enemySquad.AddMember(GameManager.Inst.NPCManager.SpawnRandomHumanCharacter("Bandit", enemySquad, spawnPoints[point].transform.position + new Vector3(UnityEngine.Random.value * 3, 0, UnityEngine.Random.value * 3))); } else if (faction == Faction.Military) { enemySquad.AddMember(GameManager.Inst.NPCManager.SpawnRandomHumanCharacter("Military", enemySquad, spawnPoints[point].transform.position + new Vector3(UnityEngine.Random.value * 3, 0, UnityEngine.Random.value * 3))); } else if (faction == Faction.Mutants) { string mutantName; int goapID; if (this.Stage < 7) { if (UnityEngine.Random.value > 0.6f) { mutantName = "Mutant1"; goapID = 3; } else { mutantName = "Mutant1"; goapID = 3; } } else { if (UnityEngine.Random.value < 0.3f) { mutantName = "Mutant1"; goapID = 3; } else { if (UnityEngine.Random.value > 0.6f) { mutantName = "Mutant4"; goapID = 2; } else { mutantName = "Mutant3"; goapID = 2; } } } MutantCharacter mutant = GameManager.Inst.NPCManager.SpawnRandomMutantCharacter(mutantName, enemySquad, spawnPoints[point].transform.position + new Vector3(UnityEngine.Random.value * 3, 0, UnityEngine.Random.value * 3)); mutant.MyAI.BlackBoard.PatrolLoc = new Vector3(62.7f, 0, -15); mutant.MyAI.BlackBoard.PatrolRange = new Vector3(30, 5, 15); mutant.MyAI.BlackBoard.CombatRange = new Vector3(40, 20, 20); mutant.MyAI.BlackBoard.HasPatrolInfo = true; } } enemySquad.IssueSquadCommand(); }
private void SendHumanExplorer(NavNode destNavNode, int squadSize) { NavNode currentNode = GameManager.Inst.NPCManager.GetNavNodeByHousehold(this); if (currentNode == null || destNavNode == null) { Debug.LogError("No current node or no destNavNode"); return; } NavNode nextNavNode = AI.FindNextNavNode(currentNode, destNavNode); if (nextNavNode == null) { Debug.LogError("can't find next nav node"); return; } //Debug.Log("GOTO setting new destinatoin " + nextNavNode.name + " currentNode " + currentNode.name); //create a squad AISquad squad = GameManager.Inst.NPCManager.SpawnHumanExplorerSquad(CurrentSquad.Faction, this); squad.NextNavNode = nextNavNode; squad.DestNavNode = destNavNode; _explorerSquads.Add(squad); //decide a max participant number int participants = squadSize; //loop through all members and pick ones who don't have job foreach (Character c in CurrentSquad.Members) { if (participants <= 0) { break; } if (c.MyJobs.Contains(NPCJobs.None) && !c.IsEssential) { squad.Members.Add(c); participants--; c.MyJobs.Clear(); c.MyJobs.Add(NPCJobs.Explore); c.MyAI.Squad = squad; if (squad.Commander == null) { //Debug.Log("Assigned commander to " + c.name); //assign commander job squad.AssignExpCommanderRole(c, squad); } else { //Debug.Log("Assigned follower to " + c.name); squad.AssignExpFollowerRole(c, squad); } } } //Debug.LogError("Sending expedition - squad " + squad.ID + " to " + destNavNode.name + " commander " + squad.Commander.name); //remove squad member from current squad foreach (Character c in squad.Members) { if (CurrentSquad.Members.Contains(c)) { CurrentSquad.RemoveMember(c); } c.MyAI.Squad = squad; c.SquadID = squad.ID; } }
private void AISquadManager_TryActivateSquad(On.AISquadManager.orig_TryActivateSquad orig, AISquadManager self, AISquad _squad, bool _resetPositions) { List <AISquad> _reserve = (List <AISquad>)AccessTools.Field(typeof(AISquadManager), "m_squadsInReserve").GetValue(self); List <AISquad> _play = (List <AISquad>)AccessTools.Field(typeof(AISquadManager), "m_squadsInPlay").GetValue(self); DictionaryExt <UID, AISquad> _all = (DictionaryExt <UID, AISquad>)AccessTools.Field(typeof(AISquadManager), "m_allSquads").GetValue(self); OLogger.Log($"TryActivateSquad {(_squad != null ? _squad.name : "(null)")}"); OLogger.Log($" > All={_all.Count} Play={_play.Count} Reserve={_reserve.Count}"); OLogger.Log($" > InReserve={_reserve.Contains(_squad)}"); /*if (_squad != null && !_reserve.Contains(_squad)) * { * _reserve.Add(_squad); * AccessTools.Field(typeof(AISquadManager), "m_squadsInReserve").SetValue(self, _reserve); * }*/ orig(self, _squad, _resetPositions); }
private void AISquadManager_TryDeactivateSquad(On.AISquadManager.orig_TryDeactivateSquad orig, AISquadManager self, AISquad _squad) { List <AISquad> _reserve = (List <AISquad>)AccessTools.Field(typeof(AISquadManager), "m_squadsInReserve").GetValue(self); List <AISquad> _play = (List <AISquad>)AccessTools.Field(typeof(AISquadManager), "m_squadsInPlay").GetValue(self); DictionaryExt <UID, AISquad> _all = (DictionaryExt <UID, AISquad>)AccessTools.Field(typeof(AISquadManager), "m_allSquads").GetValue(self); OLogger.Log($"TryDeactivateSquad {(_squad != null ? _squad.name : "(null)")}"); OLogger.Log($" > All={_all.Count} Play={_play.Count} Reserve={_reserve.Count}"); orig(self, _squad); }
private void Initialize() { Inst = this; //Initializing CsDebug CsDebug debug = GetComponent<CsDebug>(); debug.Initialize(); //Initializing DBManager DBManager = new DBManager(); DBManager.Initialize(); //Initializing Event Manager EventManager = new EventManager(); EventManager.Initialize(); ItemManager = new ItemManager(); ItemManager.Initialize(); //Initializing NPC Manager NPCManager = new NPCManager(); NPCManager.Initialize(); PlayerControl = new PlayerControl(); PlayerControl.Initialize(); UIManager = new UIManager(); UIManager.Initialize(); MutantCharacter mutant1 = GameObject.Find("MutantCharacter").GetComponent<MutantCharacter>(); mutant1.Initialize(); mutant1.MyStatus.MaxHealth = 200; mutant1.MyStatus.Health = 200; mutant1.MyAI.BlackBoard.PatrolLoc = new Vector3(70, 0, -54); mutant1.MyAI.BlackBoard.PatrolRange = new Vector3(10, 5, 10); mutant1.MyAI.BlackBoard.CombatRange = new Vector3(20, 5, 20); mutant1.MyAI.BlackBoard.HasPatrolInfo = true; //HumanCharacter enemy1 = GameObject.Find("HumanCharacter2").GetComponent<HumanCharacter>(); HumanCharacter enemy2 = GameObject.Find("HumanCharacter4").GetComponent<HumanCharacter>(); //HumanCharacter enemy3 = GameObject.Find("HumanCharacter5").GetComponent<HumanCharacter>(); //HumanCharacter enemy4 = GameObject.Find("HumanCharacter6").GetComponent<HumanCharacter>(); AISquad enemySquad = new AISquad(); //enemySquad.Members.Add(enemy1); enemySquad.Members.Add(enemy2); //enemySquad.Members.Add(enemy3); //enemySquad.Members.Add(enemy4); /* enemy1.Initialize(); enemy1.MyAI.Squad = enemySquad; ItemManager.LoadNPCInventory(enemy1.Inventory); enemy1.MyAI.WeaponSystem.LoadWeaponsFromInventory(); */ enemy2.Initialize(); enemy2.MyAI.Squad = enemySquad; ItemManager.LoadNPCInventory(enemy2.Inventory); enemy2.MyAI.WeaponSystem.LoadWeaponsFromInventory(); /* enemy3.Initialize(); enemy3.MyAI.Squad = enemySquad; ItemManager.LoadNPCInventory(enemy3.Inventory); enemy3.MyAI.WeaponSystem.LoadWeaponsFromInventory(); enemy4.Initialize(); enemy4.MyAI.Squad = enemySquad; ItemManager.LoadNPCInventory(enemy4.Inventory); enemy4.MyAI.WeaponSystem.LoadWeaponsFromInventory(); */ //enemy1.MyStatus.MaxHealth = 160; //enemy1.MyStatus.Health = 160; enemy2.MyStatus.MaxHealth = 100; enemy2.MyStatus.Health = 100; /* enemy3.MyStatus.MaxHealth = 80; enemy3.MyStatus.Health = 80; enemy4.MyStatus.MaxHealth = 100; enemy4.MyStatus.Health = 100; */ enemySquad.IssueSquadCommand(); CameraController = GameObject.Find("CameraController").GetComponent<CameraController>(); CameraController.Initialize(); CameraShaker = CameraController.GetComponent<CameraShaker>(); CameraShaker.Initialize(); FXManager = new FXManager(); FXManager.Initialize(50); AIScheduler = new AIScheduler(); AIScheduler.Initialize(); CursorManager = new CursorManager(); CursorManager.Initialize(); StartCoroutine(DoPerSecond()); StartCoroutine(DoPerHalfSecond()); }