diff options
author | Fate <fate-tmw@googlemail.com> | 2008-11-23 23:30:51 -0700 |
---|---|---|
committer | Fate <fate-tmw@googlemail.com> | 2008-11-23 23:30:51 -0700 |
commit | 5bb68970dece3052f5bf82d53bec8c6eeac60e15 (patch) | |
tree | c1ca7cf0d8f5f88f35b1bccdaf844e716066d62c /src/map/pc.c | |
parent | 8678e872c4a8f5ce67f135bf2f5e6b44b4ba2997 (diff) | |
download | tmwa-5bb68970dece3052f5bf82d53bec8c6eeac60e15.tar.gz tmwa-5bb68970dece3052f5bf82d53bec8c6eeac60e15.tar.bz2 tmwa-5bb68970dece3052f5bf82d53bec8c6eeac60e15.tar.xz tmwa-5bb68970dece3052f5bf82d53bec8c6eeac60e15.zip |
Magic: looping over spells, spell field access, is-equipped check
Diffstat (limited to 'src/map/pc.c')
-rw-r--r-- | src/map/pc.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/map/pc.c b/src/map/pc.c index 353f60c..62e2cd5 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -1525,6 +1525,12 @@ int pc_calcstatus(struct map_session_data* sd,int first) sd->matk2 = sd->matk1; sd->matk1 = temp; } + // [Fate] New tmw magic system + sd->matk1 += sd->status.base_level + sd->spellpower_bonus_current; + sd->matk2 = 0; + if (sd->matk1 < 0) + sd->matk1 = 0; + sd->hit += sd->paramc[4] + sd->status.base_level; sd->flee += sd->paramc[1] + sd->status.base_level; sd->def2 += sd->paramc[2]; @@ -7125,10 +7131,14 @@ static int pc_natural_heal_sub(struct map_session_data *sd,va_list ap) { nullpo_retr(0, sd); // Hijack this callback: Adjust spellpower bonus - if (sd->spellpower_bonus_target < sd->spellpower_bonus_current) + if (sd->spellpower_bonus_target < sd->spellpower_bonus_current) { sd->spellpower_bonus_current = sd->spellpower_bonus_target; - else if (sd->spellpower_bonus_target > sd->spellpower_bonus_current) + pc_calcstatus(sd, 0); + } + else if (sd->spellpower_bonus_target > sd->spellpower_bonus_current) { sd->spellpower_bonus_current += 1 + ((sd->spellpower_bonus_target - sd->spellpower_bonus_current) >> 5); + pc_calcstatus(sd, 0); + } if (sd->sc_data[SC_HALT_REGENERATE].timer != -1) return 0; |