summaryrefslogtreecommitdiff
path: root/src/map/battle.c
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-11-06 21:10:45 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-11-06 21:10:45 +0000
commit18b9549a0a8cfb0614c655d11f87f2acc7c8cc52 (patch)
tree937db1ac7ede04a8b43ce6324508ac75d3d6029c /src/map/battle.c
parent1c0bab41587fced03042d70a91945f5917f3a29e (diff)
downloadhercules-18b9549a0a8cfb0614c655d11f87f2acc7c8cc52.tar.gz
hercules-18b9549a0a8cfb0614c655d11f87f2acc7c8cc52.tar.bz2
hercules-18b9549a0a8cfb0614c655d11f87f2acc7c8cc52.tar.xz
hercules-18b9549a0a8cfb0614c655d11f87f2acc7c8cc52.zip
- Corrected Ground Drift. Splash range of 3x3, stackable and placeable underneath others, cast time is 2 secs. It's considered ranged, and it's damage increase is defense ignoring, always neutral damage.
- Added Bull's Eye 0.5 sec cast time - Corrected Bull's Eye implementation, it should deal normal damage against non brute/demi-human targets. - GS_DUST is now considered a short-range attack - Implemented Desperado's hit rate based on distance to caster as it's believed to behave. - Suiton's Speed/Agi penalty will affect everyone when used in versus maps. - GS_TRACKING's range is no longer affected by Snake Eye. - Cleaned up some skill_trap_splash - GS_FLING's defense reduction is now 5*lv% git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9158 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/battle.c')
-rw-r--r--src/map/battle.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/map/battle.c b/src/map/battle.c
index 96b61e8d6..c278a330a 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -378,7 +378,7 @@ int battle_calc_damage(struct block_list *src,struct block_list *bl,int damage,i
if(sc->data[SC_ADJUSTMENT].timer != -1 &&
(flag&(BF_LONG|BF_WEAPON)) == (BF_LONG|BF_WEAPON))
- damage=damage*80/100;
+ damage -= 20*damage/100;
if(sc->data[SC_FOGWALL].timer != -1) {
if(flag&BF_SKILL) //25% reduction
@@ -885,6 +885,7 @@ static struct Damage battle_calc_weapon_attack(
wd.flag=(wd.flag&~BF_RANGEMASK)|BF_LONG;
break;
case GS_DESPERADO:
+ case GS_DUST:
//This one is the opposite, it consumes ammo, but should count as short range.
wd.flag=(wd.flag&~BF_RANGEMASK)|BF_SHORT;
break;
@@ -917,11 +918,12 @@ static struct Damage battle_calc_weapon_attack(
wd.type = 0x08;
break;
+ case GS_GROUNDDRIFT:
+ wd.flag=(wd.flag&~BF_RANGEMASK)|BF_LONG;
case KN_SPEARSTAB:
case KN_BOWLINGBASH:
case MO_BALKYOUNG:
case TK_TURNKICK:
- case GS_GROUNDDRIFT:
wd.blewcount=0;
break;
@@ -1531,8 +1533,12 @@ static struct Damage battle_calc_weapon_attack(
skillratio += 10*status_get_lv(src)/3;
break;
case GS_BULLSEYE:
- skillratio += 400;
- flag.cardfix = 0;
+ if((tstatus->race == RC_BRUTE || tstatus->race == RC_DEMIHUMAN)
+ && !(tstatus->mode&MD_BOSS))
+ { //Only works well against brute/demihumans non bosses.
+ skillratio += 400;
+ flag.cardfix = 0;
+ }
break;
case GS_TRACKING:
skillratio += 100 *(skill_lv+1);
@@ -1590,9 +1596,6 @@ static struct Damage battle_calc_weapon_attack(
case MO_EXTREMITYFIST:
ATK_ADD(250 + 150*skill_lv);
break;
- case GS_GROUNDDRIFT:
- ATK_ADD(50*skill_lv);
- break;
case TK_DOWNKICK:
case TK_STORMKICK:
case TK_TURNKICK:
@@ -1832,6 +1835,8 @@ static struct Damage battle_calc_weapon_attack(
wd.damage=battle_attr_fix(src,target,wd.damage,s_ele,tstatus->def_ele, tstatus->ele_lv);
if(skill_num==MC_CARTREVOLUTION) //Cart Revolution applies the element fix once more with neutral element
wd.damage = battle_attr_fix(src,target,wd.damage,ELE_NEUTRAL,tstatus->def_ele, tstatus->ele_lv);
+ if(skill_num== GS_GROUNDDRIFT) //Additional 50*lv Neutral damage.
+ wd.damage+= battle_attr_fix(src,target,50*skill_lv,ELE_NEUTRAL,tstatus->def_ele, tstatus->ele_lv);
}
if (flag.lh && wd.damage2 > 0)
wd.damage2 = battle_attr_fix(src,target,wd.damage2,s_ele_,tstatus->def_ele, tstatus->ele_lv);