/// <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;
        }
Пример #2
0
        /// <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();
        }
Пример #4
0
        /// <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;
        }
        /// <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;
        }