summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorcelest <celest@54d463be-8e91-2dee-dedb-b68131a5f0ec>2004-12-29 18:56:40 +0000
committercelest <celest@54d463be-8e91-2dee-dedb-b68131a5f0ec>2004-12-29 18:56:40 +0000
commite5bce970b13d3485cfa823aa4810787c2006181a (patch)
treeeacef2329bb9881cab7535b2a61e3b7a2fa38696 /src
parent70028b45b1a73422867cf1432ea1dc29a613fc98 (diff)
downloadhercules-e5bce970b13d3485cfa823aa4810787c2006181a.tar.gz
hercules-e5bce970b13d3485cfa823aa4810787c2006181a.tar.bz2
hercules-e5bce970b13d3485cfa823aa4810787c2006181a.tar.xz
hercules-e5bce970b13d3485cfa823aa4810787c2006181a.zip
Updated meteor assault, soul breaker
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/branches/stable@860 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src')
-rw-r--r--src/map/battle.c30
1 files changed, 21 insertions, 9 deletions
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;