[Rules] Add Rule to allow Assassinate on non-Humanoid body types. (#2331)

This commit is contained in:
Kinglykrab 2022-07-29 19:23:20 -04:00 committed by GitHub
parent cadd29e5d1
commit 3bda8251b9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 2 deletions

View File

@ -487,6 +487,7 @@ RULE_INT(Combat, FrontalStunImmunityClasses, 0, "Bitmask for Classes than have f
RULE_BOOL(Combat, NPCsUseFrontalStunImmunityClasses, false, "Enable or disable NPCs using frontal stun immunity Classes from Combat:FrontalStunImmunityClasses, false by default.")
RULE_INT(Combat, FrontalStunImmunityRaces, 512, "Bitmask for Races than have frontal stun immunity, Ogre (512) only by default.")
RULE_BOOL(Combat, NPCsUseFrontalStunImmunityRaces, true, "Enable or disable NPCs using frontal stun immunity Races from Combat:FrontalStunImmunityRaces, true by default.")
RULE_BOOL(Combat, AssassinateOnlyHumanoids, true, "Enable or disable Assassinate only being allowed on Humanoids, true by default.")
RULE_BOOL(Combat, HeadshotOnlyHumanoids, true, "Enable or disable Headshot only being allowed on Humanoids, true by default.")
RULE_CATEGORY_END()

View File

@ -2189,8 +2189,13 @@ int Mob::TryHeadShot(Mob *defender, EQ::skills::SkillType skillInUse)
int Mob::TryAssassinate(Mob *defender, EQ::skills::SkillType skillInUse)
{
if (defender && (defender->GetBodyType() == BT_Humanoid) && !defender->IsClient() && GetLevel() >= 60 &&
(skillInUse == EQ::skills::SkillBackstab || skillInUse == EQ::skills::SkillThrowing)) {
if (
defender &&
!defender->IsClient() &&
GetLevel() >= 60 &&
(skillInUse == EQ::skills::SkillBackstab || skillInUse == EQ::skills::SkillThrowing) &&
(defender->GetBodyType() == BT_Humanoid || !RuleB(Combat, AssassinateOnlyHumanoids))
) {
int chance = GetDEX();
if (skillInUse == EQ::skills::SkillBackstab) {
chance = 100 * chance / (chance + 3500);