minor improvement on status_calc_<stat> for SL_HIGH soul link, being it does not stack with other status changes.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15622 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
shennetsind 2012-02-19 21:28:51 +00:00
parent 44f4a1ed41
commit d982b4534b

View File

@ -3658,6 +3658,8 @@ static unsigned short status_calc_str(struct block_list *bl, struct status_chang
if(!sc || !sc->count) if(!sc || !sc->count)
return cap_value(str,0,USHRT_MAX); return cap_value(str,0,USHRT_MAX);
if(sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_HIGH && str < 50)
return 50;
if(sc->data[SC_INCALLSTATUS]) if(sc->data[SC_INCALLSTATUS])
str += sc->data[SC_INCALLSTATUS]->val1; str += sc->data[SC_INCALLSTATUS]->val1;
if(sc->data[SC_INCSTR]) if(sc->data[SC_INCSTR])
@ -3688,8 +3690,6 @@ static unsigned short status_calc_str(struct block_list *bl, struct status_chang
str -= ((sc->data[SC_MARIONETTE]->val3)>>16)&0xFF; str -= ((sc->data[SC_MARIONETTE]->val3)>>16)&0xFF;
if(sc->data[SC_MARIONETTE2]) if(sc->data[SC_MARIONETTE2])
str += ((sc->data[SC_MARIONETTE2]->val3)>>16)&0xFF; str += ((sc->data[SC_MARIONETTE2]->val3)>>16)&0xFF;
if(sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_HIGH && str < 50)
str = 50;
if(sc->data[SC_GIANTGROWTH]) if(sc->data[SC_GIANTGROWTH])
str += 30; str += 30;
if(sc->data[SC_HARMONIZE]) if(sc->data[SC_HARMONIZE])
@ -3709,6 +3709,8 @@ static unsigned short status_calc_agi(struct block_list *bl, struct status_chang
if(!sc || !sc->count) if(!sc || !sc->count)
return cap_value(agi,0,USHRT_MAX); return cap_value(agi,0,USHRT_MAX);
if(sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_HIGH && agi < 50)
return 50;
if(sc->data[SC_CONCENTRATE] && !sc->data[SC_QUAGMIRE]) if(sc->data[SC_CONCENTRATE] && !sc->data[SC_QUAGMIRE])
agi += (agi-sc->data[SC_CONCENTRATE]->val3)*sc->data[SC_CONCENTRATE]->val2/100; agi += (agi-sc->data[SC_CONCENTRATE]->val3)*sc->data[SC_CONCENTRATE]->val2/100;
if(sc->data[SC_INCALLSTATUS]) if(sc->data[SC_INCALLSTATUS])
@ -3737,8 +3739,6 @@ static unsigned short status_calc_agi(struct block_list *bl, struct status_chang
agi -= ((sc->data[SC_MARIONETTE]->val3)>>8)&0xFF; agi -= ((sc->data[SC_MARIONETTE]->val3)>>8)&0xFF;
if(sc->data[SC_MARIONETTE2]) if(sc->data[SC_MARIONETTE2])
agi += ((sc->data[SC_MARIONETTE2]->val3)>>8)&0xFF; agi += ((sc->data[SC_MARIONETTE2]->val3)>>8)&0xFF;
if(sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_HIGH && agi < 50)
agi = 50;
if(sc->data[SC_ADORAMUS]) if(sc->data[SC_ADORAMUS])
agi -= sc->data[SC_ADORAMUS]->val2; agi -= sc->data[SC_ADORAMUS]->val2;
if(sc->data[SC_HARMONIZE]) if(sc->data[SC_HARMONIZE])
@ -3759,6 +3759,8 @@ static unsigned short status_calc_vit(struct block_list *bl, struct status_chang
if(!sc || !sc->count) if(!sc || !sc->count)
return cap_value(vit,0,USHRT_MAX); return cap_value(vit,0,USHRT_MAX);
if(sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_HIGH && vit < 50)
return 50;
if(sc->data[SC_INCALLSTATUS]) if(sc->data[SC_INCALLSTATUS])
vit += sc->data[SC_INCALLSTATUS]->val1; vit += sc->data[SC_INCALLSTATUS]->val1;
if(sc->data[SC_INCVIT]) if(sc->data[SC_INCVIT])
@ -3779,8 +3781,6 @@ static unsigned short status_calc_vit(struct block_list *bl, struct status_chang
vit -= sc->data[SC_MARIONETTE]->val3&0xFF; vit -= sc->data[SC_MARIONETTE]->val3&0xFF;
if(sc->data[SC_MARIONETTE2]) if(sc->data[SC_MARIONETTE2])
vit += sc->data[SC_MARIONETTE2]->val3&0xFF; vit += sc->data[SC_MARIONETTE2]->val3&0xFF;
if(sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_HIGH && vit < 50)
vit = 50;
if(sc->data[SC_LAUDAAGNUS]) if(sc->data[SC_LAUDAAGNUS])
vit += 4 + sc->data[SC_LAUDAAGNUS]->val1; vit += 4 + sc->data[SC_LAUDAAGNUS]->val1;
if(sc->data[SC_HARMONIZE]) if(sc->data[SC_HARMONIZE])
@ -3801,6 +3801,8 @@ static unsigned short status_calc_int(struct block_list *bl, struct status_chang
if(!sc || !sc->count) if(!sc || !sc->count)
return cap_value(int_,0,USHRT_MAX); return cap_value(int_,0,USHRT_MAX);
if(sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_HIGH && int_ < 50)
return 50;
if(sc->data[SC_INCALLSTATUS]) if(sc->data[SC_INCALLSTATUS])
int_ += sc->data[SC_INCALLSTATUS]->val1; int_ += sc->data[SC_INCALLSTATUS]->val1;
if(sc->data[SC_INCINT]) if(sc->data[SC_INCINT])
@ -3829,8 +3831,6 @@ static unsigned short status_calc_int(struct block_list *bl, struct status_chang
int_ -= ((sc->data[SC_MARIONETTE]->val4)>>16)&0xFF; int_ -= ((sc->data[SC_MARIONETTE]->val4)>>16)&0xFF;
if(sc->data[SC_MARIONETTE2]) if(sc->data[SC_MARIONETTE2])
int_ += ((sc->data[SC_MARIONETTE2]->val4)>>16)&0xFF; int_ += ((sc->data[SC_MARIONETTE2]->val4)>>16)&0xFF;
if(sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_HIGH && int_ < 50)
int_ = 50;
if(sc->data[SC_MANDRAGORA]) if(sc->data[SC_MANDRAGORA])
int_ -= 5 + 5 * sc->data[SC_MANDRAGORA]->val1; int_ -= 5 + 5 * sc->data[SC_MANDRAGORA]->val1;
if(sc->data[SC__STRIPACCESSORY]) if(sc->data[SC__STRIPACCESSORY])
@ -3852,9 +3852,10 @@ static unsigned short status_calc_dex(struct block_list *bl, struct status_chang
if(!sc || !sc->count) if(!sc || !sc->count)
return cap_value(dex,0,USHRT_MAX); return cap_value(dex,0,USHRT_MAX);
if(sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_HIGH && dex < 50)
return 50;
if(sc->data[SC_CONCENTRATE] && !sc->data[SC_QUAGMIRE]) if(sc->data[SC_CONCENTRATE] && !sc->data[SC_QUAGMIRE])
dex += (dex-sc->data[SC_CONCENTRATE]->val4)*sc->data[SC_CONCENTRATE]->val2/100; dex += (dex-sc->data[SC_CONCENTRATE]->val4)*sc->data[SC_CONCENTRATE]->val2/100;
if(sc->data[SC_INCALLSTATUS]) if(sc->data[SC_INCALLSTATUS])
dex += sc->data[SC_INCALLSTATUS]->val1; dex += sc->data[SC_INCALLSTATUS]->val1;
if(sc->data[SC_INCDEX]) if(sc->data[SC_INCDEX])
@ -3883,8 +3884,6 @@ static unsigned short status_calc_dex(struct block_list *bl, struct status_chang
dex -= ((sc->data[SC_MARIONETTE]->val4)>>8)&0xFF; dex -= ((sc->data[SC_MARIONETTE]->val4)>>8)&0xFF;
if(sc->data[SC_MARIONETTE2]) if(sc->data[SC_MARIONETTE2])
dex += ((sc->data[SC_MARIONETTE2]->val4)>>8)&0xFF; dex += ((sc->data[SC_MARIONETTE2]->val4)>>8)&0xFF;
if(sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_HIGH && dex < 50)
dex = 50;
if(sc->data[SC__STRIPACCESSORY]) if(sc->data[SC__STRIPACCESSORY])
dex -= dex * sc->data[SC__STRIPACCESSORY]->val2 / 100; dex -= dex * sc->data[SC__STRIPACCESSORY]->val2 / 100;
if(sc->data[SC_HARMONIZE]) if(sc->data[SC_HARMONIZE])
@ -3906,6 +3905,8 @@ static unsigned short status_calc_luk(struct block_list *bl, struct status_chang
if(sc->data[SC_CURSE]) if(sc->data[SC_CURSE])
return 0; return 0;
if(sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_HIGH && luk < 50)
return 50;
if(sc->data[SC_INCALLSTATUS]) if(sc->data[SC_INCALLSTATUS])
luk += sc->data[SC_INCALLSTATUS]->val1; luk += sc->data[SC_INCALLSTATUS]->val1;
if(sc->data[SC_INCLUK]) if(sc->data[SC_INCLUK])
@ -3922,8 +3923,6 @@ static unsigned short status_calc_luk(struct block_list *bl, struct status_chang
luk -= sc->data[SC_MARIONETTE]->val4&0xFF; luk -= sc->data[SC_MARIONETTE]->val4&0xFF;
if(sc->data[SC_MARIONETTE2]) if(sc->data[SC_MARIONETTE2])
luk += sc->data[SC_MARIONETTE2]->val4&0xFF; luk += sc->data[SC_MARIONETTE2]->val4&0xFF;
if(sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_HIGH && luk < 50)
luk = 50;
if(sc->data[SC_LAUDARAMUS]) if(sc->data[SC_LAUDARAMUS])
luk += 4 + sc->data[SC_LAUDARAMUS]->val1; luk += 4 + sc->data[SC_LAUDARAMUS]->val1;
if(sc->data[SC__STRIPACCESSORY]) if(sc->data[SC__STRIPACCESSORY])