/// <summary> /// Sets new enemy type. /// </summary> /// <param name="dfUnity">DaggerfallUnity singleton. Required for content readers and settings.</param> /// <param name="enemyType">Enemy type.</param> public void SetEnemy(DaggerfallUnity dfUnity, MobileEnemy enemy, MobileReactions reaction) { // Initial enemy settings summary.Enemy = enemy; summary.EnemyState = MobileStates.Move; summary.Enemy.Reactions = reaction; // Load enemy content int archive = GetTextureArchive(); if (TextureReplacement.CustomTextureExist(archive, TextureReplacement.enemyDefaultRecord, TextureReplacement.enemyDefaultFrame)) { summary.CustomMaterial.isCustom = true; } else { summary.CustomMaterial.isCustom = false; } CacheRecordSizesAndFrames(dfUnity, archive); AssignMeshAndMaterial(dfUnity, archive); // Apply enemy state and update orientation lastOrientation = -1; ApplyEnemyState(); // Raise setup flag summary.IsSetup = true; }
/// <summary> /// Sets enemy data for setup. /// </summary> /// <param name="dfUnity">Current instance of Daggerfall Unity.</param> /// <param name="enemy">Basic properties of this enemy.</param> /// <param name="reaction">Reaction setting for this enemy.</param> /// <param name="classicSpawnDistanceType">An index that defines spawn distance type.</param> public void SetEnemy(DaggerfallUnity dfUnity, MobileEnemy enemy, MobileReactions reaction, byte classicSpawnDistanceType) { enemy.Reactions = reaction; Enemy = enemy; EnemyState = MobileStates.Move; ClassicSpawnDistanceType = classicSpawnDistanceType; ApplyEnemy(dfUnity); IsSetup = true; }
/// <summary> /// Sets new enemy type. /// </summary> /// <param name="dfUnity">DaggerfallUnity singleton. Required for content readers and settings.</param> /// <param name="enemyType">Enemy type.</param> public void SetEnemy(DaggerfallUnity dfUnity, MobileEnemy enemy, MobileReactions reaction) { // Initial enemy settings summary.Enemy = enemy; summary.EnemyState = MobileStates.Idle; summary.Enemy.Reactions = reaction; // Load enemy content int archive = GetTextureArchive(); CacheRecordSizesAndFrames(dfUnity, archive); AssignMeshAndMaterial(dfUnity, archive); ApplyEnemyState(); }
/// <summary> /// Set special transformation completed, e.g. Daedra Seducer into winged form. /// Used internally by mobile unit after playing seducer animations. /// Called when restoring save game if unit has raised transformation completed flag. /// </summary> public void SetSpecialTransformationCompleted() { switch ((MobileTypes)Enemy.ID) { case MobileTypes.DaedraSeducer: MobileEnemy enemy = Enemy; enemy.Behaviour = MobileBehaviour.Flying; enemy.CorpseTexture = EnemyBasics.CorpseTexture(400, 5); enemy.HasIdle = false; enemy.HasSpellAnimation = true; enemy.SpellAnimFrames = new int[] { 0, 1, 2, 3 }; Enemy = enemy; break; } SpecialTransformationCompleted = true; }
/// <summary> /// Sets new enemy type. /// </summary> /// <param name="dfUnity">DaggerfallUnity singleton. Required for content readers and settings.</param> /// <param name="enemyType">Enemy type.</param> public void SetEnemy(DaggerfallUnity dfUnity, MobileEnemy enemy, MobileReactions reaction) { // Initial enemy settings summary.Enemy = enemy; summary.EnemyState = MobileStates.Move; summary.Enemy.Reactions = reaction; // Load enemy content int archive = GetTextureArchive(); CacheRecordSizesAndFrames(dfUnity, archive); AssignMeshAndMaterial(dfUnity, archive); // Apply enemy state and update orientation lastOrientation = -1; ApplyEnemyState(); // Raise setup flag summary.IsSetup = true; }