Arch Mage, S.MATK, Warlock Summon/Release (#8386)

- Fixed job stat bonuses of Arch Mage
- Fixed damage formula of Summon Elemental Ball / Release 2
- S.MATK is now applied before skill ratio
- Fixes #8381
This commit is contained in:
Playtester 2024-05-29 09:04:23 +02:00 committed by GitHub
parent 19f94e18f0
commit 98eaf85a90
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 9 additions and 8 deletions

View File

@ -9213,7 +9213,7 @@ Body:
Vit: 1 Vit: 1
Int: 1 Int: 1
- Level: 13 - Level: 13
Agi: 1 Dex: 1
Spl: 1 Spl: 1
- Level: 14 - Level: 14
Sta: 1 Sta: 1
@ -9229,7 +9229,7 @@ Body:
Int: 1 Int: 1
Dex: 1 Dex: 1
- Level: 19 - Level: 19
Dex: 1 Int: 1
- Level: 20 - Level: 20
Vit: 1 Vit: 1
Int: 1 Int: 1

View File

@ -8164,8 +8164,8 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
case WL_SUMMON_ATK_WATER: case WL_SUMMON_ATK_WATER:
case WL_SUMMON_ATK_WIND: case WL_SUMMON_ATK_WIND:
case WL_SUMMON_ATK_GROUND: case WL_SUMMON_ATK_GROUND:
skillratio += -100 + (1 + skill_lv) / 2 * (status_get_lv(src) + (sd ? sd->status.job_level : 0)); skillratio += 200;
RE_LVL_DMOD(100); // ! TODO: Confirm new formula RE_LVL_DMOD(100);
break; break;
case LG_RAYOFGENESIS: case LG_RAYOFGENESIS:
skillratio += -100 + 350 * skill_lv + sstatus->int_; // !TODO: What's the INT bonus? skillratio += -100 + 350 * skill_lv + sstatus->int_; // !TODO: What's the INT bonus?
@ -8719,7 +8719,11 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
(sc->getSCE(SC_EARTH_INSIGNIA) && sc->getSCE(SC_EARTH_INSIGNIA)->val1 == 3 && s_ele == ELE_EARTH)) (sc->getSCE(SC_EARTH_INSIGNIA) && sc->getSCE(SC_EARTH_INSIGNIA)->val1 == 3 && s_ele == ELE_EARTH))
skillratio += 25; skillratio += 25;
} }
#ifdef RENEWAL
// SMATK needs to be applied before the skill ratio to prevent rounding issues
if (sd && sstatus->smatk > 0)
ad.damage += ad.damage * sstatus->smatk / 100;
#endif
MATK_RATE(skillratio); MATK_RATE(skillratio);
//Constant/misc additions from skills //Constant/misc additions from skills
@ -8750,9 +8754,6 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
ad.damage -= (int64)ad.damage*i/100; ad.damage -= (int64)ad.damage*i/100;
#ifdef RENEWAL #ifdef RENEWAL
if (sd && sstatus->smatk > 0)
ad.damage += ad.damage * sstatus->smatk / 100;
// MRes reduces magical damage by a percentage and // MRes reduces magical damage by a percentage and
// is calculated before MDEF and other reductions. // is calculated before MDEF and other reductions.
// This should be the official formula. [Rytech] // This should be the official formula. [Rytech]