Changeset 24 for src/map/status.c
- Timestamp:
- 07/07/08 22:48:26 (17 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
src/map/status.c
r22 r24 130 130 set_sc( NPC_SILENCEATTACK , SC_SILENCE , SI_BLANK , SCB_NONE ); 131 131 set_sc( DC_WINKCHARM , SC_CONFUSION , SI_BLANK , SCB_NONE ); 132 set_sc( AD_PWFEAR , SC_FEAR , SI_HALLUCINATION , SCB_SPEED ); //Fear Status by [Brainstorm] 132 //the visual effect is HALLUCINATION?! 133 set_sc( AD_PWFEAR , SC_FEAR , SI_HALLUCINATION , SCB_SPEED ); //Fear Status by [Brainstorm] 133 134 set_sc( NPC_BLINDATTACK , SC_BLIND , SI_BLANK , SCB_HIT|SCB_FLEE ); 134 135 set_sc( LK_HEADCRUSH , SC_BLEEDING , SI_BLEEDING , SCB_REGEN ); … … 408 409 set_sc( GD_BATTLEORDER , SC_BATTLEORDERS , SI_BLANK , SCB_STR|SCB_INT|SCB_DEX ); 409 410 set_sc( GD_REGENERATION , SC_REGENERATION , SI_BLANK , SCB_REGEN ); 410 411 //Are we sure about this? 411 412 // Custom Jobs Skills [Brain] 412 add_sc( AD_PWBLIND , SC_BLIND); 413 add_sc( AD_PWFEAR , SC_FEAR); 414 set_sc( AD_LUST , SC_LUST , SI_JOINTBEAT , SCB_ASPD|SCB_BATK|SCB_WATK|SCB_REGEN); 415 416 set_sc( NC_DECREPIFY , SC_DECREPIFY , SI_BLEEDING , SCB_SPEED|SCB_BATK|SCB_WATK|SCB_DEF2|SCB_MDEF2); 417 set_sc( NC_DARKMOON , SC_DARKMOON , SI_MOON_COMFORT , SCB_FLEE|SCB_HIT); 418 add_sc( NC_DARKMOON , SC_BLIND); 419 set_sc( NC_REQUIEM , SC_REQUIEM , SI_KAIZEL , SCB_BATK|SCB_WATK); 420 add_sc( NC_GHOULTOUCH , SC_POISON); 421 set_sc( NC_PWSUFFER , SC_SUFFER , SI_BLANK , SCB_DEF|SCB_DEF2); 422 set_sc( NC_DEATHPACT , SC_DEATHPACT , SI_BIOMOBTRICKDEAD , SCB_DEF_ELE|SCB_REGEN); 413 add_sc( AD_PWBLIND , SC_BLIND); 414 add_sc( AD_PWFEAR , SC_FEAR); 415 set_sc( AD_LUST , SC_LUST , SI_JOINTBEAT , SCB_ASPD|SCB_BATK|SCB_WATK|SCB_REGEN); 416 set_sc( NC_DECREPIFY , SC_DECREPIFY , SI_BLEEDING , SCB_SPEED|SCB_BATK|SCB_WATK|SCB_DEF2|SCB_MDEF2); 417 set_sc( NC_DARKMOON , SC_DARKMOON , SI_MOON_COMFORT , SCB_FLEE|SCB_HIT); 418 add_sc( NC_DARKMOON , SC_BLIND); 419 set_sc( NC_REQUIEM , SC_REQUIEM , SI_KAIZEL , SCB_BATK|SCB_WATK); 420 add_sc( NC_GHOULTOUCH , SC_POISON); 421 set_sc( NC_PWSUFFER , SC_SUFFER , SI_BLANK , SCB_DEF|SCB_DEF2); 422 set_sc( NC_DEATHPACT , SC_DEATHPACT , SI_BIOMOBTRICKDEAD , SCB_DEF_ELE|SCB_REGEN); 423 423 424 set_sc( WL_SEARING , SC_SEARING , SI_BLANK, SCB_NONE);425 set_sc( WL_IMMOLATE , SC_IMMOLATE , SI_BLANK, SCB_NONE);426 add_sc( WL_SHADOWBURN 427 set_sc( WL_PWAGONY , SC_AGONY , SI_BLANK, SCB_MDEF|SCB_MDEF2);428 set_sc( WL_CURSETONGUES , SC_CURSETONGUES , SI_SLOWCAST, SCB_NONE);429 set_sc( WL_CURSEDOOM , SC_DOOM , SI_BLANK, SCB_NONE);430 set_sc( WL_CURSEWEAKNESS , SC_CURSEWEAKNESS , SI_STRIPWEAPON, SCB_BATK|SCB_WATK);431 set_sc( WL_CURSEEXHAUST , SC_CURSEEXHAUST, SI_CRITICALWOUND , SCB_DEF|SCB_MDEF);432 add_sc( WL_HOWLOFTERROR 433 set_sc( WL_HOWLOFPAIN , SC_PROVOKE , SI_PROVOKE, SCB_DEF|SCB_DEF2|SCB_BATK|SCB_WATK);434 set_sc( WL_OVERWHELMING , SC_OVERWHELMING , SI_ENERGYCOAT, SCB_DEF|SCB_MDEF|SCB_MATK|SCB_REGEN|SCB_DEF_ELE);435 436 set_sc( ALL_ATFIELD , SC_ATFIELD , SI_UTSUSEMI,SCB_NONE);424 set_sc( WL_SEARING , SC_SEARING , SI_BLANK , SCB_NONE); 425 set_sc( WL_IMMOLATE , SC_IMMOLATE , SI_BLANK , SCB_NONE); 426 add_sc( WL_SHADOWBURN , SC_STUN); 427 set_sc( WL_PWAGONY , SC_AGONY , SI_BLANK , SCB_MDEF|SCB_MDEF2); 428 set_sc( WL_CURSETONGUES , SC_CURSETONGUES , SI_SLOWCAST , SCB_NONE); 429 set_sc( WL_CURSEDOOM , SC_DOOM , SI_BLANK , SCB_NONE); 430 set_sc( WL_CURSEWEAKNESS , SC_CURSEWEAKNESS , SI_STRIPWEAPON , SCB_BATK|SCB_WATK); 431 set_sc( WL_CURSEEXHAUST , SC_CURSEEXHAUST , SI_CRITICALWOUND , SCB_DEF|SCB_MDEF); 432 add_sc( WL_HOWLOFTERROR , SC_FEAR); 433 set_sc( WL_HOWLOFPAIN , SC_PROVOKE , SI_PROVOKE , SCB_DEF|SCB_DEF2|SCB_BATK|SCB_WATK); 434 set_sc( WL_OVERWHELMING , SC_OVERWHELMING , SI_ENERGYCOAT , SCB_DEF|SCB_MDEF|SCB_MATK|SCB_REGEN|SCB_DEF_ELE); 435 //WTF IS THIS DOING HERE AT ALL?! 436 set_sc( ALL_ATFIELD , SC_ATFIELD , SI_UTSUSEMI ,SCB_NONE); 437 437 438 438 … … 675 675 status_change_end(target,SC_WINKCHARM,-1); 676 676 status_change_end(target,SC_CONFUSION,-1); 677 //error... definately... 678 if (sc->data[SC_FEAR]) //Fear Status by [Brainstorm] 679 status_change_end(target, SC_FEAR, -1); 677 /*+ if (sc->data[SC_FEAR]) //Fear Status by [Brainstorm] 678 + status_change_end(target, SC_FEAR, -1);*/ 679 //Modifying the above... 680 status_change_end(target,SC_FEAR,-1); 680 681 status_change_end(target,SC_TRICKDEAD,-1); 681 682 status_change_end(target,SC_HIDING,-1); … … 689 690 status_change_end(target, SC_ENDURE, -1); 690 691 } 692 //May also work here... MAYBE 693 // if (sc->data[SC_FEAR]) //Fear Status by [Brainstorm] 694 // status_change_end(target, SC_FEAR, -1); 691 695 if ((sce=sc->data[SC_GRAVITATION]) && sce->val3 == BCT_SELF) 692 696 { … … 1226 1230 } 1227 1231 1228 void status_calc_bl(struct block_list *bl, unsigned long flag);1229 1230 1232 // Basic ASPD value 1231 1233 int status_base_amotion_pc(struct map_session_data* sd, struct status_data* status) … … 1372 1374 if (md->master_id && md->special_state.ai>1) 1373 1375 flag|=16; 1374 1376 // a flag o_O 1375 1377 if (md->master_id && md->special_state.ai) 1376 flag|=32; //Adept/Necro/Warlock Summon Stats Bonus [Brainstorm] 1377 1378 1378 flag|=32; //Adept/Necro/Warlock Summon Stats Bonus [Brainstorm] 1379 1379 if (!flag) 1380 1380 { //No special status required. … … 1493 1493 status->aspd_rate -= 100*md->guardian_data->guardup_lv; 1494 1494 } 1495 //Gentlemen, prepare to error your ass off! =O Unless I fixed that thing wayyyy up thar ^ 1495 1496 //Summon Bonus from Skills [Brainstorm] 1496 1497 if(flag&32) 1497 1498 { 1498 mbl = map_id2bl(md->master_id);1499 if(mbl)1500 {1501 struct unit_data *ud = unit_bl2ud(mbl);1502 //Remove special AI when this is used by regular mobs.1503 if (mbl->type == BL_MOB && !((TBL_MOB*)mbl)->special_state.ai)1504 md->special_state.ai = 0;1505 1506 int master_lv = status_get_lv(mbl);1507 int skill_mastery = pc_checkskill((TBL_PC*)mbl,AD_SUMMONS);1508 int undead_mastery = pc_checkskill((TBL_PC*)mbl,NC_UNDEAD);1499 mbl = map_id2bl(md->master_id); //WTF?! Your mom! It's there you liar compiling bastard! 1500 if(mbl) 1501 { 1502 struct unit_data *ud = unit_bl2ud(mbl); 1503 //Remove special AI when this is used by regular mobs. 1504 if (mbl->type == BL_MOB && !((TBL_MOB*)mbl)->special_state.ai) 1505 md->special_state.ai = 0; 1506 1507 int master_lv = status_get_lv(mbl); 1508 int skill_mastery = pc_checkskill((TBL_PC*)mbl,AD_SUMMONS); 1509 int undead_mastery = pc_checkskill((TBL_PC*)mbl,NC_UNDEAD); 1509 1510 1510 if (ud->skillid == AD_FAMILIAR) 1511 { 1512 status->max_hp += (skill_mastery*10) + (master_lv*10); 1513 status->str += (master_lv) + (skill_mastery); 1514 status->dex += (master_lv) + (skill_mastery); 1515 status->agi += (master_lv) + (skill_mastery); 1516 status->int_ += (master_lv) + (skill_mastery); 1517 status->vit += (master_lv) + (skill_mastery); 1518 status->luk += (master_lv) + (skill_mastery); 1519 status->rhw.atk += (skill_mastery*3) 1520 + (status->str+((status->str/10)*(status->str/10))+(status->dex/5)+(status->luk/10)); 1521 status->rhw.atk2 += (skill_mastery*3) 1522 + (status->str+((status->str/10)*(status->str/10))+(status->dex/5)+(status->luk/10)); 1523 status->speed -= skill_mastery; 1524 status->def += (master_lv)/10 + (skill_mastery); 1525 status->mdef += (master_lv)/10 + (skill_mastery); 1526 //These are not automatically recalculated 1527 status->hit += (master_lv*2) + (skill_mastery); 1528 status->flee += (master_lv*2) + (skill_mastery); 1529 status->def2 += (master_lv) + (skill_mastery); 1530 status->mdef2 += (master_lv) + (skill_mastery); 1531 } 1532 else if(status->race==RC_UNDEAD) 1533 { 1534 status->max_hp += (undead_mastery*10) + (master_lv*2); 1535 status->str += (undead_mastery*3) + (skill_mastery); 1536 status->dex += (undead_mastery*3) + (skill_mastery); 1537 status->agi += (undead_mastery*3) + (skill_mastery); 1538 status->int_ += (undead_mastery*3) + (skill_mastery); 1539 status->vit += (undead_mastery*3) + (skill_mastery); 1540 status->luk += (undead_mastery*3) + (skill_mastery); 1541 status->rhw.atk += (undead_mastery*3) + (skill_mastery*3) 1542 + (status->str+((status->str/10)*(status->str/10))+(status->dex/5)+(status->luk/10)); 1543 status->rhw.atk2 += (undead_mastery*3) + (skill_mastery*3) 1544 + (status->str+((status->str/10)*(status->str/10))+(status->dex/5)+(status->luk/10)); 1545 status->speed -= undead_mastery; 1546 status->def += undead_mastery; 1547 status->mdef += undead_mastery; 1548 //These are not automatically recalculated 1549 status->hit += (undead_mastery*3) + (skill_mastery); 1550 status->flee += (undead_mastery*3) + (skill_mastery); 1551 status->def2 += (undead_mastery*3) + (skill_mastery); 1552 status->mdef2 += (undead_mastery*3) + (skill_mastery); 1553 } 1554 } 1555 else ShowError("status_calc_mob: Monster summoned without a master at %s\n", map[md->bl.m].name); 1556 } 1557 1558 1511 if (ud->skillid == AD_FAMILIAR) 1512 { 1513 status->max_hp += (skill_mastery*10) + (master_lv*10); 1514 status->str += (master_lv) + (skill_mastery); 1515 status->dex += (master_lv) + (skill_mastery); 1516 status->agi += (master_lv) + (skill_mastery); 1517 status->int_ += (master_lv) + (skill_mastery); 1518 status->vit += (master_lv) + (skill_mastery); 1519 status->luk += (master_lv) + (skill_mastery); 1520 status->rhw.atk += (skill_mastery*3) 1521 + (status->str+((status->str/10)*(status->str/10))+(status->dex/5)+(status->luk/10)); 1522 status->rhw.atk2 += (skill_mastery*3) 1523 + (status->str+((status->str/10)*(status->str/10))+(status->dex/5)+(status->luk/10)); 1524 status->speed -= skill_mastery; 1525 status->def += (master_lv)/10 + (skill_mastery); 1526 status->mdef += (master_lv)/10 + (skill_mastery); 1527 //These are not automatically recalculated 1528 status->hit += (master_lv*2) + (skill_mastery); 1529 status->flee += (master_lv*2) + (skill_mastery); 1530 status->def2 += (master_lv) + (skill_mastery); 1531 status->mdef2 += (master_lv) + (skill_mastery); 1532 } 1533 else if(status->race==RC_UNDEAD) 1534 { 1535 status->max_hp += (undead_mastery*10) + (master_lv*2); 1536 status->str += (undead_mastery*3) + (skill_mastery); 1537 status->dex += (undead_mastery*3) + (skill_mastery); 1538 status->agi += (undead_mastery*3) + (skill_mastery); 1539 status->int_ += (undead_mastery*3) + (skill_mastery); 1540 status->vit += (undead_mastery*3) + (skill_mastery); 1541 status->luk += (undead_mastery*3) + (skill_mastery); 1542 status->rhw.atk += (undead_mastery*3) + (skill_mastery*3) 1543 + (status->str+((status->str/10)*(status->str/10))+(status->dex/5)+(status->luk/10)); 1544 status->rhw.atk2 += (undead_mastery*3) + (skill_mastery*3) 1545 + (status->str+((status->str/10)*(status->str/10))+(status->dex/5)+(status->luk/10)); 1546 status->speed -= undead_mastery; 1547 status->def += undead_mastery; 1548 status->mdef += undead_mastery; 1549 //These are not automatically recalculated 1550 status->hit += (undead_mastery*3) + (skill_mastery); 1551 status->flee += (undead_mastery*3) + (skill_mastery); 1552 status->def2 += (undead_mastery*3) + (skill_mastery); 1553 status->mdef2 += (undead_mastery*3) + (skill_mastery); 1554 } 1555 } 1556 else ShowError("status_calc_mob: Monster summoned without a master at %s\n", map[md->bl.m].name); 1557 } 1559 1558 //Initial battle status 1560 1559 if (!first) … … 1745 1744 sd->delayrate=100; 1746 1745 sd->dsprate=100; 1747 sd->speed_rate = 100;1748 1746 sd->hprecov_rate = 100; 1749 1747 sd->sprecov_rate = 100; … … 1804 1802 status->aspd_rate = 1000; 1805 1803 status->ele_lv = 1; 1804 // status->race = RC_DEMIHUMAN; 1806 1805 status->race = RC_DEMIHUMAN;// This define players default race to DEMIHUMAN [Brain] 1807 1806 if(pc_checkskill(sd,NC_PHYLACTERY)>0) status->def_ele = ELE_UNDEAD; //Phylactery turns you UNDEAD 1 instead of NEUTRAL 1807 1808 1808 1809 1809 //zero up structures... … … 1860 1860 + sizeof(sd->crit_atk_rate) 1861 1861 + sizeof(sd->classchange) 1862 + sizeof(sd->speed_rate) 1862 1863 + sizeof(sd->speed_add_rate) 1863 1864 + sizeof(sd->aspd_add) … … 2042 2043 sd->perfect_hit += sd->perfect_hit_add; 2043 2044 sd->splash_range += sd->splash_add_range; 2044 if(sd->speed_add_rate)2045 sd->speed_rate += sd->speed_add_rate;2046 2045 2047 2046 // Damage modifiers from weapon type … … 2096 2095 status->dex += skill; 2097 2096 if((skill=pc_checkskill(sd,WL_DEMONOLOGY))>0) //Warlock Demonology [Brain] 2098 status->str += skill/2; //+1 str per 2 skill points 2099 2097 status->str += skill/2; //+1 str per 2 skill points 2100 2098 2101 2099 // Bonuses from cards and equipment as well as base stat, remember to avoid overflows. … … 2136 2134 status->max_hp += skill*200; 2137 2135 if((skill=pc_checkskill(sd,AD_PROFANE))>0) // Adept Profane Soul [Brain] 2138 status->max_hp += status->max_hp * (skill*3)/100; 2139 2136 status->max_hp += status->max_hp * (skill*3)/100; 2140 2137 2141 2138 // Apply relative modifiers from equipment … … 2168 2165 status->max_sp += status->max_sp * 2*skill/100; 2169 2166 if((skill=pc_checkskill(sd,AD_PROFANE))>0) // Adept Profane Soul [Brain] 2170 status->max_sp += sd->status.max_sp * (skill*3)/100; 2171 2172 2167 status->max_sp += sd->status.max_sp * (skill*3)/100; 2173 2168 // Apply relative modifiers from equipment 2174 2169 if(sd->sprate < 0) … … 2263 2258 } 2264 2259 } 2260 //right place? 2265 2261 if((skill=pc_checkskill(sd,AD_FERVOR))>0) // Adept Unholy Fevor [Brain] 2266 status->hit += skill*2;2262 status->hit += skill*2; 2267 2263 2268 2264 // ----- FLEE CALCULATION ----- … … 2274 2270 status->flee += (skill*3)>>1; 2275 2271 if((skill=pc_checkskill(sd,AD_FERVOR))>0) // Adept Unholy Fevor [Brain] 2276 status->flee += skill*2;2272 status->flee += skill*2; 2277 2273 2278 2274 // ----- EQUIPMENT-DEF CALCULATION ----- … … 2301 2297 status->mdef = cap_value(i, CHAR_MIN, CHAR_MAX); 2302 2298 } 2299 //AMIDOINITRITE? 2303 2300 // Absolute modifiers from passive skills 2304 2301 if((skill=pc_checkskill(sd,AD_DARKFAITH))>0) // Adept Dark Faith [Brain] 2305 status->mdef += 1*skill;2302 status->mdef += 1*skill; 2306 2303 2307 2304 … … 2314 2311 // ----- WALKING SPEED CALCULATION ----- 2315 2312 2316 if(sd->speed_rate < 0) 2317 sd->speed_rate = 0; 2318 if(sd->speed_rate != 100) 2319 status->speed = status->speed*sd->speed_rate/100; 2313 sd->speed_rate += sd->speed_add_rate; 2314 status->speed += status->speed * sd->speed_rate/100; 2320 2315 2321 2316 // Relative modifiers from passive skills … … 2411 2406 sd->subrace[RC_DRAGON]+=skill; 2412 2407 } 2413 2408 // Racial slurs =O 2414 2409 if((skill=pc_checkskill(sd,AD_DARKFAITH))>0) // Adept Dark Faith [Brain] 2415 sd->subele[ELE_DARK] += skill*5;2410 sd->subele[ELE_DARK] += skill*5; 2416 2411 if((skill=pc_checkskill(sd,WL_DEMONOLOGY))>0 ){ //Warlock Demonology [Brain] 2417 skill = skill*5;2418 sd->right_weapon.addrace[RC_DEMON]+=skill;2419 sd->magic_addrace[RC_DEMON]+=skill;2420 sd->subrace[RC_DEMON]+=skill;2412 skill = skill*5; 2413 sd->right_weapon.addrace[RC_DEMON]+=skill; 2414 sd->magic_addrace[RC_DEMON]+=skill; 2415 sd->subrace[RC_DEMON]+=skill; 2421 2416 } 2422 2417 if((pc_checkskill(sd,NC_PHYLACTERY))>0){ // Necro Phylactery [Brain] 2423 sd->subele[ELE_NEUTRAL] += 10; //And increases neutral resistance by 10% 2424 } 2418 sd->subele[ELE_NEUTRAL] += 10; //And increases neutral resistance by 10% 2419 } 2420 2425 2421 2426 2422 … … 2448 2444 } 2449 2445 if(sd->sc.data[SC_DEATHPACT]) //Necro Death Pact [Brain] 2450 sd->subele[ELE_NEUTRAL] += sd->sc.data[SC_DEATHPACT]->val2; 2451 2446 sd->subele[ELE_NEUTRAL] += sd->sc.data[SC_DEATHPACT]->val2; 2452 2447 if(sc->data[SC_ARMOR_ELEMENT]) 2453 2448 { //This status change should grant card-type elemental resist. … … 2605 2600 status->rhw.atk2 = status->str + hom->level; 2606 2601 2607 /*Passive bonus from Wolf Mastery (will only take effect when first created or level up) [Brainstorm]2608 if((skill=pc_checkskill(hd->master,QHT_WOLFMASTERY)) > 0)2609 {2610 status->rhw.atk += skill * 3;2611 status->rhw.atk2 += skill * 3;2612 status->str += skill;2613 status->agi += skill;2614 status->vit += skill;2615 status->dex += skill;2616 status->int_ += skill;2617 status->luk += skill;2618 }*/2619 2620 2621 2602 status->aspd_rate = 1000; 2622 2603 … … 2785 2766 || sc->data[SC_TRICKDEAD] 2786 2767 || sc->data[SC_BLEEDING] 2787 || sc->data[SC_LUST] // Adept Blood Lust, stops hp regen [Brain]2768 || sc->data[SC_LUST] // Adept Blood Lust, stops hp regen [Brain] 2788 2769 || sc->data[SC_DEATHPACT] // Necro Death Pact 2789 2770 … … 2894 2875 if(status->speed < battle_config.max_walk_speed) 2895 2876 status->speed = battle_config.max_walk_speed; 2896 2897 if ((skill=pc_checkskill(sd,SA_FREECAST))>0) { 2898 //Store casting walk speed for quick restoration. [Skotlex] 2899 sd->prev_speed = status->speed * (175-5*skill)/100; 2900 if(sd->ud.skilltimer != -1) { //Swap speed. 2901 skill = status->speed; 2902 status->speed = sd->prev_speed; 2903 sd->prev_speed = skill; 2904 } 2905 } 2906 } 2877 } 2878 2907 2879 if(flag&(SCB_ASPD|SCB_AGI|SCB_DEX)) { 2908 2880 flag|=SCB_ASPD; … … 2916 2888 2917 2889 status->amotion = cap_value(skill,battle_config.max_aspd,2000); 2918 2919 2890 status->adelay = 2*status->amotion; 2920 if ((skill=pc_checkskill(sd,SA_FREECAST))>0) {2921 //Store casting adelay for quick restoration. [Skotlex]2922 sd->prev_adelay = status->adelay*(150-5*skill)/100;2923 if(sd->ud.skilltimer != -1) { //Swap adelay.2924 skill = status->adelay;2925 status->adelay = sd->prev_adelay;2926 sd->prev_adelay = skill;2927 }2928 }2929 2930 2891 } 2931 2892 … … 3567 3528 batk += 100; 3568 3529 if(sc->data[SC_LUST]) // Adept Blood Lust [Brain] 3569 batk += batk * sc->data[SC_LUST]->val2/100;3530 batk += batk * sc->data[SC_LUST]->val2/100; 3570 3531 if(sc->data[SC_CURSEWEAKNESS]) // Warlock Curse of Weakness [Brain] 3571 batk -= batk * sc->data[SC_CURSEWEAKNESS]->val2/100;3532 batk -= batk * sc->data[SC_CURSEWEAKNESS]->val2/100; 3572 3533 if(sc->data[SC_DECREPIFY]) // Necromancer Decrepify [Brain] 3573 if(sc->data[SC_DECREPIFY]->val2>=2) 3574 batk -= batk * 25/100; 3575 3534 if(sc->data[SC_DECREPIFY]->val2>=2) 3535 batk -= batk * 25/100; 3576 3536 return (unsigned short)cap_value(batk,0,USHRT_MAX); 3577 3537 } … … 3608 3568 } 3609 3569 } 3610 if(sc->data[SC_BLOODLUST]) 3570 if(sc->data[SC_BLOODLUST])//WTF?! 3611 3571 watk += watk * sc->data[SC_BLOODLUST]->val2/100; 3612 3572 if(sc->data[SC_FLEET]) … … 3617 3577 watk -= watk * sc->data[SC_STRIPWEAPON]->val2/100; 3618 3578 if(sc->data[SC_LUST]) // Adept Blood Lust [Brain] 3619 watk += watk * sc->data[SC_LUST]->val2/100;3579 watk += watk * sc->data[SC_LUST]->val2/100; 3620 3580 if(sc->data[SC_REQUIEM]){ //Necro Requiem [Brain] 3621 if(sc->data[SC_REQUIEM]->val2)3622 watk += sc->data[SC_REQUIEM]->val2*10;3623 if(sc->data[SC_REQUIEM]->val3)3624 watk -= sc->data[SC_REQUIEM]->val3*10;3625 } 3581 if(sc->data[SC_REQUIEM]->val2) 3582 watk += sc->data[SC_REQUIEM]->val2*10; 3583 if(sc->data[SC_REQUIEM]->val3) 3584 watk -= sc->data[SC_REQUIEM]->val3*10; 3585 }//???? 3626 3586 if(sc->data[SC_CURSEWEAKNESS]) // Warlock Curse of Weakness [Brain] 3627 watk -= watk * sc->data[SC_CURSEWEAKNESS]->val2/100;3587 watk -= watk * sc->data[SC_CURSEWEAKNESS]->val2/100; 3628 3588 if(sc->data[SC_DECREPIFY]) // Necromancer Decrepify [Brain] 3629 if(sc->data[SC_DECREPIFY]->val2>=2) 3630 watk -= watk * 25/100; 3631 3589 if(sc->data[SC_DECREPIFY]->val2>=2) 3590 watk -= watk * 25/100; 3632 3591 3633 3592 return (unsigned short)cap_value(watk,0,USHRT_MAX); … … 3650 3609 matk += matk * sc->data[SC_INCMATKRATE]->val1/100; 3651 3610 if(sc->data[SC_OVERWHELMING]) // Warlock Overwhelming Evil [Brain] 3652 matk += matk * sc->data[SC_OVERWHELMING]->val2/100; 3653 3611 matk += matk * sc->data[SC_OVERWHELMING]->val2/100; 3654 3612 3655 3613 return (unsigned short)cap_value(matk,0,USHRT_MAX); … … 3700 3658 hit += 20; // RockmanEXE; changed based on updated [Reddozen] 3701 3659 if(sc->data[SC_DARKMOON]){ //Necro Dark Moon [Brain] 3702 if(sc->data[SC_DARKMOON]->val2) 3703 hit += sc->data[SC_DARKMOON]->val2; 3704 if(sc->data[SC_DARKMOON]->val3) 3705 hit -= sc->data[SC_DARKMOON]->val3; 3706 } 3707 3660 if(sc->data[SC_DARKMOON]->val2) 3661 hit += sc->data[SC_DARKMOON]->val2; 3662 if(sc->data[SC_DARKMOON]->val3) 3663 hit -= sc->data[SC_DARKMOON]->val3; 3664 } 3708 3665 3709 3666 return (short)cap_value(hit,1,SHRT_MAX); … … 3747 3704 flee += 10 + sc->data[SC_SPEED]->val1 * 10 ; 3748 3705 if(sc->data[SC_DARKMOON]){ //Necro Dark Moon [Brain] 3749 if(sc->data[SC_DARKMOON]->val2) 3750 flee += sc->data[SC_DARKMOON]->val2; 3751 if(sc->data[SC_DARKMOON]->val3) 3752 flee -= sc->data[SC_DARKMOON]->val3; 3753 } 3754 3706 if(sc->data[SC_DARKMOON]->val2) 3707 flee += sc->data[SC_DARKMOON]->val2; 3708 if(sc->data[SC_DARKMOON]->val3) 3709 flee -= sc->data[SC_DARKMOON]->val3; 3710 } 3755 3711 3756 3712 return (short)cap_value(flee,1,SHRT_MAX); … … 3812 3768 def -= def * (sc->data[SC_FLING]->val2)/100; 3813 3769 if(sc->data[SC_SUFFER]) // Necro Power Word: Suffer [Brain] 3814 def <<=1; // -25% def3770 def <<=1; // -25% def 3815 3771 if (sc->data[SC_CURSEEXHAUST]) // Warlock Curse of Exhaustion [Brain] 3816 def -= sc->data[SC_CURSEEXHAUST]->val2;3772 def -= sc->data[SC_CURSEEXHAUST]->val2; 3817 3773 if (sc->data[SC_OVERWHELMING]) // Warlock Overwhelming Evil [Brain] 3818 3774 def += sc->data[SC_OVERWHELMING]->val1; 3819 3775 3820 3776 … … 3853 3809 def2 -= def2 * (sc->data[SC_FLING]->val3)/100; 3854 3810 if(sc->data[SC_SUFFER]) // Necro Power Word: Suffer [Brain] 3855 def2 -= def2 * 25/100; // -25% def3811 def2 -= def2 * 25/100; // -25% def 3856 3812 if(sc->data[SC_DECREPIFY]) // Necromancer Decrepify [Brain] 3857 if(sc->data[SC_DECREPIFY]->val2>=4)3858 def2 -= def2 * 25/100;3813 if(sc->data[SC_DECREPIFY]->val2>=4) 3814 def2 -= def2 * 25/100; 3859 3815 3860 3816 … … 3886 3842 mdef += 1; //Skill info says it adds a fixed 1 Mdef point. 3887 3843 if(sc->data[SC_AGONY]) // Warlock Power Word: Agony [Brain] 3888 mdef -= 25*mdef/100; // -25% mdef3844 mdef -= 25*mdef/100; // -25% mdef 3889 3845 if (sc->data[SC_CURSEEXHAUST]) // Warlock Curse of Exhaustion [Brain] 3890 mdef -= sc->data[SC_CURSEEXHAUST]->val2;3846 mdef -= sc->data[SC_CURSEEXHAUST]->val2; 3891 3847 if (sc->data[SC_OVERWHELMING]) // Warlock Overwhelming Evil [Brain] 3892 mdef += sc->data[SC_OVERWHELMING]->val1; 3893 3848 mdef += sc->data[SC_OVERWHELMING]->val1; 3894 3849 3895 3850 return (signed char)cap_value(mdef,CHAR_MIN,CHAR_MAX); … … 3906 3861 mdef2 -= mdef2 * sc->data[SC_MINDBREAKER]->val3/100; 3907 3862 if(sc->data[SC_AGONY]) // Warlock Power Word: Agony [Brain] 3908 mdef2 -= mdef2 * 25/100; // -25% mdef3863 mdef2 -= mdef2 * 25/100; // -25% mdef 3909 3864 if(sc->data[SC_DECREPIFY]) // Necromancer Decrepify [Brain] 3910 if(sc->data[SC_DECREPIFY]->val2>=5)3911 mdef2 -= mdef2 * 25/100;3865 if(sc->data[SC_DECREPIFY]->val2>=5) 3866 mdef2 -= mdef2 * 25/100; 3912 3867 3913 3868 … … 3917 3872 static unsigned short status_calc_speed(struct block_list *bl, struct status_change *sc, int speed) 3918 3873 { 3874 TBL_PC* sd = BL_CAST(BL_PC, bl); 3875 3919 3876 //Default speed coming in means there's no speed_rate adjustments. 3920 3877 int new_speed = speed; 3921 3878 bool default_speed = (speed == DEFAULT_WALK_SPEED); 3879 3880 if( sd && sd->ud.skilltimer != -1 && pc_checkskill(sd,SA_FREECAST) > 0 ) 3881 speed = speed * (175 - 5 * pc_checkskill(sd,SA_FREECAST))/100; 3922 3882 3923 3883 if(!sc || !sc->count) … … 3964 3924 else if(sc->data[SC_WINDWALK]) 3965 3925 new_speed -= new_speed * sc->data[SC_WINDWALK]->val3/100; 3966 else if(sc->data[SC_FEAR]) //Fear Status by [Brainstorm]3967 new_speed -= new_speed * 25/100;3926 else if(sc->data[SC_FEAR]) //Fear Status by [Brainstorm] 3927 new_speed -= new_speed * 25/100; 3968 3928 3969 3929 } … … 4011 3971 speed = speed * 100/75; 4012 3972 if(sc->data[SC_DECREPIFY]) // Necromancer Decrepify [Brain] 4013 speed = speed * 100/75; //-25% walkspeed 4014 3973 speed = speed * 100/75; //-25% walkspeed 4015 3974 4016 3975 return (short)cap_value(speed,10,USHRT_MAX); … … 4083 4042 else if(sc->data[SC_MADNESSCANCEL]) 4084 4043 aspd_rate -= 200; 4085 else if(sc->data[SC_LUST]) // Adept Blood Lust [Brain]4086 aspd_rate -= sc->data[SC_LUST]->val2*10;4044 else if(sc->data[SC_LUST]) // Adept Blood Lust [Brain] 4045 aspd_rate -= sc->data[SC_LUST]->val2*10; 4087 4046 4088 4047 } … … 4180 4139 return sc->data[SC_ELEMENTALCHANGE]->val2; 4181 4140 if( sc->data[SC_DEATHPACT]) // Necro Death Pact [Brain] 4182 return ELE_UNDEAD;4141 return ELE_UNDEAD; 4183 4142 if( sc->data[SC_OVERWHELMING]) // Warlock Overwhelming Evil [Brain] 4184 return ELE_DARK; 4185 4143 return ELE_DARK; 4186 4144 return (unsigned char)cap_value(element,0,UCHAR_MAX); 4187 4145 } … … 4203 4161 return sc->data[SC_ELEMENTALCHANGE]->val1; 4204 4162 if( sc->data[SC_DEATHPACT]) // Necro Death Pact [Brain] 4205 return 1;4163 return 1; 4206 4164 if( sc->data[SC_OVERWHELMING]) // Warlock Overwhelming Evil [Brain] 4207 return 1;4165 return 1; 4208 4166 4209 4167 … … 4250 4208 } 4251 4209 return cap_value(mode,0,USHRT_MAX); 4252 }4253 4254 /*==========================================4255 * Quick swap of adelay/speed when starting ending SA_FREECAST4256 *------------------------------------------*/4257 void status_freecast_switch(struct map_session_data *sd)4258 {4259 struct status_data *status;4260 unsigned short b_speed,tmp;4261 4262 status = &sd->battle_status;4263 4264 b_speed = status->speed;4265 4266 tmp = status->speed;4267 status->speed = sd->prev_speed;4268 sd->prev_speed = tmp;4269 4270 tmp = status->adelay;4271 status->adelay = sd->prev_adelay;4272 sd->prev_adelay = tmp;4273 4274 if(b_speed != status->speed)4275 clif_updatestatus(sd,SP_SPEED);4276 4210 } 4277 4211 … … 4945 4879 case SC_ASSNCROS: 4946 4880 case SC_LUST: // Adept Blood Lust [Brain] 4947 4948 4881 if (sc->data[SC_QUAGMIRE]) 4949 4882 return 0; … … 5049 4982 switch (type) { 5050 4983 case SC_BLESSING: 5051 if ( status->race!=RC_UNDEAD&& status->race!=RC_DEMON)4984 if (!undead_flag && status->race!=RC_DEMON) 5052 4985 break; 5053 4986 case SC_QUAGMIRE: … … 5063 4996 case SC_RICHMANKIM: 5064 4997 case SC_ROKISWEIL: 5065 //New status [Brainstorm] 5066 case SC_FEAR: 5067 case SC_DECREPIFY: 5068 case SC_DARKMOON: 5069 case SC_REQUIEM: 5070 case SC_CURSETONGUES: 5071 case SC_CURSEWEAKNESS: 5072 case SC_CURSEEXHAUST: 5073 4998 //Not sure if its the right place. 4999 //New status [Brainstorm] 5000 case SC_FEAR: 5001 case SC_DECREPIFY: 5002 case SC_DARKMOON: 5003 case SC_REQUIEM: 5004 case SC_CURSETONGUES: 5005 case SC_CURSEWEAKNESS: 5006 case SC_CURSEEXHAUST: 5007 //SC Fogwall Must have been added after he did this? 5074 5008 case SC_FOGWALL: 5075 5009 return 0; … … 5083 5017 //TO-DO Blessing and Agi up should do 1 damage against players on Undead Status, even on PvM 5084 5018 //but cannot be plagiarized (this requires aegis investigation on packets and official behavior) [Brainstorm] 5085 if ( status->race!=RC_UNDEAD && status->race!=RC_DEMON) {5019 if ((!undead_flag && status->race!=RC_DEMON) || bl->type == BL_PC) { 5086 5020 if (sc->data[SC_CURSE]) 5087 5021 status_change_end(bl,SC_CURSE,-1); 5088 5022 if (sc->data[SC_STONE] && sc->opt1 == OPT1_STONE) 5089 5023 status_change_end(bl,SC_STONE,-1); 5090 // Warlock Curses are canceled by blessing [Brain] 5024 //hell of a time finding this 5025 // Warlock Curses are canceled by blessing [Brain] 5026 if (sc->data[SC_CURSEWEAKNESS]) 5027 status_change_end(bl,SC_CURSEWEAKNESS,-1); 5028 if (sc->data[SC_CURSETONGUES]) 5029 status_change_end(bl,SC_CURSETONGUES,-1); 5030 if (sc->data[SC_CURSEEXHAUST]) 5031 status_change_end(bl,SC_CURSEEXHAUST,-1); 5032 if (sc->data[SC_DOOM]) // This skill would be way funnier if we could igore this concept, no? 5033 status_change_end(bl,SC_DOOM,-1);//But then people would abuse on WoEs 5034 } 5035 break; 5036 case SC_CURSEWEAKNESS: // Warlock Curse of Weakness removes Impositio Manus [Brain] 5037 if (sc->data[SC_IMPOSITIO]) 5038 status_change_end(bl,SC_IMPOSITIO,-1); 5039 if (sc->data[SC_BLESSING]) //The opposite is also valid, curses cancel blessing [Brain] 5040 status_change_end(bl,SC_BLESSING,-1); 5041 break; 5042 case SC_CURSETONGUES: // Warlock Curse of Tongues removes Suffragium [Brain] 5043 if (sc->data[SC_SUFFRAGIUM]) 5044 status_change_end(bl,SC_SUFFRAGIUM,-1); 5045 if (sc->data[SC_BLESSING]) 5046 status_change_end(bl,SC_BLESSING,-1); 5047 break; 5048 case SC_CURSEEXHAUST: // Warlock Curse of Exhaustion removes angelus [Brain] 5049 if (sc->data[SC_ANGELUS]) 5050 status_change_end(bl,SC_ANGELUS,-1); 5051 case SC_DOOM: 5052 if (sc->data[SC_BLESSING]) 5053 status_change_end(bl,SC_BLESSING,-1); 5054 break; 5055 case SC_IMPOSITIO: // Impositio Manus removes Curse of Weakness [Brain] 5091 5056 if (sc->data[SC_CURSEWEAKNESS]) 5092 status_change_end(bl,SC_CURSEWEAKNESS,-1); 5057 status_change_end(bl,SC_CURSEWEAKNESS,-1); 5058 break; 5059 case SC_SUFFRAGIUM: // Suffragium removes Curse of Tongues [Brain] 5093 5060 if (sc->data[SC_CURSETONGUES]) 5094 status_change_end(bl,SC_CURSETONGUES,-1); 5061 status_change_end(bl,SC_CURSETONGUES,-1); 5062 break; 5063 case SC_ANGELUS: // Angelus removes Curse of Exhaustion [Brain] 5095 5064 if (sc->data[SC_CURSEEXHAUST]) 5096 status_change_end(bl,SC_CURSEEXHAUST,-1); 5097 if (sc->data[SC_DOOM]) // This skill would be way funnier if we could igore this concept, no? 5098 status_change_end(bl,SC_DOOM,-1);//But then people would abuse on WoEs 5099 5100 } 5101 break; 5102 case SC_CURSEWEAKNESS: // Warlock Curse of Weakness removes Impositio Manus [Brain] 5103 if (sc->data[SC_IMPOSITIO]) 5104 status_change_end(bl,SC_IMPOSITIO,-1); 5105 if (sc->data[SC_BLESSING]) //The opposite is also valid, curses cancel blessing [Brain] 5106 status_change_end(bl,SC_BLESSING,-1); 5107 break; 5108 case SC_CURSETONGUES: // Warlock Curse of Tongues removes Suffragium [Brain] 5109 if (sc->data[SC_SUFFRAGIUM]) 5110 status_change_end(bl,SC_SUFFRAGIUM,-1); 5111 if (sc->data[SC_BLESSING]) 5112 status_change_end(bl,SC_BLESSING,-1); 5113 break; 5114 case SC_CURSEEXHAUST: // Warlock Curse of Exhaustion removes angelus [Brain] 5115 if (sc->data[SC_ANGELUS]) 5116 status_change_end(bl,SC_ANGELUS,-1); 5117 case SC_DOOM: 5118 if (sc->data[SC_BLESSING]) 5119 status_change_end(bl,SC_BLESSING,-1); 5120 break; 5121 case SC_IMPOSITIO: // Impositio Manus removes Curse of Weakness [Brain] 5122 if (sc->data[SC_CURSEWEAKNESS]) 5123 status_change_end(bl,SC_CURSEWEAKNESS,-1); 5124 break; 5125 case SC_SUFFRAGIUM: // Suffragium removes Curse of Tongues [Brain] 5126 if (sc->data[SC_CURSETONGUES]) 5127 status_change_end(bl,SC_CURSETONGUES,-1); 5128 break; 5129 case SC_ANGELUS: // Angelus removes Curse of Exhaustion [Brain] 5130 if (sc->data[SC_CURSEEXHAUST]) 5131 status_change_end(bl,SC_CURSEEXHAUST,-1); 5132 break; 5133 5065 status_change_end(bl,SC_CURSEEXHAUST,-1); 5066 break; 5134 5067 case SC_INCREASEAGI: 5135 5068 status_change_end(bl,SC_DECREASEAGI,-1); … … 5150 5083 status_change_end(bl,SC_TWOHANDQUICKEN,-1); 5151 5084 status_change_end(bl,SC_ONEHAND,-1); 5085 // may need tinkering 5152 5086 if(sc->data[SC_LUST]) // Adept Blood Lust [Brain] 5153 status_change_end(bl,SC_LUST,-1);5154 5155 break; 5087 status_change_end(bl,SC_LUST,-1); 5088 break; 5089 //may be in the wrong place. 5156 5090 case SC_ONEHAND: 5157 5091 //Removes the Aspd potion effect, as reported by Vicious. [Skotlex] … … 5211 5145 status_change_end(bl,SC_MADNESSCANCEL,-1); 5212 5146 break; 5213 case SC_FREEZE: //Frozen status ends immolating AND searing status [Brain]5214 if(sc->data[SC_IMMOLATE])5215 status_change_end(bl,SC_IMMOLATE,-1);5216 case SC_IMMOLATE: // Warlock Immolate [Brain]5217 if(sc->data[SC_SEARING]) //Immolating status ends searing status5218 status_change_end(bl,SC_SEARING,-1);5219 break;5220 5221 5147 case SC_MADNESSCANCEL: 5222 5148 status_change_end(bl,SC_ADJUSTMENT,-1); … … 5227 5153 status_change_end(bl,SC_INCREASEAGI,-1); 5228 5154 break; 5229 5155 //Code has changed since this 5156 case SC_FREEZE: //Frozen status ends immolating AND searing status [Brain] 5157 if(sc->data[SC_IMMOLATE]) 5158 status_change_end(bl,SC_IMMOLATE,-1); 5159 case SC_IMMOLATE: // Warlock Immolate [Brain] 5160 if(sc->data[SC_SEARING]) //Immolating status ends searing status 5161 status_change_end(bl,SC_SEARING,-1); 5162 break; 5230 5163 } 5231 5164 … … 5250 5183 case SC_SILENCE: 5251 5184 case SC_CONFUSION: 5185 //Should Edit depending on the one that will work for the modified ver. 5252 5186 case SC_FEAR: //Fear Status by [Brainstorm] 5253 5187 case SC_BLIND: … … 5560 5494 clif_emotion(bl,1); 5561 5495 break; 5562 case SC_FEAR: //Fear Status by [Brainstorm] 5563 clif_emotion(bl,16); // e_wah 5564 if(sd) tick /= 2; 5565 break; 5566 5496 case SC_FEAR: //Fear Status by [Brainstorm] 5497 clif_emotion(bl,16); // e_wah 5498 if(sd) tick /= 2; 5499 break; 5567 5500 case SC_BLEEDING: 5568 5501 val4 = tick/10000; … … 5941 5874 } 5942 5875 break; 5943 5944 case SC_ATFIELD: // AT-Field [Brainstorm] 5945 val2 = 100; // 100% Block chance 5946 val3 = 100; // Dodge 100 attacks total. 5947 val4 = tick/1000; 5948 tick = 1000; 5949 break; 5950 5951 5876 5877 //WHAT RELEVENCE DOES THIS HAVE AT ALL DAMNIT?! 5878 case SC_ATFIELD: // AT-Field [Brainstorm] 5879 val2 = 100; // 100% Block chance 5880 val3 = 100; // Dodge 100 attacks total. 5881 val4 = tick/1000; 5882 tick = 1000; 5883 break; 5884 5885 5952 5886 case SC_COMBO: 5953 5887 { … … 5992 5926 break; 5993 5927 case SC_BLESSING: 5994 if ( status->race!=RC_UNDEAD && status->race!=RC_DEMON)5928 if ((!undead_flag && status->race!=RC_DEMON) || bl->type == BL_PC) 5995 5929 val2 = val1; 5996 5930 else 5997 5931 val2 = 0; //0 -> Half stat. 5998 5932 break; 5999 case SC_REQUIEM: //Necro Requiem and Dark Moon [Brain]6000 case SC_DARKMOON:6001 if (undead_flag || status->race==RC_UNDEAD || status->race==RC_DEMON)6002 val2 = val1; //Demon and Undead get buffed6003 else if(status->race==RC_FORMLESS || status->def_ele==ELE_GHOST || bl->type == BL_PC)6004 {6005 val1 = 0; //No status change for Formless and Ghosts, and non-undead players6006 tick = 0; //Cancel status to not show requiem icon without a reason6007 }6008 else6009 val3 = val1; //Everything else (living) get negative status (requiem only)6010 break;6011 case SC_DECREPIFY: //Necro Decrepify [Brain]6012 val2 = val1;6013 break;5933 case SC_REQUIEM: //Necro Requiem and Dark Moon [Brain] 5934 case SC_DARKMOON: 5935 if (undead_flag || status->race==RC_UNDEAD || status->race==RC_DEMON) 5936 val2 = val1; //Demon and Undead get buffed 5937 else if(status->race==RC_FORMLESS || status->def_ele==ELE_GHOST || bl->type == BL_PC) 5938 { 5939 val1 = 0; //No status change for Formless and Ghosts, and non-undead players 5940 tick = 0; //Cancel status to not show requiem icon without a reason 5941 } 5942 else 5943 val3 = val1; //Everything else (living) get negative status (requiem only) 5944 break; 5945 case SC_DECREPIFY: //Necro Decrepify [Brain] 5946 val2 = val1; 5947 break; 6014 5948 6015 5949 case SC_TRICKDEAD: … … 6053 5987 val2 = 5*val1; //watk increase 6054 5988 break; 6055 case SC_CURSEWEAKNESS: // Warlock Curse of Weakness [Brain] 6056 val2 = 5*val1; //batk/watk decrease 6057 break; 6058 case SC_CURSEEXHAUST: // Warlock Curse of Exhaustion [Brain] 6059 val2 = 2*val1; //def/mdef decrease 6060 break; 6061 case SC_CURSETONGUES: // Warlock Curse of Tongues [Brain] 6062 val2 = 10*val1; //casttime increase 6063 break; 6064 5989 case SC_CURSEWEAKNESS: // Warlock Curse of Weakness [Brain] 5990 val2 = 5*val1; //batk/watk decrease 5991 break; 5992 case SC_CURSEEXHAUST: // Warlock Curse of Exhaustion [Brain] 5993 val2 = 2*val1; //def/mdef decrease 5994 break; 5995 case SC_CURSETONGUES: // Warlock Curse of Tongues [Brain] 5996 val2 = 10*val1; //casttime increase 5997 break; 6065 5998 case SC_MELTDOWN: 6066 5999 val2 = 100*val1; //Chance to break weapon … … 6119 6052 break; 6120 6053 case SC_LUST: // Adept Blood Lust [Brain] 6121 val2 = 5+3*val1; //Aspd/bAtk/wAtk change 6122 val3 = tick>0?tick:1000; //Interval at which HP is drained. 6123 break; 6124 case SC_DEATHPACT: // Necro Death Pact [Brain] 6125 val2 = 5*val1; //Neutral property resistance 6126 val3 = tick>0?tick:10000; //Interval at which HP is drained. 6127 break; 6128 case SC_OVERWHELMING: // Warlock Overwhelming Evil [Brain] 6129 val2 = 2*val1; //matk bonus 6130 val3 = tick>0?tick:1000; //Interval at which SP is drained. 6131 break; 6132 6054 val2 = 5+3*val1; //Aspd/bAtk/wAtk change 6055 val3 = tick>0?tick:1000; //Interval at which HP is drained. 6056 break; 6057 case SC_DEATHPACT: // Necro Death Pact [Brain] 6058 val2 = 5*val1; //Neutral property resistance 6059 val3 = tick>0?tick:10000; //Interval at which HP is drained. 6060 break; 6061 case SC_OVERWHELMING: // Warlock Overwhelming Evil [Brain] 6062 val2 = 2*val1; //matk bonus 6063 val3 = tick>0?tick:1000; //Interval at which SP is drained. 6064 break; 6133 6065 case SC_MINDBREAKER: 6134 6066 val2 = 20*val1; //matk increase. … … 6314 6246 unit_skillcastcancel(bl, 0); 6315 6247 break; 6316 6317 case SC_FEAR: //Fear Status by [Brainstorm] 6318 unit_stop_attack(bl); 6319 break; 6320 6321 6248 case SC_FEAR: //Fear Status by [Brainstorm] 6249 unit_stop_attack(bl); 6250 break; 6322 6251 } 6323 6252 … … 6765 6694 } 6766 6695 break; 6767 case SC_SPLASHER:6768 case SC_DOOM: // Warlock Curse of Doom [Brain] 6769 6696 case SC_SPLASHER: 6697 //Why is Doom here? 6698 case SC_DOOM: // Warlock Curse of Doom [Brain] 6770 6699 { 6771 6700 struct block_list *src=map_id2bl(sce->val3); … … 7135 7064 sc_timer_next(sce->val2+tick, status_change_timer, bl->id, data); 7136 7065 return 0; 7137 7138 7066 case SC_LUST: // Adept Blood Lust [Brain] 7139 if(!status_charge(bl, status->max_hp/100, 0))7140 break; //Not enough HP to continue.7141 sc_timer_next(sce->val3+tick, status_change_timer, bl->id, data);7142 return 0;7067 if(!status_charge(bl, status->max_hp/100, 0)) 7068 break; //Not enough HP to continue. 7069 sc_timer_next(sce->val3+tick, status_change_timer, bl->id, data); 7070 return 0; 7143 7071 case SC_DEATHPACT: // Necro Death Pact [Brain] 7144 // Drains 1 HP every second (status wont kill, but dying will cancel it)7145 status_charge(bl, 1, 0);7146 sc_timer_next(sce->val3+tick, status_change_timer, bl->id, data);7147 return 0;7072 // Drains 1 HP every second (status wont kill, but dying will cancel it) 7073 status_charge(bl, 1, 0); 7074 sc_timer_next(sce->val3+tick, status_change_timer, bl->id, data); 7075 return 0; 7148 7076 case SC_OVERWHELMING: // Warlock Overwhelming Evil [Brain] 7149 if(!status_charge(bl, 0, status->max_sp/100)) 7150 break; //Not enough SP to continue. 7151 sc_timer_next(sce->val3+tick, status_change_timer, bl->id, data); 7152 return 0; 7153 7077 if(!status_charge(bl, 0, status->max_sp/100)) 7078 break; //Not enough SP to continue. 7079 sc_timer_next(sce->val3+tick, status_change_timer, bl->id, data); 7080 return 0; 7154 7081 7155 7082 case SC_CHASEWALK: … … 7387 7314 break; 7388 7315 case SC_DOOM: // Warlock Curse of Doom [Brain] 7389 if((sce->val4 -= 500) > 0) {7390 sc_timer_next(500 + tick, status_change_timer, bl->id, data);7391 return 0;7392 }7393 break;7316 if((sce->val4 -= 500) > 0) { 7317 sc_timer_next(500 + tick, status_change_timer, bl->id, data); 7318 return 0; 7319 } 7320 break; 7394 7321 7395 7322 case SC_MARIONETTE: … … 7560 7487 case SC_MATKFOOD: 7561 7488 case SC_DOOM: // Warlock Curse of Doom [Brain] 7562 7563 7489 continue; 7564 7490