Explorar o código

Rebalance shadow cross 20221221 (#8019)

* Savage Impact
- Reduces cooldown from 1 second to 0.7 seconds.
- Increases area of effect from 5 x 5 cells to 7 x 7 cells based on level 10.
- Applies AP recovery rate by 2.

* Shadow Stab
- The skill will deal damage for 2 hits.
- While under Cloaking Exceed buff, increases number of hit to 3 hits with higher damage per hit.
- Increases factor weight of POW in skill formula while under Cloaking Exceed buff from 5 to 7.
- Increases base damage from 1500%Atk to 1750%/2000%Atk per hit based on level 5.
Atemo hai 1 ano
pai
achega
ccce839881
Modificáronse 3 ficheiros con 25 adicións e 19 borrados
  1. 16 15
      db/re/skill_db.yml
  2. 7 2
      src/map/battle.cpp
  3. 2 2
      src/map/skill.cpp

+ 16 - 15
db/re/skill_db.yml

@@ -37915,30 +37915,31 @@ Body:
     Hit: Multi_Hit
     HitCount: 3
     Element: Weapon
-    SplashArea: 2
-    CastCancel: true
-    AfterCastActDelay: 300
-    Cooldown:
+    GiveAp: 2
+    SplashArea:
       - Level: 1
-        Time: 3000
+        Area: 2
       - Level: 2
-        Time: 2800
+        Area: 2
       - Level: 3
-        Time: 2600
+        Area: 2
       - Level: 4
-        Time: 2400
+        Area: 2
       - Level: 5
-        Time: 2200
+        Area: 2
       - Level: 6
-        Time: 2000
+        Area: 3
       - Level: 7
-        Time: 1800
+        Area: 3
       - Level: 8
-        Time: 1600
+        Area: 3
       - Level: 9
-        Time: 1400
+        Area: 3
       - Level: 10
-        Time: 1000
+        Area: 3
+    CastCancel: true
+    AfterCastActDelay: 300
+    Cooldown: 700
     Requires:
       SpCost:
         - Level: 1
@@ -38056,7 +38057,7 @@ Body:
       IgnoreDefense: true
     Range: 2
     Hit: Multi_Hit
-    HitCount: 1
+    HitCount: 2
     Element: Weapon
     GiveAp: 2
     CastCancel: true

+ 7 - 2
src/map/battle.cpp

@@ -5550,7 +5550,12 @@ static int battle_calc_attack_skill_ratio(struct Damage* wd, struct block_list *
 			RE_LVL_DMOD(100);
 			break;
 		case SHC_SHADOW_STAB:
-			skillratio += -100 + 300 * skill_lv + 5 * sstatus->pow;
+			skillratio += -100 + 350 * skill_lv + 5 * sstatus->pow;
+
+			if( sc && sc->getSCE( SC_CLOAKINGEXCEED ) ){
+				skillratio += 50 * skill_lv + 2 * sstatus->pow;
+			}
+
 			RE_LVL_DMOD(100);
 			break;
 		case SHC_IMPACT_CRATER:
@@ -6694,7 +6699,7 @@ static struct Damage initialize_weapon_data(struct block_list *src, struct block
 				break;
 			case SHC_SHADOW_STAB:
 				if (wd.miscflag == 2)
-					wd.div_ = 2;
+					wd.div_ = 3;
 				break;
 			case SHC_IMPACT_CRATER:
 				if (sc && sc->getSCE(SC_ROLLINGCUTTER))

+ 2 - 2
src/map/skill.cpp

@@ -5251,8 +5251,8 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
 		break;
 
 	case SHC_SHADOW_STAB:
-		if (sc && (sc->getSCE(SC_CLOAKING) || sc->getSCE(SC_CLOAKINGEXCEED)))
-			flag |= 2;// Flag to deal 2 hits.
+		if (sc && sc->getSCE(SC_CLOAKINGEXCEED))
+			flag |= 2;// Flag to deal 3 hits.
 
 		status_change_end(src, SC_CLOAKING);
 		status_change_end(src, SC_CLOAKINGEXCEED);