summaryrefslogtreecommitdiff
path: root/src/map/battle.c
diff options
context:
space:
mode:
authorrud0lp20 <rud0lp20@54d463be-8e91-2dee-dedb-b68131a5f0ec>2013-01-09 15:23:25 +0000
committerrud0lp20 <rud0lp20@54d463be-8e91-2dee-dedb-b68131a5f0ec>2013-01-09 15:23:25 +0000
commitca217557a8f647f06e11a1d89592bc0b1c4d1b3e (patch)
tree3b1e7cd42aeb1227e90088a5776e6a6c59881a62 /src/map/battle.c
parent97d488e67801d315730cbe20eef9e0f70e56c0a6 (diff)
downloadhercules-ca217557a8f647f06e11a1d89592bc0b1c4d1b3e.tar.gz
hercules-ca217557a8f647f06e11a1d89592bc0b1c4d1b3e.tar.bz2
hercules-ca217557a8f647f06e11a1d89592bc0b1c4d1b3e.tar.xz
hercules-ca217557a8f647f06e11a1d89592bc0b1c4d1b3e.zip
Fixed bugreport:7105 where pierce defense must ignore def and add (def/2) as additional ATK damage.
Fixed bugreport:7148 where r17072 broke the ability of smiths to forge weapons. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@17089 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/battle.c')
-rw-r--r--src/map/battle.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/map/battle.c b/src/map/battle.c
index e67cf16ed..8fb9512f8 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -3226,24 +3226,23 @@ static struct Damage battle_calc_weapon_attack(struct block_list *src,struct blo
/**
* RE DEF Reduction
* Damage = Attack * (4000+eDEF)/(4000+eDEF) - sDEF
- * Icepick no longer bypasses defense, but gains 1 atk per def/2
+ * Pierce defence gains 1 atk per def/2
**/
ATK_ADD2(
flag.pdef ?(def1/2):0,
flag.pdef2?(def1/2):0
);
- if( !flag.idef )
+ if( !flag.idef && !flag.pdef )
wd.damage = wd.damage * (4000+def1) / (4000+10*def1) - vit_def;
- if( flag.lh && !flag.idef2 )
+ if( flag.lh && !flag.idef2 && !flag.pdef2 )
wd.damage2 = wd.damage2 * (4000+def1) / (4000+10*def1) - vit_def;
-
#else
if (def1 > 100) def1 = 100;
ATK_RATE2(
- flag.idef ?100:(flag.pdef ? (def1+vit_def) : (100-def1)),
- flag.idef2?100:(flag.pdef2? (def1+vit_def) : (100-def1))
+ flag.idef ?100:(flag.pdef ? (int64)flag.pdef*(def1+vit_def) : (100-def1)),
+ flag.idef2?100:(flag.pdef2? (int64)flag.pdef2*(def1+vit_def) : (100-def1))
);
ATK_ADD2(
flag.idef ||flag.pdef ?0:-vit_def,