4th Improvement - Arch Mage (#7708)
This commit is contained in:
parent
452238b523
commit
e4acd6e5dc
@ -35391,6 +35391,7 @@ Body:
|
||||
MaxLevel: 5
|
||||
Type: Magic
|
||||
TargetType: Ground
|
||||
GiveAp: 4
|
||||
Range: 9
|
||||
Hit: Single
|
||||
HitCount: 1
|
||||
@ -35983,7 +35984,7 @@ Body:
|
||||
FixedCastTime: 4000
|
||||
Requires:
|
||||
SpCost: 60
|
||||
ApCost: 200
|
||||
ApCost: 150
|
||||
Status: Climax
|
||||
- Id: 5233
|
||||
Name: AG_ROCK_DOWN
|
||||
@ -35997,12 +35998,32 @@ Body:
|
||||
Hit: Multi_Hit
|
||||
HitCount: -5
|
||||
Element: Earth
|
||||
SplashArea: 1
|
||||
GiveAp: 4
|
||||
SplashArea:
|
||||
- Level: 1
|
||||
Area: 2
|
||||
- Level: 2
|
||||
Area: 2
|
||||
- Level: 3
|
||||
Area: 2
|
||||
- Level: 4
|
||||
Area: 3
|
||||
- Level: 5
|
||||
Area: 3
|
||||
GiveAp: 1
|
||||
CastCancel: true
|
||||
CastTime: 4000
|
||||
AfterCastActDelay: 1000
|
||||
Cooldown: 4000
|
||||
AfterCastActDelay: 500
|
||||
Cooldown:
|
||||
- Level: 1
|
||||
Time: 3000
|
||||
- Level: 2
|
||||
Time: 2100
|
||||
- Level: 3
|
||||
Time: 1500
|
||||
- Level: 4
|
||||
Time: 900
|
||||
- Level: 5
|
||||
Time: 300
|
||||
FixedCastTime: 1500
|
||||
Requires:
|
||||
SpCost:
|
||||
@ -36028,11 +36049,21 @@ Body:
|
||||
Element: Wind
|
||||
SplashArea: 1
|
||||
ActiveInstance: 14
|
||||
GiveAp: 4
|
||||
GiveAp: 1
|
||||
CastCancel: true
|
||||
CastTime: 4000
|
||||
AfterCastActDelay: 1000
|
||||
Cooldown: 4000
|
||||
AfterCastActDelay: 500
|
||||
Cooldown:
|
||||
- Level: 1
|
||||
Time: 3000
|
||||
- Level: 2
|
||||
Time: 2100
|
||||
- Level: 3
|
||||
Time: 1500
|
||||
- Level: 4
|
||||
Time: 900
|
||||
- Level: 5
|
||||
Time: 300
|
||||
FixedCastTime: 1500
|
||||
Requires:
|
||||
SpCost:
|
||||
@ -36058,11 +36089,21 @@ Body:
|
||||
Element: Fire
|
||||
SplashArea: 1
|
||||
ActiveInstance: 14
|
||||
GiveAp: 4
|
||||
GiveAp: 1
|
||||
CastCancel: true
|
||||
CastTime: 4000
|
||||
AfterCastActDelay: 1000
|
||||
Cooldown: 4000
|
||||
AfterCastActDelay: 500
|
||||
Cooldown:
|
||||
- Level: 1
|
||||
Time: 3000
|
||||
- Level: 2
|
||||
Time: 2100
|
||||
- Level: 3
|
||||
Time: 1500
|
||||
- Level: 4
|
||||
Time: 900
|
||||
- Level: 5
|
||||
Time: 300
|
||||
FixedCastTime: 1500
|
||||
Requires:
|
||||
SpCost:
|
||||
@ -36082,10 +36123,23 @@ Body:
|
||||
MaxLevel: 5
|
||||
Type: Magic
|
||||
TargetType: Attack
|
||||
DamageFlags:
|
||||
Splash: true
|
||||
Range: 9
|
||||
Hit: Multi_Hit
|
||||
HitCount: -2
|
||||
HitCount: 1
|
||||
Element: Fire
|
||||
SplashArea:
|
||||
- Level: 1
|
||||
Area: 2
|
||||
- Level: 2
|
||||
Area: 2
|
||||
- Level: 3
|
||||
Area: 2
|
||||
- Level: 4
|
||||
Area: 3
|
||||
- Level: 5
|
||||
Area: 3
|
||||
Requires:
|
||||
SpCost: 1
|
||||
- Id: 5237
|
||||
@ -36101,20 +36155,20 @@ Body:
|
||||
Element: Water
|
||||
SplashArea:
|
||||
- Level: 1
|
||||
Area: 2
|
||||
- Level: 2
|
||||
Area: 2
|
||||
- Level: 3
|
||||
Area: 3
|
||||
- Level: 4
|
||||
Area: 3
|
||||
- Level: 5
|
||||
Area: 4
|
||||
GiveAp: 4
|
||||
- Level: 2
|
||||
Area: 4
|
||||
- Level: 3
|
||||
Area: 5
|
||||
- Level: 4
|
||||
Area: 5
|
||||
- Level: 5
|
||||
Area: 6
|
||||
GiveAp: 1
|
||||
CastCancel: true
|
||||
CastTime: 4000
|
||||
AfterCastActDelay: 1000
|
||||
Cooldown: 4000
|
||||
AfterCastActDelay: 500
|
||||
Cooldown: 300
|
||||
FixedCastTime: 1500
|
||||
Requires:
|
||||
SpCost:
|
||||
|
@ -702,8 +702,6 @@ int battle_calc_cardfix(int attack_type, struct block_list *src, struct block_li
|
||||
}
|
||||
cardfix = cardfix * (100 + sd->indexed_bonus.magic_addsize[tstatus->size] + sd->indexed_bonus.magic_addsize[SZ_ALL]) / 100;
|
||||
cardfix = cardfix * (100 + sd->indexed_bonus.magic_addclass[tstatus->class_] + sd->indexed_bonus.magic_addclass[CLASS_ALL]) / 100;
|
||||
if (sd->status.weapon == W_2HSTAFF)// 2-Handed Staff Mastery
|
||||
cardfix = cardfix * (100 + pc_checkskill(sd, AG_TWOHANDSTAFF)) / 100;
|
||||
for (const auto &it : sd->add_mdmg) {
|
||||
if (it.id == t_class) {
|
||||
cardfix = cardfix * (100 + it.val) / 100;
|
||||
@ -7146,6 +7144,11 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
|
||||
case TR_METALIC_FURY:// Deals up to 5 additional hits. But what affects the number of hits? [Rytech]
|
||||
ad.div_ = min(ad.div_ + mflag, 5); // Number of hits doesn't go above 5.
|
||||
break;
|
||||
case AG_CRIMSON_ARROW_ATK:
|
||||
if( sc != nullptr && sc->getSCE( SC_CLIMAX ) ){
|
||||
ad.div_ = 2;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
//Set miscellaneous data that needs be filled
|
||||
@ -7745,7 +7748,7 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case AG_MYSTERY_ILLUSION:
|
||||
skillratio += -100 + 250 * skill_lv + 5 * sstatus->spl;
|
||||
skillratio += -100 + 500 * skill_lv + 5 * sstatus->spl;
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case AG_VIOLENT_QUAKE_ATK:
|
||||
@ -7820,20 +7823,38 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case AG_ROCK_DOWN:
|
||||
skillratio += -100 + 750 * skill_lv + 5 * sstatus->spl;
|
||||
skillratio += -100 + 600 * skill_lv + 5 * sstatus->spl;
|
||||
|
||||
if( sc != nullptr && sc->getSCE( SC_CLIMAX ) ){
|
||||
skillratio += 250 * skill_lv;
|
||||
}
|
||||
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case AG_STORM_CANNON:
|
||||
skillratio += -100 + 600 * skill_lv + 5 * sstatus->spl;
|
||||
|
||||
if( sc != nullptr && sc->getSCE( SC_CLIMAX ) ){
|
||||
skillratio += 250 * skill_lv;
|
||||
}
|
||||
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case AG_CRIMSON_ARROW:
|
||||
case AG_CRIMSON_ARROW_ATK:
|
||||
skillratio += -100 + 300 * skill_lv + 5 * sstatus->spl;
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case AG_CRIMSON_ARROW_ATK:
|
||||
skillratio += -100 + 600 * skill_lv + 5 * sstatus->spl;
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case AG_FROZEN_SLASH:
|
||||
skillratio += -100 + 750 * skill_lv + 5 * sstatus->spl;
|
||||
skillratio += -100 + 600 * skill_lv + 5 * sstatus->spl;
|
||||
|
||||
if( sc != nullptr && sc->getSCE( SC_CLIMAX ) ){
|
||||
skillratio += 250 * skill_lv;
|
||||
}
|
||||
|
||||
RE_LVL_DMOD(100);
|
||||
break;
|
||||
case IG_JUDGEMENT_CROSS:
|
||||
|
@ -5390,7 +5390,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
|
||||
skill_get_type(skill_id), src, src, skill_id, skill_lv, tick, flag, BCT_ENEMY);
|
||||
}
|
||||
if (skill_id == AG_CRIMSON_ARROW)
|
||||
skill_attack(skill_get_type(AG_CRIMSON_ARROW_ATK), src, src, bl, AG_CRIMSON_ARROW_ATK, skill_lv, tick, flag|SD_LEVEL|SD_ANIMATION);
|
||||
skill_castend_damage_id(src, bl, AG_CRIMSON_ARROW_ATK, skill_lv, tick, flag|SD_LEVEL|SD_ANIMATION);
|
||||
break;
|
||||
|
||||
case MO_INVESTIGATE:
|
||||
@ -5612,6 +5612,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
|
||||
case DK_SERVANT_W_DEMOL:
|
||||
case DK_MADNESS_CRUSHER:
|
||||
case DK_HACKANDSLASHER:
|
||||
case AG_CRIMSON_ARROW_ATK:
|
||||
case AG_DESTRUCTIVE_HURRICANE:
|
||||
case AG_SOUL_VC_STRIKE:
|
||||
case AG_CRYSTAL_IMPACT:
|
||||
|
@ -4366,6 +4366,11 @@ int status_calc_pc_sub(map_session_data* sd, uint8 opt)
|
||||
base_status->smatk += skill * 3;
|
||||
}
|
||||
|
||||
// 2-Handed Staff Mastery
|
||||
if( sd->status.weapon == W_2HSTAFF && ( skill = pc_checkskill( sd, AG_TWOHANDSTAFF ) ) > 0 ){
|
||||
base_status->smatk += skill * 2;
|
||||
}
|
||||
|
||||
// ----- PHYSICAL RESISTANCE CALCULATION -----
|
||||
if ((skill = pc_checkskill_imperial_guard(sd, 1)) > 0)// IG_SHIELD_MASTERY
|
||||
base_status->res += skill * 3;
|
||||
|
Loading…
x
Reference in New Issue
Block a user