diff options
-rw-r--r-- | Changelog.txt | 2 | ||||
-rw-r--r-- | db/skill_castnodex_db.txt | 3 | ||||
-rw-r--r-- | src/map/battle.c | 30 |
3 files changed, 25 insertions, 10 deletions
diff --git a/Changelog.txt b/Changelog.txt index a98a3601e..6441040a4 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,5 +1,7 @@ Date Added 12/29 + * Updated Soul Breaker's damage calculation [celest] + * Updated Meteor Assault's cast delay to be not affected by dex [celest] * Changed int_guild.c so it will calculate average guild level only if > 0 members are found - prevent divide by zero crashes (why would an empty guild be requested to update its' member info in the first place?) [celest] diff --git a/db/skill_castnodex_db.txt b/db/skill_castnodex_db.txt index 6f205f516..bbf128904 100644 --- a/db/skill_castnodex_db.txt +++ b/db/skill_castnodex_db.txt @@ -9,4 +9,5 @@ 382,1 383,1 394,1 -403,1
\ No newline at end of file +403,1 +406,1
\ No newline at end of file diff --git a/src/map/battle.c b/src/map/battle.c index 1749168d5..1d699bd10 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -3497,17 +3497,26 @@ static struct Damage battle_calc_pc_weapon_attack( break; case ASC_BREAKER: // -- moonsoul (special damage for ASC_BREAKER skill) if(sd){ - int damage3; - int mdef1=battle_get_mdef(target); +/* int mdef1=battle_get_mdef(target); int mdef2=battle_get_mdef2(target); int imdef_flag=0; - + damage = ((damage * 5) + (skill_lv * battle_get_int(src) * 5) + rand()%500 + 500) /2; damage2 = ((damage2 * 5) + (skill_lv * battle_get_int(src) * 5) + rand()%500 + 500) /2; damage3 = damage; - hitrate = 1000000; - - if(sd->ignore_mdef_ele & (1<<t_ele) || sd->ignore_mdef_race & (1<<t_race)) + // physical damage can miss + hitrate = 1000000;*/ + + // calculate physical part of damage + damage = damage * skill_lv; + damage2 = damage2 * skill_lv; + // element modifier added right after this + + // calculate magic part of damage + damage3 = skill_lv * battle_get_int(src) * 5; + + // ignores magic defense now [Celest] + /*if(sd->ignore_mdef_ele & (1<<t_ele) || sd->ignore_mdef_race & (1<<t_race)) imdef_flag = 1; if(t_mode & 0x20) { if(sd->ignore_mdef_race & (1<<10)) @@ -3529,7 +3538,7 @@ static struct Damage battle_calc_pc_weapon_attack( if(damage3<1) damage3=1; - damage3=battle_attr_fix(damage2,s_ele_, battle_get_element(target) ); + damage3=battle_attr_fix(damage2,s_ele_, battle_get_element(target) );*/ } break; } @@ -3773,8 +3782,10 @@ static struct Damage battle_calc_pc_weapon_attack( //カードによるダメージ増加処理(左手)ここまで // -- moonsoul (cardfix for magic damage portion of ASC_BREAKER) - if(skill_num == ASC_BREAKER) + if(skill_num == ASC_BREAKER) { damage3 = damage3 * cardfix / 100; + dmg_lv = ATK_DEF; // ignores flee [celest] + } //カードによるダメージ減衰処理ここから if(tsd){ //対象がPCの場合 @@ -3975,8 +3986,9 @@ static struct Damage battle_calc_pc_weapon_attack( // -- moonsoul (final combination of phys, mag damage for ASC_BREAKER) if(skill_num == ASC_BREAKER) { + damage3 += rand()%500+500; damage += damage3; - damage2 += damage3; +// damage2 += damage3; } wd.damage=damage; |