Просмотр исходного кода

Finger Offensive Renewal Damage (#8668)

- Fixed damage of Finger Offensive being 5 times too high
- Added job stat bonus for Sura job level 61
- Fixes #8667
Playtester 8 месяцев назад
Родитель
Сommit
63baa62f70
3 измененных файлов с 15 добавлено и 3 удалено
  1. 6 0
      db/re/job_stats.yml
  2. 1 1
      db/re/skill_db.yml
  3. 8 2
      src/map/battle.cpp

+ 6 - 0
db/re/job_stats.yml

@@ -5635,6 +5635,8 @@ Body:
         Str: 1
       - Level: 60
         Int: 1
+      - Level: 61
+        Str: 1
   - Jobs:
       Genetic: true
     MaxWeight: 32000
@@ -6200,6 +6202,8 @@ Body:
         Str: 1
       - Level: 60
         Int: 1
+      - Level: 61
+        Str: 1
   - Jobs:
       Genetic_T: true
     MaxWeight: 32000
@@ -7248,6 +7252,8 @@ Body:
         Str: 1
       - Level: 60
         Int: 1
+      - Level: 61
+        Str: 1
   - Jobs:
       Baby_Genetic: true
     MaxWeight: 30000

+ 1 - 1
db/re/skill_db.yml

@@ -7535,7 +7535,7 @@ Body:
       TargetTrap: true
     Range: 9
     Hit: Multi_Hit
-    HitCount: 5
+    HitCount: -5
     Element: Weapon
     CopyFlags:
       Skill:

+ 8 - 2
src/map/battle.cpp

@@ -3693,6 +3693,12 @@ static int battle_get_spiritball_damage(struct Damage& wd, struct block_list& sr
 			// These skills used as many spheres as they do hits
 			damage = (wd.div_ + sd->spiritball) * 3;
 			break;
+#ifdef RENEWAL
+		case MO_FINGEROFFENSIVE:
+			// These skills store the spheres used in spiritball_old
+			damage = (sd->spiritball_old + sd->spiritball) * 3;
+			break;
+#endif
 		case MO_EXTREMITYFIST:
 			// These skills store the number of spheres the player had before cast
 			damage = sd->spiritball_old * 3;
@@ -6803,9 +6809,9 @@ static void battle_calc_attack_plant(struct Damage* wd, struct block_list *src,s
 		return;
 	}
 
-	// Triple Attack has a special property that it does not split damage on plant mode
+	// Triple Attack and Finger Offensive have a special property, they do not split damage on plant mode
 	// In pre-renewal, it requires the monster to have exactly 100 def
-	if (skill_id == MO_TRIPLEATTACK && wd->div_ < 0
+	if ((skill_id == MO_TRIPLEATTACK || skill_id == MO_FINGEROFFENSIVE) && wd->div_ < 0
 #ifndef RENEWAL
 		&& tstatus->def == 100
 #endif