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."); }