summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog.txt2
-rw-r--r--db/skill_castnodex_db.txt3
-rw-r--r--src/map/battle.c30
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;