فهرست منبع

Rebalance Sky emperor 2022-12-21 (#8954)

* 1. Kihop (Taewondo)
- Increases damage bonus from 85% to 100% based on level 5.

* 2. Solar Wrath, Lunar Wrath, Stellar Wrath (Star Gladiator)
- Adds maximum damage bonus limit by (skill level x 25)%

* 3. Twinkling Galaxy
- Increases base damage from 2200%Atk to 2800%Atk based on level 5.
- Reduces skill duration from 4.5 seconds to 3.5 seconds.
- Increases shooting star interval from 0.3 seconds to 0.5 seconds.
- Increases SP consumption from 84 to 124.

* 4. Star Cannon
- Reduces cooldown from 5 seconds to 3.5 seconds.
- Increases base damage from 2700%Atk to 3000%Atk based on level 5.
- Reduces skill duration from 4.5 seconds to 2.5 seconds.
- Increases shooting star interval from 0.3 seconds to 0.5 seconds.
- Reduces maximum shooting star fall per round from 4 stars to 2 stars.
- Reduces area of effect of shooting star damage from 7 x 7 cells to 5 x 5 cells based on level 5.
- Increases SP consumption from 63 to 110 based on level 10.

* 5. All in the Sky.
- Increases AP consumption from 35 to 70.
- Reduces base damage from 23000%Atk to 12250%Atk based on level 10.
Atemo 3 ماه پیش
والد
کامیت
17689f2b11
3فایلهای تغییر یافته به همراه27 افزوده شده و 19 حذف شده
  1. 13 13
      db/re/skill_db.yml
  2. 13 5
      src/map/battle.cpp
  3. 1 1
      src/map/skill.cpp

+ 13 - 13
db/re/skill_db.yml

@@ -44196,9 +44196,9 @@ Body:
     CastTime: 1000
     Cooldown: 5000
     FixedCastTime: 500
-    Duration1: 4500
+    Duration1: 3500
     Requires:
-      SpCost: 84
+      SpCost: 124
     Unit:
       Id: TWINKLING_GALAXY
       Range:
@@ -44212,7 +44212,7 @@ Body:
           Size: 5
         - Level: 5
           Size: 4
-      Interval: 300
+      Interval: 500
       Target: Enemy
       Flag:
         PathCheck: true
@@ -44266,23 +44266,23 @@ Body:
     HitCount: -3
     GiveAp: 3
     Element: Weapon
-    SplashArea: 3
-    Cooldown: 5000
+    SplashArea: 2
+    Cooldown: 3500
     CastCancel: true
     FixedCastTime: 500
-    Duration1: 4500
+    Duration1: 2500
     Requires:
       SpCost:
         - Level: 1
-          Amount: 51
+          Amount: 90
         - Level: 2
-          Amount: 54
+          Amount: 95
         - Level: 3
-          Amount: 57
+          Amount: 100
         - Level: 4
-          Amount: 60
+          Amount: 105
         - Level: 5
-          Amount: 63
+          Amount: 110
     Unit:
       Id: STAR_CANNON
       Range:
@@ -44296,7 +44296,7 @@ Body:
           Size: 5
         - Level: 5
           Size: 4
-      Interval: 300
+      Interval: 500
       Target: Enemy
       Flag:
         PathCheck: true
@@ -44316,7 +44316,7 @@ Body:
     FixedCastTime: 1000
     Cooldown: 2000
     Requires:
-      ApCost: 35
+      ApCost: 70
       SpCost: 85
   - Id: 5475
     Name: SKE_ENCHANTING_SKY

+ 13 - 5
src/map/battle.cpp

@@ -4304,8 +4304,10 @@ static void battle_calc_skill_base_damage(struct Damage* wd, struct block_list *
 				}
 #else
 				if ((skill = pc_checkskill(sd, TK_POWER)) > 0) {
-					ATK_ADDRATE(wd->damage, wd->damage2, 10 + 15 * skill);
-					RE_ALLATK_ADDRATE(wd, 10 + 15 * skill);
+					int32 dmg_bonus = 20 * skill;
+
+					ATK_ADDRATE(wd->damage, wd->damage2, dmg_bonus);
+					RE_ALLATK_ADDRATE(wd, dmg_bonus);
 				}
 #endif
 			}
@@ -6405,21 +6407,21 @@ static int32 battle_calc_attack_skill_ratio(struct Damage* wd, struct block_list
 			break;
 
 		case SKE_ALL_IN_THE_SKY:
-			skillratio += -100 + 3000 + 2000 * skill_lv;
+			skillratio += -100 + 250 + 1200 * skill_lv;
 			skillratio += 5 * sstatus->pow;
 			if (status_get_race(target) == RC_DEMIHUMAN || status_get_race(target) == RC_DEMON)
 				wd->div_ = 3;
 			break;
 
 		case SKE_TWINKLING_GALAXY:
-			skillratio += -100 + 200 + 400 * skill_lv;
+			skillratio += -100 + 300 + 500 * skill_lv;
 			skillratio += pc_checkskill( sd, SKE_SKY_MASTERY ) * 3 * skill_lv;
 			skillratio += 5 * sstatus->pow;
 			RE_LVL_DMOD(100);
 			break;
 
 		case SKE_STAR_CANNON:
-			skillratio += -100 + 200 + 500 * skill_lv;
+			skillratio += -100 + 250 + 550 * skill_lv;
 			skillratio += pc_checkskill( sd, SKE_SKY_MASTERY ) * 5 * skill_lv;
 			skillratio += 5 * sstatus->pow;
 			RE_LVL_DMOD(100);
@@ -6699,6 +6701,12 @@ static void battle_attack_sc_bonus(struct Damage* wd, struct block_list *src, st
 			skillratio += sstatus->str; // SG_STAR_ANGER additionally has STR added in its formula.
 		if (anger_level < 4)
 			skillratio /= 12 - 3 * anger_level;
+
+#ifdef RENEWAL
+		// (renewal) maximum damage bonus limit : (skill level x 25)%
+		skillratio = min( skillratio, 25 * anger_level );
+#endif
+
 		ATK_ADDRATE(wd->damage, wd->damage2, skillratio);
 #ifdef RENEWAL
 		RE_ALLATK_ADDRATE(wd, skillratio);

+ 1 - 1
src/map/skill.cpp

@@ -4840,7 +4840,7 @@ static TIMER_FUNC(skill_timerskill){
 						int32 area = skill_get_unit_range( skl->skill_id, skl->skill_lv );
 						int32 splash = skill_get_splash( skl->skill_id, skl->skill_lv );
 
-						for( int32 i = 0, stars = 1 + ( skl->skill_lv + 1 ) / 2; i < stars; i++) {
+						for( int32 i = 0, stars = ( skl->skill_lv / 4 ) + 1; i < stars; i++) {
 							int16 tmpx = skl->x - area + rnd() % ( area * 2 + 1 );
 							int16 tmpy = skl->y - area + rnd() % ( area * 2 + 1 );