summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichieru <Michieru@users.noreply.github.com>2014-09-14 17:20:07 +0200
committerMichieru <Michieru@users.noreply.github.com>2014-09-14 17:20:07 +0200
commit51fd6b4def852bbdc9f53cff6f42206ce270287e (patch)
treeb76e9d2ce502efcc85c3bb9c43fd30757916c6f3 /src
parent35fd42449fcbe8c228a41777e630d4ded8357aae (diff)
downloadhercules-51fd6b4def852bbdc9f53cff6f42206ce270287e.tar.gz
hercules-51fd6b4def852bbdc9f53cff6f42206ce270287e.tar.bz2
hercules-51fd6b4def852bbdc9f53cff6f42206ce270287e.tar.xz
hercules-51fd6b4def852bbdc9f53cff6f42206ce270287e.zip
Storm Gust freeze chance is only 150% and not 300% (Thanks to Playtester)
Spiral Pierce should hitlock to 100% but not work on bosses (Thanks to Playtester) Implemented the official formula for Potion Pitcher when used by monsters (Thanks to Playtester) Golden Thief Bug card should not immune masquerades Desperado should not be reflect by Shield Reflect (bug:7624)
Diffstat (limited to 'src')
-rw-r--r--src/map/battle.c2
-rw-r--r--src/map/skill.c16
-rw-r--r--src/map/status.c6
3 files changed, 13 insertions, 11 deletions
diff --git a/src/map/battle.c b/src/map/battle.c
index b969f3cc6..07a195503 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -5461,7 +5461,7 @@ void battle_reflect_damage(struct block_list *target, struct block_list *src, st
if( wd->dmg_lv >= ATK_BLOCK ) {/* yes block still applies, somehow gravity thinks it makes sense. */
if( sc ) {
- if( sc->data[SC_REFLECTSHIELD] && skill_id != WS_CARTTERMINATION ) {
+ if( sc->data[SC_REFLECTSHIELD] && skill_id != WS_CARTTERMINATION && skill_id != GS_DESPERADO ) {
NORMALIZE_RDAMAGE(damage * sc->data[SC_REFLECTSHIELD]->val2 / 100);
#ifndef RENEWAL
diff --git a/src/map/skill.c b/src/map/skill.c
index 7e27cc17c..27758201c 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -838,9 +838,9 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
#ifdef RENEWAL
sc_start(src,bl,SC_FREEZE,65-(5*skill_lv),skill_lv,skill->get_time2(skill_id,skill_lv));
#else
- // [Tharis] pointed out that this is normal freeze chance with a base of 300%
+ //On third hit, there is a 150% to freeze the target
if(tsc->sg_counter >= 3 &&
- sc_start(src,bl,SC_FREEZE,300,skill_lv,skill->get_time2(skill_id,skill_lv)))
+ sc_start(src,bl,SC_FREEZE,150,skill_lv,skill->get_time2(skill_id,skill_lv)))
tsc->sg_counter = 0;
/**
* being it only resets on success it'd keep stacking and eventually overflowing on mvps, so we reset at a high value
@@ -1006,7 +1006,8 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
case LK_SPIRALPIERCE:
case ML_SPIRALPIERCE:
- sc_start(src,bl,SC_ANKLESNARE,100,0,skill->get_time2(skill_id,skill_lv));
+ if( dstsd || ( dstmd && !is_boss(bl) ) ) //Does not work on bosses
+ sc_start(src,bl,SC_STOP,100,0,skill_get_time2(skill_id,skill_lv));
break;
case ST_REJECTSWORD:
@@ -6745,7 +6746,14 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
sp += sp * i / 100;
}
} else {
- hp = (1 + rnd()%400) * (100 + skill_lv*10) / 100;
+ //Maybe replace with potion_hp, but I'm unsure how that works [Playtester]
+ switch (skill_lv) {
+ case 1: hp = 45; break;
+ case 2: hp = 105; break;
+ case 3: hp = 175; break;
+ default: hp = 325; break;
+ }
+ hp = (hp + rnd()%(skill_lv*20+1)) * (150 + skill_lv*10) / 100;
hp = hp * (100 + (tstatus->vit<<1)) / 100;
if( dstsd )
hp = hp * (100 + pc->checkskill(dstsd,SM_RECOVERY)*10) / 100;
diff --git a/src/map/status.c b/src/map/status.c
index a02989699..4c136f870 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -6333,12 +6333,6 @@ int status_get_sc_def(struct block_list *src, struct block_list *bl, enum sc_typ
case SC_QUAGMIRE:
case SC_NJ_SUITON:
case SC_SWING:
- case SC__ENERVATION:
- case SC__GROOMY:
- case SC__IGNORANCE:
- case SC__LAZINESS:
- case SC__UNLUCKY:
- case SC__WEAKNESS:
return 0;
}