summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-06-07 15:27:31 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-06-07 15:27:31 +0000
commite84ac0585ad0164b228684372e16c71c07ccf6df (patch)
tree936bba2502e0ee4177d94a2c368a1d1d6cc87e2b /src
parent7825f436c4b59d2a38a46a208f7d604c7be21dbe (diff)
downloadhercules-e84ac0585ad0164b228684372e16c71c07ccf6df.tar.gz
hercules-e84ac0585ad0164b228684372e16c71c07ccf6df.tar.bz2
hercules-e84ac0585ad0164b228684372e16c71c07ccf6df.tar.xz
hercules-e84ac0585ad0164b228684372e16c71c07ccf6df.zip
- Adjusted status resistances and durations taking as base Viccious's info from the kro guidebook.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7034 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src')
-rw-r--r--src/map/status.c57
1 files changed, 32 insertions, 25 deletions
diff --git a/src/map/status.c b/src/map/status.c
index e8af8aa6b..afc1f2290 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -3828,17 +3828,6 @@ int status_get_sc_def(struct block_list *bl, int type)
status = status_get_status_data(bl);
switch (type)
{
- //Note that stats that are *100/3 were simplified to *33
- case SC_STONE:
- case SC_FREEZE:
- case SC_DECREASEAGI:
- case SC_COMA:
- sc_def = 300 +100*status->mdef +10*status->luk;
- break;
- case SC_SLEEP:
- case SC_CONFUSION:
- sc_def = 300 +100*status->int_ +10*status->luk;
- break;
case SC_STUN:
case SC_POISON:
case SC_DPOISON:
@@ -3846,11 +3835,26 @@ int status_get_sc_def(struct block_list *bl, int type)
case SC_BLEEDING:
sc_def = 300 +100*status->vit +10*status->luk;
break;
- case SC_BLIND:
- sc_def = 300 +100*status->int_ +10*status->vit;
+ case SC_SLEEP:
+ sc_def = 300 +100*status->int_ +10*status->luk;
+ break;
+ case SC_STONE:
+ case SC_FREEZE:
+ case SC_DECREASEAGI:
+ case SC_COMA:
+ sc_def = 300 +100*status->mdef +10*status->luk;
break;
case SC_CURSE:
- sc_def = 300 +100*status->luk +10*status->vit;
+ if (status->luk > status_get_lv(bl))
+ sc_def = 10000; //Special property: inmunity when luk is greater than level
+ else
+ sc_def = 300 +100*status->luk;
+ break;
+ case SC_BLIND: //TODO: These 50/50 factors are guessed. Need to find actual value.
+ sc_def = 300 +50*status->vit +50*status->int_ +10*status->luk;
+ break;
+ case SC_CONFUSION:
+ sc_def = 300 +50*status->str +50*status->int_ +10*status->luk;
break;
default:
return 0; //Effect that cannot be reduced? Likely a buff.
@@ -3903,25 +3907,28 @@ int status_get_sc_tick(struct block_list *bl, int type, int tick)
if(sd && pc_checkskill(sd,BS_HILTBINDING)>0)
tick += tick / 10;
break;
- case SC_STONE:
- rate = -200*status->mdef;
- break;
- case SC_FREEZE:
- rate = 100*status->mdef;
- break;
- case SC_STUN:
case SC_DPOISON:
case SC_POISON:
- rate = 100*status->vit + 20*status->luk;
- break;
+ case SC_STUN:
case SC_BLEEDING:
case SC_SILENCE:
- case SC_CONFUSION:
case SC_CURSE:
rate = 100*status->vit;
break;
+ case SC_SLEEP:
+ rate = 100*status->int_;
+ break;
+ case SC_STONE:
+ rate = -200*status->mdef;
+ break;
+ case SC_FREEZE:
+ rate = 100*status->mdef;
+ break;
case SC_BLIND:
- rate = 10*status_get_lv(bl) + 7*status->int_;
+ rate = 50*status->vit +50*status->int_;
+ break;
+ case SC_CONFUSION:
+ rate = 50*status->str +50*status->int_;
break;
case SC_SWOO:
if (status->mode&MD_BOSS)