Преглед на файлове

Updated meteor assault, soul breaker

git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@860 54d463be-8e91-2dee-dedb-b68131a5f0ec
celest преди 20 години
родител
ревизия
11b797dabb
променени са 3 файла, в които са добавени 25 реда и са изтрити 10 реда
  1. 2 0
      Changelog.txt
  2. 2 1
      db/skill_castnodex_db.txt
  3. 21 9
      src/map/battle.c

+ 2 - 0
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]

+ 2 - 1
db/skill_castnodex_db.txt

@@ -9,4 +9,5 @@
 382,1
 383,1
 394,1
-403,1
+403,1
+406,1

+ 21 - 9
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;