public void SpawnPlayer(Vector2Int position) { Data.CreatureData data = GameData.CreatureData["player"]; playerObject = Instantiate(playerPrefab, Utils.ConvertToWorldCoord(position), Quaternion.identity); playerObject.transform.position = Utils.ConvertToWorldCoord(position); playerCreature = playerObject.GetComponent <Creature>(); playerCreature.PerkSystem = new PerkSystem(GameData); playerCreature.Data = data; playerCreature.Hp = playerCreature.MaxLife; playerCreature.Position = position; Camera = playerObject.GetComponentInChildren <Camera>(); playerAnim = Camera.GetComponent <PlayerAnimation>(); }
public void SpawnCreature(string key, Vector2Int position) { if (!GameData.CreatureData.ContainsKey(key)) { Debug.LogError("SpawnCreature: invalid key \"" + key + "\""); return; } Data.CreatureData data = GameData.CreatureData[key]; if (data.CreaturePrefab == null) { Debug.LogError("SpawnCreature: creature prefab missing for key \"" + key + "\""); return; } GameObject creatureObject = Instantiate(data.CreaturePrefab, Utils.ConvertToWorldCoord(position), Quaternion.identity); creatureObject.transform.position = Utils.ConvertToWorldCoord(position); creatureObject.transform.parent = CurrentFloorObject.transform; CurrentFloorObject.GetComponent <DungeonLevel>().UpdateAllReferences(); Creature creature = creatureObject.GetComponent <Creature>(); creature.PerkSystem = new PerkSystem(GameData); creature.Data = data; creature.Hp = creature.MaxLife; creature.Position = position; if (!string.IsNullOrEmpty(creature.InitialLeftHandItem)) { SpawnItemToHand(creature.LeftHandTransform, creature.InitialLeftHandItem); } if (!string.IsNullOrEmpty(creature.InitialRightHandItem)) { SpawnItemToHand(creature.RightHandTransform, creature.InitialRightHandItem); } }