mirror of
https://github.com/EQEmu/Server.git
synced 2026-04-01 19:42:28 +00:00
[Bots] Add Additional HeroicStr modifiers. (#2837)
This commit is contained in:
parent
14addd4869
commit
fb1467284c
@ -871,16 +871,16 @@ int Mob::ACSum(bool skip_caps)
|
|||||||
int ac = 0; // this should be base AC whenever shrouds come around
|
int ac = 0; // this should be base AC whenever shrouds come around
|
||||||
ac += itembonuses.AC; // items + food + tribute
|
ac += itembonuses.AC; // items + food + tribute
|
||||||
int shield_ac = 0;
|
int shield_ac = 0;
|
||||||
if (HasShieldEquiped() && IsClient()) {
|
if (HasShieldEquiped() && (IsClient() || IsBot())) {
|
||||||
auto client = CastToClient();
|
auto inst = (IsClient()) ? GetInv().GetItem(EQ::invslot::slotSecondary) : CastToBot()->GetBotItem(EQ::invslot::slotSecondary);
|
||||||
auto inst = client->GetInv().GetItem(EQ::invslot::slotSecondary);
|
|
||||||
if (inst) {
|
if (inst) {
|
||||||
if (inst->GetItemRecommendedLevel(true) <= GetLevel())
|
if (inst->GetItemRecommendedLevel(true) <= GetLevel()) {
|
||||||
shield_ac = inst->GetItemArmorClass(true);
|
shield_ac = inst->GetItemArmorClass(true);
|
||||||
else
|
} else {
|
||||||
shield_ac = client->CalcRecommendedLevelBonus(GetLevel(), inst->GetItemRecommendedLevel(true), inst->GetItemArmorClass(true));
|
shield_ac = CalcRecommendedLevelBonus(GetLevel(), inst->GetItemRecommendedLevel(true), inst->GetItemArmorClass(true));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
shield_ac += client->GetHeroicSTR() / 10;
|
shield_ac += GetHeroicSTR() / 10;
|
||||||
}
|
}
|
||||||
// EQ math
|
// EQ math
|
||||||
ac = (ac * 4) / 3;
|
ac = (ac * 4) / 3;
|
||||||
@ -5793,16 +5793,16 @@ void Mob::CommonOutgoingHitSuccess(Mob* defender, DamageHitInfo &hit, ExtraAttac
|
|||||||
TryCriticalHit(defender, hit, opts);
|
TryCriticalHit(defender, hit, opts);
|
||||||
|
|
||||||
hit.damage_done += hit.min_damage;
|
hit.damage_done += hit.min_damage;
|
||||||
if (IsClient()) {
|
if (IsClient() || IsBot()) {
|
||||||
int extra = 0;
|
int extra = 0;
|
||||||
switch (hit.skill) {
|
switch (hit.skill) {
|
||||||
case EQ::skills::SkillThrowing:
|
case EQ::skills::SkillThrowing:
|
||||||
case EQ::skills::SkillArchery:
|
case EQ::skills::SkillArchery:
|
||||||
extra = CastToClient()->GetHeroicDEX() / 10;
|
extra = GetHeroicDEX() / 10;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
extra = CastToClient()->GetHeroicSTR() / 10;
|
extra = GetHeroicSTR() / 10;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
hit.damage_done += extra;
|
hit.damage_done += extra;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -128,7 +128,7 @@ void Client::CalcBonuses()
|
|||||||
consume_food_timer.SetTimer(timer);
|
consume_food_timer.SetTimer(timer);
|
||||||
}
|
}
|
||||||
|
|
||||||
int Client::CalcRecommendedLevelBonus(uint8 level, uint8 reclevel, int basestat)
|
int Mob::CalcRecommendedLevelBonus(uint8 level, uint8 reclevel, int basestat)
|
||||||
{
|
{
|
||||||
if( (reclevel > 0) && (level < reclevel) )
|
if( (reclevel > 0) && (level < reclevel) )
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1683,7 +1683,6 @@ protected:
|
|||||||
void CalcItemBonuses(StatBonuses* newbon);
|
void CalcItemBonuses(StatBonuses* newbon);
|
||||||
void AddItemBonuses(const EQ::ItemInstance *inst, StatBonuses* newbon, bool isAug = false, bool isTribute = false, int rec_override = 0, bool ammo_slot_item = false);
|
void AddItemBonuses(const EQ::ItemInstance *inst, StatBonuses* newbon, bool isAug = false, bool isTribute = false, int rec_override = 0, bool ammo_slot_item = false);
|
||||||
void AdditiveWornBonuses(const EQ::ItemInstance *inst, StatBonuses* newbon, bool isAug = false);
|
void AdditiveWornBonuses(const EQ::ItemInstance *inst, StatBonuses* newbon, bool isAug = false);
|
||||||
int CalcRecommendedLevelBonus(uint8 level, uint8 reclevel, int basestat);
|
|
||||||
void CalcEdibleBonuses(StatBonuses* newbon);
|
void CalcEdibleBonuses(StatBonuses* newbon);
|
||||||
void ProcessItemCaps();
|
void ProcessItemCaps();
|
||||||
void MakeBuffFadePacket(uint16 spell_id, int slot_id, bool send_message = true);
|
void MakeBuffFadePacket(uint16 spell_id, int slot_id, bool send_message = true);
|
||||||
|
|||||||
@ -657,7 +657,7 @@ public:
|
|||||||
inline int32 GetHeroicStrikethrough() const { return heroic_strikethrough; }
|
inline int32 GetHeroicStrikethrough() const { return heroic_strikethrough; }
|
||||||
inline const bool GetKeepsSoldItems() const { return keeps_sold_items; }
|
inline const bool GetKeepsSoldItems() const { return keeps_sold_items; }
|
||||||
inline void SetKeepsSoldItems(bool in_keeps_sold_items) { keeps_sold_items = in_keeps_sold_items; }
|
inline void SetKeepsSoldItems(bool in_keeps_sold_items) { keeps_sold_items = in_keeps_sold_items; }
|
||||||
|
int CalcRecommendedLevelBonus(uint8 level, uint8 reclevel, int basestat);
|
||||||
void CopyHateList(Mob* to);
|
void CopyHateList(Mob* to);
|
||||||
|
|
||||||
//Group
|
//Group
|
||||||
|
|||||||
@ -1040,16 +1040,16 @@ int64 Mob::TuneACSum(bool skip_caps, int ac_override, int add_ac)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int shield_ac = 0;
|
int shield_ac = 0;
|
||||||
if (HasShieldEquiped() && IsClient()) {
|
if (HasShieldEquiped() && (IsClient() || IsBot())) {
|
||||||
auto client = CastToClient();
|
auto inst = (IsClient()) ? GetInv().GetItem(EQ::invslot::slotSecondary) : CastToBot()->GetBotItem(EQ::invslot::slotSecondary);
|
||||||
auto inst = client->GetInv().GetItem(EQ::invslot::slotSecondary);
|
|
||||||
if (inst) {
|
if (inst) {
|
||||||
if (inst->GetItemRecommendedLevel(true) <= GetLevel())
|
if (inst->GetItemRecommendedLevel(true) <= GetLevel()) {
|
||||||
shield_ac = inst->GetItemArmorClass(true);
|
shield_ac = inst->GetItemArmorClass(true);
|
||||||
else
|
} else {
|
||||||
shield_ac = client->CalcRecommendedLevelBonus(GetLevel(), inst->GetItemRecommendedLevel(true), inst->GetItemArmorClass(true));
|
shield_ac = CalcRecommendedLevelBonus(GetLevel(), inst->GetItemRecommendedLevel(true),inst->GetItemArmorClass(true));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
shield_ac += client->GetHeroicSTR() / 10;
|
shield_ac += GetHeroicSTR() / 10;
|
||||||
}
|
}
|
||||||
// EQ math
|
// EQ math
|
||||||
ac = (ac * 4) / 3;
|
ac = (ac * 4) / 3;
|
||||||
@ -1490,15 +1490,15 @@ void Mob::TuneCommonOutgoingHitSuccess(Mob* defender, DamageHitInfo &hit, ExtraA
|
|||||||
hit.damage_done = min_mod;
|
hit.damage_done = min_mod;
|
||||||
|
|
||||||
hit.damage_done += hit.min_damage;
|
hit.damage_done += hit.min_damage;
|
||||||
if (IsClient()) {
|
if (IsClient() || IsBot()) {
|
||||||
int extra = 0;
|
int extra = 0;
|
||||||
switch (hit.skill) {
|
switch (hit.skill) {
|
||||||
case EQ::skills::SkillThrowing:
|
case EQ::skills::SkillThrowing:
|
||||||
case EQ::skills::SkillArchery:
|
case EQ::skills::SkillArchery:
|
||||||
extra = CastToClient()->GetHeroicDEX() / 10;
|
extra = GetHeroicDEX() / 10;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
extra = CastToClient()->GetHeroicSTR() / 10;
|
extra = GetHeroicSTR() / 10;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
hit.damage_done += extra;
|
hit.damage_done += extra;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user