private void RefillHouseHoldSquadMembers() { if (CurrentSquad == null || MaxOccupants <= 0) { return; } if (GameManager.Inst.NPCManager.GetFactionData(CurrentSquad.Faction).CharacterType == CharacterType.Mutant) { int numberToSpawn = MaxOccupants - CurrentSquad.Members.Count; for (int i = 0; i < numberToSpawn; i++) { Vector3 spawnLoc = FindSpawnLocation(); string modelID = GetRandomCharacterModelID(CurrentSquad.Faction); MutantCharacter character = GameManager.Inst.NPCManager.SpawnRandomMutantCharacter(modelID, CurrentSquad, spawnLoc); CurrentSquad.AddMember(character); } } else if (GameManager.Inst.NPCManager.GetFactionData(CurrentSquad.Faction).CharacterType == CharacterType.Animal) { int numberToSpawn = MaxOccupants - CurrentSquad.Members.Count; for (int i = 0; i < numberToSpawn; i++) { Vector3 spawnLoc = FindSpawnLocation(); string modelID = GetRandomCharacterModelID(CurrentSquad.Faction); MutantCharacter character = GameManager.Inst.NPCManager.SpawnRandomAnimalCharacter(modelID, CurrentSquad, spawnLoc); CurrentSquad.AddMember(character); } } else { int currentMembersCount = GetAllMembersCount(); if (currentMembersCount < MaxOccupants) { //first create a commander if there isn't one if (!CurrentSquad.IsThereCommander() && CommanderIdleDest != null) { string modelID = GetRandomCharacterModelID(CurrentSquad.Faction); HumanCharacter commander = GameManager.Inst.NPCManager.SpawnRandomHumanCharacter(modelID, CurrentSquad, CommanderIdleDest.transform.position); commander.IsCommander = true; CurrentSquad.AddMember(commander); CurrentSquad.Commander = commander; } int numberToSpawn = MaxOccupants - currentMembersCount; for (int i = 0; i < numberToSpawn; i++) { Vector3 spawnLoc = FindSpawnLocation(); string modelID = GetRandomCharacterModelID(CurrentSquad.Faction); HumanCharacter character = GameManager.Inst.NPCManager.SpawnRandomHumanCharacter(modelID, CurrentSquad, spawnLoc); CurrentSquad.AddMember(character); } } } }