예제 #1
0
        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>();
        }
예제 #2
0
        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);
            }
        }