Changeset 24 for src/map/status.c

Show
Ignore:
Timestamp:
07/07/08 22:48:26 (17 years ago)
Author:
jinshiro
Message:
 
Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/map/status.c

    r22 r24  
    130130        set_sc( NPC_SILENCEATTACK , SC_SILENCE   , SI_BLANK    , SCB_NONE ); 
    131131        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] 
    133134        set_sc( NPC_BLINDATTACK   , SC_BLIND     , SI_BLANK    , SCB_HIT|SCB_FLEE ); 
    134135        set_sc( LK_HEADCRUSH      , SC_BLEEDING  , SI_BLEEDING , SCB_REGEN ); 
     
    408409        set_sc( GD_BATTLEORDER       , SC_BATTLEORDERS    , SI_BLANK           , SCB_STR|SCB_INT|SCB_DEX ); 
    409410        set_sc( GD_REGENERATION      , SC_REGENERATION    , SI_BLANK           , SCB_REGEN ); 
    410  
     411        //Are we sure about this? 
    411412        // 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); 
    423423         
    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          
    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); 
    437437 
    438438 
     
    675675                        status_change_end(target,SC_WINKCHARM,-1); 
    676676                        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); 
    680681                        status_change_end(target,SC_TRICKDEAD,-1); 
    681682                        status_change_end(target,SC_HIDING,-1); 
     
    689690                                        status_change_end(target, SC_ENDURE, -1); 
    690691                        } 
     692                        //May also work here... MAYBE 
     693//                      if (sc->data[SC_FEAR]) //Fear Status by [Brainstorm] 
     694//                              status_change_end(target, SC_FEAR, -1); 
    691695                        if ((sce=sc->data[SC_GRAVITATION]) && sce->val3 == BCT_SELF) 
    692696                        { 
     
    12261230} 
    12271231 
    1228 void status_calc_bl(struct block_list *bl, unsigned long flag); 
    1229  
    12301232// Basic ASPD value 
    12311233int status_base_amotion_pc(struct map_session_data* sd, struct status_data* status) 
     
    13721374        if (md->master_id && md->special_state.ai>1) 
    13731375                flag|=16; 
    1374  
     1376// a flag o_O 
    13751377        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] 
    13791379        if (!flag) 
    13801380        { //No special status required. 
     
    14931493                status->aspd_rate -= 100*md->guardian_data->guardup_lv; 
    14941494        } 
     1495//Gentlemen, prepare to error your ass off! =O Unless I fixed that thing wayyyy up thar ^ 
    14951496        //Summon Bonus from Skills [Brainstorm] 
    14961497        if(flag&32) 
    14971498        { 
    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); 
    15091510         
    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        } 
    15591558        //Initial battle status 
    15601559        if (!first) 
     
    17451744        sd->delayrate=100; 
    17461745        sd->dsprate=100; 
    1747         sd->speed_rate = 100; 
    17481746        sd->hprecov_rate = 100; 
    17491747        sd->sprecov_rate = 100; 
     
    18041802        status->aspd_rate = 1000; 
    18051803        status->ele_lv = 1; 
     1804//      status->race = RC_DEMIHUMAN; 
    18061805        status->race = RC_DEMIHUMAN;// This define players default race to DEMIHUMAN [Brain] 
    18071806        if(pc_checkskill(sd,NC_PHYLACTERY)>0) status->def_ele = ELE_UNDEAD; //Phylactery turns you UNDEAD 1 instead of NEUTRAL 
     1807 
    18081808 
    18091809        //zero up structures... 
     
    18601860                + sizeof(sd->crit_atk_rate) 
    18611861                + sizeof(sd->classchange) 
     1862                + sizeof(sd->speed_rate) 
    18621863                + sizeof(sd->speed_add_rate) 
    18631864                + sizeof(sd->aspd_add) 
     
    20422043        sd->perfect_hit += sd->perfect_hit_add; 
    20432044        sd->splash_range += sd->splash_add_range; 
    2044         if(sd->speed_add_rate)   
    2045                 sd->speed_rate += sd->speed_add_rate; 
    20462045 
    20472046        // Damage modifiers from weapon type 
     
    20962095                status->dex += skill; 
    20972096        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 
    21002098 
    21012099        // Bonuses from cards and equipment as well as base stat, remember to avoid overflows. 
     
    21362134                status->max_hp += skill*200; 
    21372135        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; 
    21402137 
    21412138        // Apply relative modifiers from equipment 
     
    21682165                status->max_sp += status->max_sp * 2*skill/100; 
    21692166        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; 
    21732168        // Apply relative modifiers from equipment 
    21742169        if(sd->sprate < 0) 
     
    22632258                } 
    22642259        } 
     2260        //right place? 
    22652261        if((skill=pc_checkskill(sd,AD_FERVOR))>0) // Adept Unholy Fevor [Brain] 
    2266         status->hit += skill*2; 
     2262                status->hit += skill*2; 
    22672263 
    22682264// ----- FLEE CALCULATION ----- 
     
    22742270                status->flee += (skill*3)>>1; 
    22752271        if((skill=pc_checkskill(sd,AD_FERVOR))>0) // Adept Unholy Fevor [Brain] 
    2276         status->flee += skill*2; 
     2272                status->flee += skill*2; 
    22772273 
    22782274// ----- EQUIPMENT-DEF CALCULATION ----- 
     
    23012297                status->mdef = cap_value(i, CHAR_MIN, CHAR_MAX); 
    23022298        } 
     2299        //AMIDOINITRITE? 
    23032300        // Absolute modifiers from passive skills 
    23042301        if((skill=pc_checkskill(sd,AD_DARKFAITH))>0) // Adept Dark Faith [Brain] 
    2305         status->mdef += 1*skill; 
     2302                status->mdef += 1*skill; 
    23062303 
    23072304 
     
    23142311// ----- WALKING SPEED CALCULATION ----- 
    23152312 
    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; 
    23202315 
    23212316        // Relative modifiers from passive skills 
     
    24112406                sd->subrace[RC_DRAGON]+=skill; 
    24122407        } 
    2413  
     2408// Racial slurs =O 
    24142409        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; 
    24162411        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; 
    24212416        } 
    24222417        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 
    24252421 
    24262422 
     
    24482444                } 
    24492445                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; 
    24522447                if(sc->data[SC_ARMOR_ELEMENT]) 
    24532448                {       //This status change should grant card-type elemental resist. 
     
    26052600        status->rhw.atk2 = status->str + hom->level; 
    26062601 
    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  
    26212602        status->aspd_rate = 1000; 
    26222603 
     
    27852766                || sc->data[SC_TRICKDEAD] 
    27862767                || 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] 
    27882769                || sc->data[SC_DEATHPACT]       // Necro Death Pact 
    27892770 
     
    28942875                if(status->speed < battle_config.max_walk_speed) 
    28952876                        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 
    29072879        if(flag&(SCB_ASPD|SCB_AGI|SCB_DEX)) { 
    29082880                flag|=SCB_ASPD; 
     
    29162888 
    29172889                status->amotion = cap_value(skill,battle_config.max_aspd,2000); 
    2918  
    29192890                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  
    29302891        } 
    29312892 
     
    35673528                batk += 100; 
    35683529        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; 
    35703531        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; 
    35723533        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; 
    35763536        return (unsigned short)cap_value(batk,0,USHRT_MAX); 
    35773537} 
     
    36083568                } 
    36093569        } 
    3610         if(sc->data[SC_BLOODLUST]) 
     3570        if(sc->data[SC_BLOODLUST])//WTF?! 
    36113571                watk += watk * sc->data[SC_BLOODLUST]->val2/100; 
    36123572        if(sc->data[SC_FLEET]) 
     
    36173577                watk -= watk * sc->data[SC_STRIPWEAPON]->val2/100; 
    36183578        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; 
    36203580        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        }//???? 
    36263586        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; 
    36283588        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; 
    36323591 
    36333592        return (unsigned short)cap_value(watk,0,USHRT_MAX); 
     
    36503609                matk += matk * sc->data[SC_INCMATKRATE]->val1/100; 
    36513610        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; 
    36543612 
    36553613        return (unsigned short)cap_value(matk,0,USHRT_MAX); 
     
    37003658                hit += 20; // RockmanEXE; changed based on updated [Reddozen] 
    37013659        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        } 
    37083665         
    37093666        return (short)cap_value(hit,1,SHRT_MAX); 
     
    37473704                flee += 10 + sc->data[SC_SPEED]->val1 * 10 ; 
    37483705        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        } 
    37553711 
    37563712        return (short)cap_value(flee,1,SHRT_MAX); 
     
    38123768                def -= def * (sc->data[SC_FLING]->val2)/100; 
    38133769        if(sc->data[SC_SUFFER]) // Necro Power Word: Suffer [Brain] 
    3814         def <<=1; // -25% def 
     3770                def <<=1; // -25% def 
    38153771        if (sc->data[SC_CURSEEXHAUST]) // Warlock Curse of Exhaustion [Brain] 
    3816         def -= sc->data[SC_CURSEEXHAUST]->val2; 
     3772                def -= sc->data[SC_CURSEEXHAUST]->val2; 
    38173773        if (sc->data[SC_OVERWHELMING]) // Warlock Overwhelming Evil [Brain] 
    3818          def += sc->data[SC_OVERWHELMING]->val1; 
     3774                def += sc->data[SC_OVERWHELMING]->val1; 
    38193775 
    38203776 
     
    38533809                def2 -= def2 * (sc->data[SC_FLING]->val3)/100; 
    38543810        if(sc->data[SC_SUFFER]) // Necro Power Word: Suffer [Brain] 
    3855         def2 -= def2 * 25/100; // -25% def 
     3811                def2 -= def2 * 25/100; // -25% def 
    38563812        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; 
    38593815 
    38603816 
     
    38863842                mdef += 1; //Skill info says it adds a fixed 1 Mdef point. 
    38873843        if(sc->data[SC_AGONY])   // Warlock Power Word: Agony [Brain] 
    3888         mdef -= 25*mdef/100; // -25% mdef 
     3844                mdef -= 25*mdef/100; // -25% mdef 
    38893845        if (sc->data[SC_CURSEEXHAUST]) // Warlock Curse of Exhaustion [Brain] 
    3890         mdef -= sc->data[SC_CURSEEXHAUST]->val2; 
     3846                mdef -= sc->data[SC_CURSEEXHAUST]->val2; 
    38913847        if (sc->data[SC_OVERWHELMING]) // Warlock Overwhelming Evil [Brain] 
    3892          mdef += sc->data[SC_OVERWHELMING]->val1; 
    3893  
     3848                mdef += sc->data[SC_OVERWHELMING]->val1; 
    38943849 
    38953850        return (signed char)cap_value(mdef,CHAR_MIN,CHAR_MAX); 
     
    39063861                mdef2 -= mdef2 * sc->data[SC_MINDBREAKER]->val3/100; 
    39073862        if(sc->data[SC_AGONY])   // Warlock Power Word: Agony [Brain] 
    3908         mdef2 -= mdef2 * 25/100; // -25% mdef 
     3863                mdef2 -= mdef2 * 25/100; // -25% mdef 
    39093864        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; 
    39123867 
    39133868 
     
    39173872static unsigned short status_calc_speed(struct block_list *bl, struct status_change *sc, int speed) 
    39183873{ 
     3874        TBL_PC* sd = BL_CAST(BL_PC, bl); 
     3875 
    39193876        //Default speed coming in means there's no speed_rate adjustments.  
    39203877        int new_speed = speed; 
    39213878        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; 
    39223882 
    39233883        if(!sc || !sc->count) 
     
    39643924                        else if(sc->data[SC_WINDWALK]) 
    39653925                                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; 
    39683928 
    39693929                } 
     
    40113971                speed = speed * 100/75; 
    40123972        if(sc->data[SC_DECREPIFY]) // Necromancer Decrepify [Brain] 
    4013         speed = speed * 100/75; //-25% walkspeed 
    4014  
     3973                speed = speed * 100/75; //-25% walkspeed 
    40153974         
    40163975        return (short)cap_value(speed,10,USHRT_MAX); 
     
    40834042                else if(sc->data[SC_MADNESSCANCEL]) 
    40844043                        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; 
    40874046 
    40884047        } 
     
    41804139                return sc->data[SC_ELEMENTALCHANGE]->val2; 
    41814140        if( sc->data[SC_DEATHPACT]) // Necro Death Pact [Brain] 
    4182         return ELE_UNDEAD; 
     4141                return ELE_UNDEAD; 
    41834142        if( sc->data[SC_OVERWHELMING]) // Warlock Overwhelming Evil [Brain] 
    4184         return ELE_DARK; 
    4185  
     4143                return ELE_DARK; 
    41864144        return (unsigned char)cap_value(element,0,UCHAR_MAX); 
    41874145} 
     
    42034161                return sc->data[SC_ELEMENTALCHANGE]->val1; 
    42044162        if( sc->data[SC_DEATHPACT]) // Necro Death Pact [Brain] 
    4205         return 1; 
     4163                return 1; 
    42064164        if( sc->data[SC_OVERWHELMING]) // Warlock Overwhelming Evil [Brain] 
    4207         return 1; 
     4165                return 1; 
    42084166 
    42094167 
     
    42504208        } 
    42514209        return cap_value(mode,0,USHRT_MAX); 
    4252 } 
    4253  
    4254 /*========================================== 
    4255  * Quick swap of adelay/speed when starting ending SA_FREECAST 
    4256  *------------------------------------------*/ 
    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); 
    42764210} 
    42774211 
     
    49454879        case SC_ASSNCROS: 
    49464880        case SC_LUST: // Adept Blood Lust [Brain] 
    4947  
    49484881                if (sc->data[SC_QUAGMIRE]) 
    49494882                        return 0; 
     
    50494982                 switch (type) { 
    50504983                        case SC_BLESSING: 
    5051                           if (status->race!=RC_UNDEAD && status->race!=RC_DEMON) 
     4984                          if (!undead_flag && status->race!=RC_DEMON) 
    50524985                                  break; 
    50534986                        case SC_QUAGMIRE: 
     
    50634996                        case SC_RICHMANKIM: 
    50644997                        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? 
    50745008                        case SC_FOGWALL: 
    50755009                                return 0; 
     
    50835017                //TO-DO Blessing and Agi up should do 1 damage against players on Undead Status, even on PvM 
    50845018                //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) { 
    50865020                        if (sc->data[SC_CURSE]) 
    50875021                                status_change_end(bl,SC_CURSE,-1); 
    50885022                        if (sc->data[SC_STONE] && sc->opt1 == OPT1_STONE) 
    50895023                                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] 
    50915056                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] 
    50935060                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] 
    50955064                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; 
    51345067        case SC_INCREASEAGI: 
    51355068                status_change_end(bl,SC_DECREASEAGI,-1); 
     
    51505083                status_change_end(bl,SC_TWOHANDQUICKEN,-1); 
    51515084                status_change_end(bl,SC_ONEHAND,-1); 
     5085// may need tinkering 
    51525086                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. 
    51565090        case SC_ONEHAND: 
    51575091                //Removes the Aspd potion effect, as reported by Vicious. [Skotlex] 
     
    52115145                status_change_end(bl,SC_MADNESSCANCEL,-1); 
    52125146                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 status 
    5218                 status_change_end(bl,SC_SEARING,-1); 
    5219         break; 
    5220  
    52215147        case SC_MADNESSCANCEL: 
    52225148                status_change_end(bl,SC_ADJUSTMENT,-1); 
     
    52275153                status_change_end(bl,SC_INCREASEAGI,-1); 
    52285154                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; 
    52305163        } 
    52315164 
     
    52505183                        case SC_SILENCE: 
    52515184                        case SC_CONFUSION: 
     5185   //Should Edit depending on the one that will work for the modified ver. 
    52525186                        case SC_FEAR: //Fear Status by [Brainstorm] 
    52535187                        case SC_BLIND: 
     
    55605494                        clif_emotion(bl,1); 
    55615495                        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; 
    55675500                case SC_BLEEDING: 
    55685501                        val4 = tick/10000; 
     
    59415874                        } 
    59425875                        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                         
    59525886                case SC_COMBO: 
    59535887                { 
     
    59925926                        break; 
    59935927                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) 
    59955929                                val2 = val1; 
    59965930                        else 
    59975931                                val2 = 0; //0 -> Half stat. 
    59985932                        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 buffed 
    6003                 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 players 
    6006                 tick = 0; //Cancel status to not show requiem icon without a reason 
    6007                 } 
    6008                 else 
    6009                 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; 
    60145948 
    60155949                case SC_TRICKDEAD: 
     
    60535987                        val2 = 5*val1; //watk increase 
    60545988                        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; 
    60655998                case SC_MELTDOWN: 
    60665999                        val2 = 100*val1; //Chance to break weapon 
     
    61196052                        break; 
    61206053                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; 
    61336065                case SC_MINDBREAKER: 
    61346066                        val2 = 20*val1; //matk increase. 
     
    63146246                                unit_skillcastcancel(bl, 0); 
    63156247                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; 
    63226251        } 
    63236252 
     
    67656694                        } 
    67666695                        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]   
    67706699                        { 
    67716700                                struct block_list *src=map_id2bl(sce->val3); 
     
    71357064                sc_timer_next(sce->val2+tick, status_change_timer, bl->id, data); 
    71367065                return 0; 
    7137  
    71387066        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; 
    71437071        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; 
    71487076        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;  
    71547081 
    71557082        case SC_CHASEWALK: 
     
    73877314                break; 
    73887315        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; 
    73947321 
    73957322        case SC_MARIONETTE: 
     
    75607487                        case SC_MATKFOOD: 
    75617488                        case SC_DOOM: // Warlock Curse of Doom [Brain] 
    7562  
    75637489                                continue; 
    75647490