Beispiel #1
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;
        }