diff options
author | shennetsind <shennetsind@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-02-09 01:37:48 +0000 |
---|---|---|
committer | shennetsind <shennetsind@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-02-09 01:37:48 +0000 |
commit | 3d56a0bf4a4ac9da69eac47560b18e2f770d2747 (patch) | |
tree | 0964f7a067aa4f55e90707cf25ff6c875469037a /src/map/skill.c | |
parent | afe5db9b8300ed02e0a57c75b28d5c02baed58da (diff) | |
download | hercules-3d56a0bf4a4ac9da69eac47560b18e2f770d2747.tar.gz hercules-3d56a0bf4a4ac9da69eac47560b18e2f770d2747.tar.bz2 hercules-3d56a0bf4a4ac9da69eac47560b18e2f770d2747.tar.xz hercules-3d56a0bf4a4ac9da69eac47560b18e2f770d2747.zip |
Added some renewal behaviors of skills from bugreport:5302 (all under renewal mode)
- Steel body no longer sets def and mdef at 90, instead it reduces incoming damage by 1/10.
- Storm Gust no longer possesses a hit counter; instead every hit have a chance to freeze of 20+(5 x skill_level).
- Thunder Storm skill ratio was increased from 80% to 100%
- Misc: added isOFF macro to replace REMODE == 0 compiler-level-checks.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15553 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/skill.c')
-rw-r--r-- | src/map/skill.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/map/skill.c b/src/map/skill.c index 81ffb2333..3179853c2 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -800,6 +800,12 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int break; case WZ_STORMGUST: + /** + * Storm Gust counter was dropped in renewal + **/ + #if REMODE + sc_start(bl,SC_FREEZE,20+(5*skilllv),skilllv,skill_get_time2(skillid,skilllv)); + #else //Tharis pointed out that this is normal freeze chance with a base of 300% if(tsc->sg_counter >= 3 && sc_start(bl,SC_FREEZE,300,skilllv,skill_get_time2(skillid,skilllv))) @@ -809,6 +815,7 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int **/ else if( tsc->sg_counter > 250 ) tsc->sg_counter = 0; + #endif break; case WZ_METEOR: @@ -9564,13 +9571,17 @@ int skill_unit_onplace_timer (struct skill_unit *src, struct block_list *bl, uns ++count < SKILLUNITTIMER_INTERVAL/sg->interval && !status_isdead(bl) ); } break; + /** + * The storm gust counter was dropped in renewal + **/ + #if isOFF(REMODE) case WZ_STORMGUST: //SG counter does not reset per stormgust. IE: One hit from a SG and two hits from another will freeze you. if (tsc) tsc->sg_counter++; //SG hit counter. if (skill_attack(skill_get_type(sg->skill_id),ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0) <= 0 && tsc) tsc->sg_counter=0; //Attack absorbed. break; - + #endif case GS_DESPERADO: if (rnd()%100 < src->val1) skill_attack(BF_WEAPON,ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0); |