diff options
author | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-11-06 21:10:45 +0000 |
---|---|---|
committer | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-11-06 21:10:45 +0000 |
commit | 18b9549a0a8cfb0614c655d11f87f2acc7c8cc52 (patch) | |
tree | 937db1ac7ede04a8b43ce6324508ac75d3d6029c /src/map/battle.c | |
parent | 1c0bab41587fced03042d70a91945f5917f3a29e (diff) | |
download | hercules-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.c | 19 |
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); |