diff options
author | xantara <xantara@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-06-13 20:20:08 +0000 |
---|---|---|
committer | xantara <xantara@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-06-13 20:20:08 +0000 |
commit | 4b97da7724f5ff7ce298cfc3cf7abafd8b6f0df8 (patch) | |
tree | 96527e91c398ce753dfec7fe239f50991f5b30fd /src/map/battle.c | |
parent | b3774b92cfeb2cdc70b00b0e6311631eda373a0c (diff) | |
download | hercules-4b97da7724f5ff7ce298cfc3cf7abafd8b6f0df8.tar.gz hercules-4b97da7724f5ff7ce298cfc3cf7abafd8b6f0df8.tar.bz2 hercules-4b97da7724f5ff7ce298cfc3cf7abafd8b6f0df8.tar.xz hercules-4b97da7724f5ff7ce298cfc3cf7abafd8b6f0df8.zip |
Applied renewal skill changes: (bugreport:5302)
- Energy Coat: Reduces both physical and magical attacks and now has fixed cast time of 5 seconds
- Throw Huuma Shuriken (33%): Cannot be interrupted
- Spread Attack: Can be used with a Grenade Launcher and attack power is increased; now 20*skill_lv
- Turn Undead: Success rate formula changed, Magic damage formula changed on failure
- Drums on the Battlefield: Increase ATK and DEF granted
- The Ring of Nibelungen: Removed level 4 weapon requirement
- Apple of Idun (100%): Increase amount of HP recovered; now (100 + 5*skill_lv + 5*VIT/10)
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16292 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/battle.c')
-rw-r--r-- | src/map/battle.c | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/src/map/battle.c b/src/map/battle.c index a19493025..ce0f1b9a6 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -628,8 +628,11 @@ int battle_calc_damage(struct block_list *src,struct block_list *bl,struct Damag sce->val3&flag && sce->val4&flag) damage -= damage*sc->data[SC_ARMOR]->val2/100; - if(sc->data[SC_ENERGYCOAT] && flag&BF_WEAPON - && skill_num != WS_CARTTERMINATION) +#ifdef RENEWAL + if(sc->data[SC_ENERGYCOAT] && (flag&BF_WEAPON || flag&BF_MAGIC) && skill_num != WS_CARTTERMINATION) +#else + if(sc->data[SC_ENERGYCOAT] && flag&BF_WEAPON && skill_num != WS_CARTTERMINATION) +#endif { struct status_data *status = status_get_status_data(bl); int per = 100*status->sp / status->max_sp -1; //100% should be counted as the 80~99% interval @@ -1983,7 +1986,11 @@ static struct Damage battle_calc_weapon_attack(struct block_list *src,struct blo skillratio += 100*(skill_lv+2); break; case GS_SPREADATTACK: + #ifdef RENEWAL + skillratio += 20*(skill_lv); + #else skillratio += 20*(skill_lv-1); + #endif break; case NJ_HUUMA: skillratio += 50 + 150*skill_lv; @@ -3211,13 +3218,23 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list case ALL_RESURRECTION: case PR_TURNUNDEAD: //Undead check is on skill_castend_damageid code. + #ifdef RENEWAL + i = 10*skill_lv + sstatus->luk + sstatus->int_ + status_get_lv(src) + + 300 - 300*tstatus->hp/tstatus->max_hp; + #else i = 20*skill_lv + sstatus->luk + sstatus->int_ + status_get_lv(src) + 200 - 200*tstatus->hp/tstatus->max_hp; + #endif if(i > 700) i = 700; if(rnd()%1000 < i && !(tstatus->mode&MD_BOSS)) ad.damage = tstatus->hp; - else - ad.damage = status_get_lv(src) + sstatus->int_ + skill_lv * 10; + else { + #ifdef RENEWAL + ad.damage = status_get_lv(src) * (sstatus->matk_min + sstatus->matk_max); + #else + ad.damage = status_get_lv(src) + sstatus->int_ + skill_lv * 10; + #endif + } break; case PF_SOULBURN: ad.damage = tstatus->sp * 2; |