summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
Diffstat (limited to 'npc')
-rw-r--r--npc/craft/options.txt14
1 files changed, 14 insertions, 0 deletions
diff --git a/npc/craft/options.txt b/npc/craft/options.txt
index 22b7f8a71..5ffefe0a1 100644
--- a/npc/craft/options.txt
+++ b/npc/craft/options.txt
@@ -429,6 +429,14 @@ function script csys_ArmorFix {
// Save for csys_BonusCalc
@csysArmor=CSYS_ARMOR;
+ // Shields
+ if (getiteminfo(getarg(0), ITEMINFO_LOC) == EQP_HAND_L)
+ @csysArmor=@csysArmor|CSYS_SHIELD;
+
+ // Aegis Shield is special and is not classified as armor
+ if (compare("aegis shield", strtolower(getitemname(getarg(0)))))
+ @csysArmor=@csysArmor^CSYS_ARMOR;
+
// Special sets
if (compare("savior", strtolower(getitemname(getarg(0)))))
@csysArmor=@csysArmor|CSYS_SAVIOR;
@@ -513,6 +521,12 @@ function script csys_BonusCalc {
if (@csysArmor & CSYS_ARMOR)
.@base=max(1, .@base/4);
+ // HP/MP/DEF/MDEF for shields? Revert the cap and round it
+ if (.@var == VAR_ITEMDEFPOWER || .@var == VAR_MAXHPAMOUNT ||
+ .@var == VAR_MDEFPOWER || .@var == VAR_MAXSPAMOUNT) {
+ if (@csysArmor & CSYS_SHIELD)
+ .@base*=4;
+ }
return .@base;
}