Ejemplo n.º 1
0
        public void ApplyModifiersOnEnemy(EnemyEnitity enemy)
        {
            if (AreEnemiesNightmare)
            {
                enemy._DifficultyType = EnemyEnitity.enumDifficultyType.Nightmare;
            }
            if (enemy is NPCEntity == false && data.enemiesScalingRatio > 0f && data.enemiesScalingRatio != 1f)
            {
                float   scaleRatio = Mathf.Clamp(data.enemiesScalingRatio, 0.1f, 20f);
                Vector3 scale      = enemy.transform.localScale;
                scale.x *= scaleRatio;
                scale.y *= scaleRatio;
                enemy.transform.localScale = scale;
            }
            if (data.activateTrainingMode && enemy._AISetting != null)
            {
                if (aiSettings.ContainsKey(enemy.ClassType) == false)
                {
                    aiSettings.Add(enemy.ClassType, enemy._AISetting);
                }
                enemy._AISetting = Instantiate(enemy._AISetting);

                EnemyEnitity[] enemies = FindObjectsOfType <EnemyEnitity>();
                for (int i = 0; i < enemies.Length; i++)
                {
                    UpdateAiSetting(enemies[i]);
                }
            }
        }
Ejemplo n.º 2
0
        public void UpdateAiSetting(EnemyEnitity enemy)
        {
            if (data.activateTrainingMode == false || enemy._AISetting == null || enemy is NPCEntity)
            {
                return;
            }

            enemy.AI_ChangeState <AI_Idle>();
            enemy.SetAIChangeState(!AreEnemiesNoAi);
            enemy.SetAIChangeState_CombatEntityMainManager(!AreEnemiesNoAi);

            enemy._AISetting.PercentageOfGetupAttack = AreEnemiesPacifist ? 0f : aiSettings[enemy.ClassType].PercentageOfGetupAttack;
            enemy._AISetting.AIAttackDetails_RunHeavyAttack.Weight   = AreEnemiesPacifist ? 0f : aiSettings[enemy.ClassType].AIAttackDetails_RunHeavyAttack.Weight;
            enemy._AISetting.AIAttackDetails_RunSpecialAttack.Weight = AreEnemiesPacifist ? 0f : aiSettings[enemy.ClassType].AIAttackDetails_RunSpecialAttack.Weight;
            enemy._AISetting.AIAttackDetails_RunQuickAttack.Weight   = AreEnemiesPacifist ? 0f : aiSettings[enemy.ClassType].AIAttackDetails_RunQuickAttack.Weight;
            enemy._AISetting.ChasingAttack_WhatToUse = AreEnemiesPacifist ? AI_MoveToAttackRange.AttackType.None : aiSettings[enemy.ClassType].ChasingAttack_WhatToUse;
            enemy._AISetting.AttackTime_Min          = AreEnemiesPacifist ? float.PositiveInfinity : aiSettings[enemy.ClassType].AttackTime_Min;
            enemy._AISetting.AttackTime_Max          = AreEnemiesPacifist ? float.PositiveInfinity : aiSettings[enemy.ClassType].AttackTime_Max;

            enemy._AISetting.Retaliate_AftersHPCount_ByBlocking         = AreEnemiesPacifist ? false : aiSettings[enemy.ClassType].Retaliate_AftersHPCount_ByBlocking;
            enemy._AISetting.Blocking_HowManyBlockHitsBeforeRetaliation = AreEnemiesPacifist ? int.MaxValue : aiSettings[enemy.ClassType].Blocking_HowManyBlockHitsBeforeRetaliation;
            enemy._AISetting.Retaliate_AfterManyHitsWithoutIdle_HPCount = AreEnemiesPacifist ? int.MaxValue : aiSettings[enemy.ClassType].Retaliate_AfterManyHitsWithoutIdle_HPCount;
        }