Project 1999

Go Back   Project 1999 > Class Discussions > Melee

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #27  
Old 11-06-2024, 10:31 PM
Jafir Jafir is offline
Orc


Join Date: Jan 2013
Posts: 41
Default

Classic/Kunark/Velious Agility gave both Avoidance and Mitigation AC. Whether or not the formula on P99 adheres to that, I do not know. Here is a reference to mid-Velious, which still had a hard cap on Mitigation AC:

defense_agility_bonus method
Code:
if GetAGI() < 40: # penalty
  return (25 * (GetAGI() - 40)) / 40

if GetAGI() <= 60:
  return 0

if GetAGI() <= 74:
  bonus = 28 - (200 - GetAGI()) / 5
  return 2 * bonus / 3

# so 75+
bonus = max(200 - GetAGI(), 0)
if GetLevel() >= 40:
  bonus = 80 - bonus / 5
elif GetLevel() >= 20:
  bonus = 70 - bonus / 5
elif GetLevel() >= 7:
  bonus = 55 - bonus / 5
else:
  bonus = 35 - bonus / 5
return 2 * bonus / 3
compute_defense method
Code:
skill = max(GetSkill(SkillDefense), 0)
bonus = 400 * skill / 225 + defense_agility_bonus()

if IsClient():
  drunk = float(GetIntoxication() / 2)
  if drunk > 20.0:
    redux = min((110.0 - drunk) * 0.01, 1.0)
    bonus = int(bonus * redux)

return max(bonus, 1)
ac method
Code:
item_ac = 0
for slot in range(0, 21):
  item = GetItemPossession(slot)
  if item.IsValid and item.GetItemClass() == ItemClassCommon:
    item_ac = item_ac + item.GetItemAC()

if not IsMage():
  bonus = 4 * item_ac / 3

if IsClient() and bonus > 6 * GetLevel() + 25:
  bonus = 6 * GetLevel() + 25

weight_hardcap = 30
weight_softcap = 14

if GetLevel() > 59:
  weight_hardcap = 45
  weight_softcap = 24
elif GetLevel() > 54:
  weight_hardcap = 40
  weight_softcap = 20
elif GetLevel() > 50:
  weight_hardcap = 38
  weight_softcap = 18
elif GetLevel() > 44:
  weight_hardcap = 36
  weight_softcap = 17
elif GetLevel() > 29:
  weight_hardcap = 34
  weight_softcap = 16
elif GetLevel() > 14:
  weight_hardcap = 32
  weight_softcap = 15

if GetClass() == MONK:
  weight = GetWeight()
  if weight < weight_hardcap - 1:
    weight_bonus = float(level + 5)
    if weight > weight_softcap:
      temp_mod = min(float(weight - weight_softcap) * 6.66667, 100.0)
      weight_bonus = max(0.0, weight_bonus * ((100.0 - temp_mod) * 0.01))
    bonus = bonus + int(weight_bonus * 11.0 * 0.1)

if bonus < 0:
  bonus = 0

if GetClass() == MONK:
  weight = GetWeight()
  if weight > weight_hardcap + 1:
    weight_penalty = level + 5
    temp_mod = min(1.0, (float(weight) - 20.0) * 0.01)
    bonus = bonus - int(temp_mod)

if GetClass() == ROGUE:
  agi = GetAGI()
  if agi > 75 and GetLevel() > 29:
    LevelScaler = GetLevel() - 26
    if agi >= 100:
      LevelScaler = LevelScaler * 5
    elif agi >= 90:
      LevelScaler = LevelScaler * 4
    elif agi >= 85:
      LevelScaler = LevelScaler * 3
    elif agi >= 80:
      LevelScaler = LevelScaler * 2
    tmp_bonus = LevelScaler / 4
    bonus = bonus + min(12, tmp_bonus)

if GetRace() == IKSAR:
  bonus = bonus + min(35, max(10, GetLevel())

if IsMage():
  bonus = bonus + GetSkill(SkillDefense) / 2
else:
  bonus = bonus + GetSkill(SkillDefense) / 3

if GetAGI() > 70:
  bonus = bonus + GetAGI() / 20

if IsMage():
  bonus = bonus + TotalEffect(SPA_AC) / 3
else:
  bonus = bonus + TotalEffect(SPA_AC) / 4

if bonus < 0:
  bonus = 0

if IsClient():
  hardcap = 350
  if GetClass() == WARRIOR and GetLevel() > 50:
    hardcap = 430
  if (GetClass() == PALADIN or GetClass() == SHADOWKNIGHT or GetClass() == BARD) and GetLevel() > 50
    hardcap = 403
  if (GetClass() == RANGER or GetClass() == ROGUE or GetClass() == MONK) and GetLevel() > 50
    hardcap = 375
  if bonus > hardcap:
    bonus = hardcap

return bonus
That means you could have 12.75 Mitigation AC and 53.33 Avoidance AC from 255 Agility. Compared to 75 Agility where you get 3.75 Mitigation AC and 36.67 Avoidance AC.
Last edited by Jafir; 11-06-2024 at 10:45 PM..
Reply With Quote
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 01:57 AM.


Everquest is a registered trademark of Daybreak Game Company LLC.
Project 1999 is not associated or affiliated in any way with Daybreak Game Company LLC.
Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.