Ejemplo n.º 1
0
        WorldContext GetEnemyWorldContext(DaggerfallEnemy enemy)
        {
            // Must be a parented enemy
            if (!enemy || !enemy.transform.parent)
            {
                return(WorldContext.Nothing);
            }

            // Interior
            if (enemy.transform.parent.GetComponentInParent <DaggerfallInterior>())
            {
                return(WorldContext.Interior);
            }

            // Dungeon
            if (enemy.transform.parent.GetComponentInParent <DaggerfallDungeon>())
            {
                return(WorldContext.Dungeon);
            }

            // Exterior (loose world object)
            return(WorldContext.Exterior);
        }
        public void RestoreEnemyData(EnemyData_v1[] enemies)
        {
            if (enemies == null || enemies.Length == 0)
            {
                return;
            }

            for (int i = 0; i < enemies.Length; i++)
            {
                // Create target GameObject
                GameObject go = GameObjectHelper.InstantiatePrefab(DaggerfallUnity.Instance.Option_EnemyPrefab.gameObject, enemies[i].gameObjectName, null, Vector3.zero);
                go.transform.parent = GameObjectHelper.GetSpawnParentTransform();

                // Set LoadID
                DaggerfallEnemy enemy = go.GetComponent <DaggerfallEnemy>();
                enemy.LoadID = enemies[i].loadID;

                // Restore save data
                SerializableEnemy serializableEnemy = go.GetComponent <SerializableEnemy>();
                serializableEnemy.RestoreSaveData(enemies[i]);

                GameManager.Instance?.RaiseOnEnemySpawnEvent(go);
            }
        }
 void Awake()
 {
     enemy = GetComponent<DaggerfallEnemy>();
     if (!enemy)
         throw new Exception("DaggerfallEnemy not found.");
 }