Rebalance Abyss Chaser 2024-02-05 (#8153)

* Abyss Slayer
- Reduces AP consumption from 150 to 120.

* Omega Abyss Strike
- Reduces fixed casting time from 1.5 seconds to 1 second.
- Reduces skill cooldown from 3 seconds to 0.7 seconds.
- Reduces AP consumption from 15 to 10.
- Changes damage property from neutral to fire.
- Increases base damage from 22000%/23500%(angel and demon)Matk to 26500%/28500%(angel and demon)Matk based on level 10.

* Abyss Dagger
- Increases base damage from 4600%Atk to 7350%Atk based on level 5.

* Deft Stab
- Increases base damage from 3750%Atk to 6200%Atk based on level 10.
- Increases factor weight of POW in skill formula from 5 to 7.

* From the Abyss
- Reduces skill cooldown from 60 seconds to 30 seconds.
- Increases number of hit from 2 hits to 5 hits.
- Increases base damage from 2600%Matk to 3400%Matk based on level 5.
- No longer be removed by Dispell or Clearance.
- Increases the trigger chance of abyss sphere from 15% to 25% based on level 5.

* Abyss Square
- Increases base damage from 2850+(Magic Sword Mastery skill level x 100)%Matk to 3750+(Magic Sword Mastery skill level x 200)Matk based on level 5.

* Chain Reaction Shot
- Increases base damage of secondary attack from 12350%Atk to 13550%Atk based on level 5.

* Frenzy Shot
- Increases AP recovery rate from 1 to 3.
- Increases base damage from 6150%Atk to 8250%Atk per hit based on level 10.
This commit is contained in:
Atemo 2024-03-11 18:58:59 +01:00 committed by GitHub
parent 34e90e9aa9
commit 4a3149649e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 26 additions and 19 deletions

View File

@ -38857,7 +38857,7 @@ Body:
Time: 1500
- Level: 5
Time: 1000
Cooldown: 60000
Cooldown: 30000
Requires:
SpCost:
- Level: 1
@ -38888,26 +38888,27 @@ Body:
FixedCastTime: 1000
Requires:
SpCost: 100
ApCost: 150
ApCost: 120
Status: Abyss_Slayer
- Id: 5319
Name: ABC_ABYSS_STRIKE
Description: Abyss Strike
Description: Omega Abyss Strike
MaxLevel: 10
Type: Magic
TargetType: Ground
Range: 9
Hit: Single
HitCount: 1
Element: Fire
CastCancel: true
CastTime: 2000
AfterCastActDelay: 500
Duration1: 100
Cooldown: 3000
Cooldown: 700
FixedCastTime: 1000
Requires:
SpCost: 125
ApCost: 15
ApCost: 10
Unit:
Id: Dummyskill
Range: 4
@ -39022,7 +39023,7 @@ Body:
Hit: Multi_Hit
HitCount: 2
Element: Weapon
GiveAp: 1
GiveAp: 3
CastCancel: true
AfterCastActDelay: 500
Cooldown: 350
@ -41240,7 +41241,7 @@ Body:
Splash: true
Range: 1
Hit: Multi_Hit
HitCount: 2
HitCount: 5
SplashArea: 4
Requires:
SpCost: 1

View File

@ -4231,7 +4231,7 @@ static void battle_calc_multi_attack(struct Damage* wd, struct block_list *src,s
break;
}
case ABC_FRENZY_SHOT:
if( rnd()%100 < 5 * skill_lv ){
if( rnd_chance( 5 * skill_lv, 100 ) ){
wd->div_ = 3;
}
break;
@ -5734,7 +5734,7 @@ static int battle_calc_attack_skill_ratio(struct Damage* wd, struct block_list *
RE_LVL_DMOD(100);
break;
case ABC_ABYSS_DAGGER:
skillratio += -100 + 100 + 900 * skill_lv;
skillratio += -100 + 350 + 1400 * skill_lv;
skillratio += 5 * sstatus->pow;
RE_LVL_DMOD(100);
break;
@ -5743,20 +5743,22 @@ static int battle_calc_attack_skill_ratio(struct Damage* wd, struct block_list *
RE_LVL_DMOD(100);
break;
case ABC_CHAIN_REACTION_SHOT:
skillratio += -100 + 850 * skill_lv + 15 * sstatus->con;
skillratio += -100 + 850 * skill_lv;
skillratio += 15 * sstatus->con;
RE_LVL_DMOD(100);
break;
case ABC_CHAIN_REACTION_SHOT_ATK:
skillratio += -100 + 600 + 2350 * skill_lv + 15 * sstatus->con;
skillratio += -100 + 800 + 2550 * skill_lv;
skillratio += 15 * sstatus->con;
RE_LVL_DMOD(100);
break;
case ABC_DEFT_STAB:
skillratio += -100 + 250 + 350 * skill_lv;
skillratio += 5 * sstatus->pow;
skillratio += -100 + 700 + 550 * skill_lv;
skillratio += 7 * sstatus->pow;
RE_LVL_DMOD(100);
break;
case ABC_FRENZY_SHOT:
skillratio += -100 + 150 + 600 * skill_lv;
skillratio += -100 + 250 + 800 * skill_lv;
skillratio += 15 * sstatus->con;
RE_LVL_DMOD(100);
break;
@ -8307,13 +8309,16 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
RE_LVL_DMOD(100);
break;
case ABC_ABYSS_STRIKE:
skillratio += -100 + 2200 * skill_lv + 10 * sstatus->spl;
skillratio += -100 + 2650 * skill_lv;
skillratio += 10 * sstatus->spl;
if (tstatus->race == RC_DEMON || tstatus->race == RC_ANGEL)
skillratio += 150 * skill_lv;
skillratio += 200 * skill_lv;
RE_LVL_DMOD(100);
break;
case ABC_ABYSS_SQUARE:
skillratio += -100 + ( 570 + 20 * pc_checkskill( sd, ABC_MAGIC_SWORD_M ) ) * skill_lv + 5 * sstatus->spl;
skillratio += -100 + 750 * skill_lv;
skillratio += 40 * pc_checkskill( sd, ABC_MAGIC_SWORD_M ) * skill_lv;
skillratio += 5 * sstatus->spl;
RE_LVL_DMOD(100);
break;
case TR_METALIC_FURY:
@ -8388,7 +8393,8 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
RE_LVL_DMOD(100);
break;
case ABC_FROM_THE_ABYSS_ATK:
skillratio += -100 + 100 + 500 * skill_lv + 5 * sstatus->spl;
skillratio += -100 + 150 + 650 * skill_lv;
skillratio += 5 * sstatus->spl;
RE_LVL_DMOD(100);
break;
case EM_ELEMENTAL_BUSTER_FIRE:
@ -9912,7 +9918,7 @@ enum damage_lv battle_weapon_attack(struct block_list* src, struct block_list* t
sd->state.autocast = 0;
}
if( sc->getSCE(SC_ABYSSFORCEWEAPON) && sd->abyssball > 0 && rnd() % 100 < 15 ){
if( sc->getSCE(SC_ABYSSFORCEWEAPON) && sd->abyssball > 0 && rnd_chance( 25, 100 ) ){
uint16 skill_id = ABC_FROM_THE_ABYSS_ATK;
uint16 skill_lv = sc->getSCE(SC_ABYSSFORCEWEAPON)->val1;