summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-08-17 00:38:19 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-08-17 00:38:19 +0000
commit73c59399d732b6d5c88ccbf4fcb9ced38e777aca (patch)
treede587f8eb627742ff567c38c5f6053746e1fbfdf /src/map
parent9396ca72d5d9c8b20a6badedfc61b6da402ff67a (diff)
downloadhercules-73c59399d732b6d5c88ccbf4fcb9ced38e777aca.tar.gz
hercules-73c59399d732b6d5c88ccbf4fcb9ced38e777aca.tar.bz2
hercules-73c59399d732b6d5c88ccbf4fcb9ced38e777aca.tar.xz
hercules-73c59399d732b6d5c88ccbf4fcb9ced38e777aca.zip
- Fixed being unable to recast Adrenaline Rush to reset the duration timers.
- Added structure regen_data to handle unified regen logic for bl objects. Eh... this is wip, so it isn't used yet, just the preliminar structure is there... (somehow I lost all other progress I had done on it x.x) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8323 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map')
-rw-r--r--src/map/map.h28
-rw-r--r--src/map/status.c12
2 files changed, 34 insertions, 6 deletions
diff --git a/src/map/map.h b/src/map/map.h
index f2403ec1e..ee8a9836e 100644
--- a/src/map/map.h
+++ b/src/map/map.h
@@ -465,6 +465,34 @@ struct view_data {
unsigned dead_sit : 2;
};
+struct regen_data {
+
+ int flag; //Marks what stuff you may heal or not.
+ unsigned int
+ hp_tick, //tick accumulation before healing.
+ sp_tick,
+ shp_tick,
+ ssp_tick;
+
+ unsigned short
+ hp, //natural heal
+ sp,
+ s_hp, //natural heal from skills
+ s_sp;
+
+ unsigned char //Skill related regen rates.
+ hpfactor,
+ spfactor,
+ shpfactor,
+ sspfactor;
+
+ struct {
+ unsigned walk_regen :1; //Can you regen even when walking?
+ unsigned overweight :1; //Block regen due to overweight.
+ unsigned block :2; //Block regen flag (1: Hp, 2: Sp)
+ } state;
+};
+
struct party_member_data {
struct map_session_data *sd;
unsigned int hp; //For HP,x,y refreshing.
diff --git a/src/map/status.c b/src/map/status.c
index 57eb86d7e..a966849a0 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -3509,12 +3509,12 @@ static short status_calc_aspd_rate(struct block_list *bl, struct status_change *
max = sc->data[SC_ONEHAND].val2;
if(sc->data[SC_ADRENALINE2].timer!=-1 &&
- max < sc->data[SC_ADRENALINE2].val2)
- max = sc->data[SC_ADRENALINE2].val2;
+ max < sc->data[SC_ADRENALINE2].val3)
+ max = sc->data[SC_ADRENALINE2].val3;
if(sc->data[SC_ADRENALINE].timer!=-1 &&
- max < sc->data[SC_ADRENALINE].val2)
- max = sc->data[SC_ADRENALINE].val2;
+ max < sc->data[SC_ADRENALINE].val3)
+ max = sc->data[SC_ADRENALINE].val3;
if(sc->data[SC_SPEARQUICKEN].timer!=-1 &&
max < sc->data[SC_SPEARQUICKEN].val2)
@@ -5304,9 +5304,9 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val
case SC_ADRENALINE2:
case SC_ADRENALINE:
if (val2 || !battle_config.party_skill_penalty)
- val2 = 300;
+ val3 = 300;
else
- val2 = 200;
+ val3 = 200;
break;
case SC_CONCENTRATION:
val2 = 5*val1; //Batk/Watk Increase