Skip to content

Commit

Permalink
Merge branch 'stable' into rebalance
Browse files Browse the repository at this point in the history
Signed-off-by: Haru <[email protected]>
  • Loading branch information
MishimaHaruna committed May 1, 2024
2 parents 81e6850 + a2d8e27 commit 41fe28c
Show file tree
Hide file tree
Showing 31 changed files with 1,259 additions and 389 deletions.
2 changes: 2 additions & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ linton-dawson <[email protected]>
LiYu <[email protected]>
louisplag <[email protected]>
Lucas Brito <[email protected]>
Lucas Golino <[email protected]>
M45T3Ryu <[email protected]>
malufett <[email protected]>
maqc1 <[email protected]>
Expand Down Expand Up @@ -178,6 +179,7 @@ TungSinpei <[email protected]>
ultramage <[email protected]>
Unknown <[email protected]>
Victor <[email protected]>
vietlubu <[email protected]>
Vincent Thibault <[email protected]>
Wolfie@HP-Laptop <[email protected]>
Wolf <[email protected]>
Expand Down
56 changes: 56 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,61 @@ All these changes only affect Renewal. Pre-renewal is unchanged.
- Fixed casting time changed: `0.4` s -> `0.2` s
- Variable casting time changed: `1.6` s -> `0.8` s

## [v2024.04] `April 2024`

### Added

- Implemented `skill->get_index_sub()`, allowing to prevent error reports on the console when a skill is not found, for testing whether a skill exists in places where its absence is not an error. (#3292)
- Implemented (m)atk/(m)def percent system: (#3290)
- Implemented percent atk/def/matk/mdef bonus calculation, matching the official behavior
- Added the `AtkPerc`, `DefPerc`, `MatkPerc`, `MdefPerc` calc flags to `sc_config.conf` to trigger recalculation of the respective stats
- Added atk percent bonus to the client's status window like on official servers (note: the matk percent bonus is not displayed)
- Added def percent bonus to the client's status window (included in the soft def)
- Implemented official behavior for skills/status changes that officially rely on this system (detailed below)
- Added the script command `getitemgroupitems()` to obtain a list (without duplicates) of all items contained in a given item group (#3275)
- Added support for the `ZC_SOULENERGY` packet for displaying soul balls, split from `ZC_SPIRITS` for new clients (#3291)

### Changed

- Converted handling of packets `ZC_SKILL_SELECT_REQUEST`, `CZ_SKILL_SELECT_RESPONSE` and `ZC_SPIRITS2` to the structure format. (#3292, #3291)
- Changed the Tarot Card of Fate (`CG_TAROTCARD`) Strength (atk), The Magician (matk), The Devil (atk, matk), The Sun (atk, matk, def) bonus calculation to use the newly implemented atk/def percent system. This includes the new SCs `SC_TAROTCARD_ATK_PERC`, `SC_TAROTCARD_MATK_PERC`, `SC_TAROTCARD_DEF_PERC`. (#3290)
- Changed the Gospel (`PA_GOSPEL`) bonus calculations to use the newly implemented atk/def percent system. This includes the new SC `SC_GOSPEL_ATK_PERC`. (#3290)
- Changed the Provoke (`SM_PROVOKE`, `MER_PROVOKE`) SC (`SC_PROVOKE`) to use the newly implemented atk/def percent system. (#3290)
- Changed the Concentration (`LK_CONCENTRATION`) SC (`SC_CONCENTRATION`) to use the newly implemented atk/def percent system. (#3290)
- Changed the Bloodlust (`HAMI_BLOODLUST`) SC (`SC_HAMI_BLOODLUST`) to use the newly implemented atk/def percent system. (#3290)
- Changed the Vital Strike (`LK_JOINTBEAT`) SC (`SC_JOINTBEAT`) to use the newly implemented atk/def percent system. (#3290)
- Changed the Eske (`SL_SKE`) SC (`SC_SKE`) to use the newly implemented atk/def percent system. (#3290)
- Changed the Fleeting Move (`HFLI_FLEET`) SC (`SC_HLIF_FLEET`) to use the newly implemented atk/def percent system. (#3290)
- Changed the Curse SC (`SC_CURSE`) to use the newly implemented atk/def percent system. (#3290)
- Changed `SC_INCATKRATE` to use the newly implemented atk/def percent system. (#3290)
- Changed the Divest Weapon (`RG_STRIPWEAPON`) SC (`SC_NOEQUIPWEAPON`) to use the newly implemented atk/def percent system. (#3290)
- Changed the Mind Breaker (`PF_MINDBREAKER`) SC (`SC_MINDBREAKER`) to use the newly implemented atk/def percent system. (#3290)
- Changed the Divest Shield (`RG_STRIPSHIELD`) SC (`SC_NOEQUIPSHIELD`) to use the newly implemented atk/def percent system. (#3290)
- Changed the Fling (`GS_FLING`) SC (`SC_FLING`) to use the newly implemented atk/def percent system. (#3290)
- Changed the Angelus (`AL_ANGELUS`) SC (`SC_ANGELUS`) to use the newly implemented atk/def percent system. (#3290)
- Changed Poison (`SC_POISON`) and Deadly Poison (`SC_DPOISON`) to use the newly implemented atk/def percent system. (#3290)
- Changed Asura Strike (`MO_EXTREMITYFIST`) to ignore atk percent bonuses. (#3290)
- Changed several functions to take or return `enum scb_flag` where appropriate. (#3290)
- Added a compatibility workaround for `enum scb_flag` (via typedef to `e_scb_flag` and `int64_t` constants) for pre-C23 MSVC versions that don't support enum values larger than 32 bit. This is only conditionally enabled on such compilers, and will be dropped when we'll be able to switch the C standard to C23. (#3290)
- Split handling of the spiritball clif function into `clif->spiritballs()` and `clif->soulball()`, with incompatible arguments to the old `clif->spiritball()` calls. Second argument is now the amount of spheres, instead of their type. (#3291)

### Fixed

- Fixed a memory leak when reloading the unit params db (#3288)
- Fixed an assertion failure in Auto Shadow Spell when the character has no cloned or reproduced skills. (#3292)
- Fixed Auto Shadow Spell's inability to switch to a skill with a lower skill id than the previously selected one. (#3292)
- Fixed an assertion failure when clicking "ok" with no skills selected or clicking "cancel" in Shadow Spell. (#3292, issue #3286)
- Fixed the value of the `flag` field of packet `ZC_SKILL_SELECT_REQUEST`, expected to be 1 (meaning auto shadow spell) rather than the amount of skills in the list. (#3292)
- Fixed soul balls not displaying correctly in clients from 2020 onwards. (#3291)

### Deprecated

- Support for C99 is deprecated and will be removed soon. C11 will be the required C standard since all the officially supported compilers implement that. This is a reminder that the mainstream support for VS2019 by Microsoft ended on Apr 9 2024, making VS2022 (version 17.4 and newer) the only version we currently support officially.

### Other

- Work on the rebalance patch is continuing on the `rebalance` branch.

## [v2024.03] `March 2024`

### Added
Expand Down Expand Up @@ -3137,6 +3192,7 @@ Note: everything included in this release is part of PR #3198 which consists of
- New versioning scheme and project changelogs/release notes (#1853)

[Unreleased]: https://github.com/HerculesWS/Hercules/compare/stable...master
[v2024.04]: https://github.com/HerculesWS/Hercules/compare/v2024.03...v2024.04
[v2024.03]: https://github.com/HerculesWS/Hercules/compare/v2024.02...v2024.03
[v2024.02]: https://github.com/HerculesWS/Hercules/compare/v2023.12...v2024.02
[v2023.12]: https://github.com/HerculesWS/Hercules/compare/v2023.11...v2023.12
Expand Down
7 changes: 6 additions & 1 deletion db/constants.conf
Original file line number Diff line number Diff line change
Expand Up @@ -1310,7 +1310,12 @@ constants_db: {

SC_FIRE_EXPANSION_TEAR_GAS_SOB: 718

SC_NO_SWITCH_WEAPON: 719
SC_TAROTCARD_ATK_PERC: 719
SC_TAROTCARD_MATK_PERC: 720
SC_TAROTCARD_DEF_PERC: 721
SC_GOSPEL_ATK_PERC: 722

SC_NO_SWITCH_WEAPON: 723

comment__: "Emotes"
e_gasp: 0
Expand Down
94 changes: 63 additions & 31 deletions db/pre-re/sc_config.conf
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,10 @@ SC_TYPE: {
Range: (bool, defaults to false)
Regen: (bool, defaults to false)
Dye: (bool, defaults to false)
AtkPerc: (bool, defaults to false)
DefPerc: (bool, defaults to false)
MatkPerc: (bool, defaults to false)
MdefPerc: (bool, defaults to false)
All: (bool, defaults to false)
}
Icon: (string, defaults to SI_BLANK) The status icon attached to the SC
Expand All @@ -92,10 +96,8 @@ SC_PROVOKE: {
NoBoss: true
}
CalcFlags: {
Batk: true
Watk: true
Def: true
Def2: true
AtkPerc: true
DefPerc: true
}
Icon: "SI_PROVOKE"
Skill: "SM_PROVOKE"
Expand Down Expand Up @@ -198,7 +200,7 @@ SC_ANGELUS: {
Buff: true
}
CalcFlags: {
Def2: true
DefPerc: true
}
Icon: "SI_ANGELUS"
Skill: "AL_ANGELUS"
Expand Down Expand Up @@ -459,7 +461,7 @@ SC_NOEQUIPWEAPON: {
Buff: true
}
CalcFlags: {
Watk: true
AtkPerc: true
}
Icon: "SI_NOEQUIPWEAPON"
Skill: "RG_STRIPWEAPON"
Expand All @@ -473,7 +475,7 @@ SC_NOEQUIPSHIELD: {
Buff: true
}
CalcFlags: {
Def: true
DefPerc: true
}
Icon: "SI_NOEQUIPSHIELD"
Skill: "RG_STRIPSHIELD"
Expand Down Expand Up @@ -756,11 +758,9 @@ SC_LKCONCENTRATION: {
Buff: true
}
CalcFlags: {
Batk: true
Watk: true
Hit: true
Def: true
Def2: true
AtkPerc: true
DefPerc: true
}
Icon: "SI_LKCONCENTRATION"
Skill: "LK_CONCENTRATION"
Expand Down Expand Up @@ -980,8 +980,8 @@ SC_JOINTBEAT: {
Debuff: true
}
CalcFlags: {
Batk: true
Def2: true
AtkPerc: true
DefPerc: true
Speed: true
Aspd: true
}
Expand All @@ -994,8 +994,8 @@ SC_MINDBREAKER: {
Buff: true
}
CalcFlags: {
Matk: true
Mdef2: true
MatkPerc: true
MdefPerc: true
}
Skill: "PF_MINDBREAKER"
}
Expand Down Expand Up @@ -5389,7 +5389,7 @@ SC_MIRACLE: {
}
SC_POISON: {
CalcFlags: {
Def2: true
DefPerc: true
Regen: true
}
Icon: "SI_CLOUDKILL"
Expand Down Expand Up @@ -5532,10 +5532,8 @@ SC_ALMIGHTY: {
}
SC_SKE: {
CalcFlags: {
Batk: true
Watk: true
Def: true
Def2: true
AtkPerc: true
DefPerc: true
}
Icon: "SI_SKE"
Skill: "SL_SKE"
Expand Down Expand Up @@ -5568,8 +5566,7 @@ SC_SLEEP: {
SC_CURSE: {
CalcFlags: {
Luk: true
Batk: true
Watk: true
AtkPerc: true
Speed: true
}
Skill: "NPC_CURSEATTACK"
Expand All @@ -5586,7 +5583,7 @@ SC_BLIND: {
}
SC_DPOISON: {
CalcFlags: {
Def2: true
DefPerc: true
Regen: true
}
Skill: "NPC_POISON"
Expand Down Expand Up @@ -5723,8 +5720,7 @@ SC_KNOWLEDGE: {
}
SC_FLING: {
CalcFlags: {
Def: true
Def2: true
DefPerc: true
}
Skill: "GS_FLING"
}
Expand All @@ -5743,15 +5739,13 @@ SC_HLIF_CHANGE: {
}
SC_HAMI_BLOODLUST: {
CalcFlags: {
Batk: true
Watk: true
AtkPerc: true
}
Skill: "HAMI_BLOODLUST"
}
SC_HLIF_FLEET: {
CalcFlags: {
Batk: true
Watk: true
AtkPerc: true
Aspd: true
}
Skill: "HFLI_FLEET"
Expand Down Expand Up @@ -5902,8 +5896,7 @@ SC_INCMSPRATE: {
}
SC_INCATKRATE: {
CalcFlags: {
Batk: true
Watk: true
AtkPerc: true
}
}
SC_INCMATKRATE: {
Expand Down Expand Up @@ -6408,6 +6401,45 @@ SC_ACTIVE_MONSTER_TRANSFORM: {
SC__FEINTBOMB_MASTER: {
Skill: "SC_FEINTBOMB"
}
SC_TAROTCARD_ATK_PERC: {
Flags: {
NoSave: true
NoClearanceReset: true
Debuff: true
}
CalcFlags: {
AtkPerc: true
}
}
SC_TAROTCARD_MATK_PERC: {
Flags: {
NoSave: true
NoClearanceReset: true
Debuff: true
}
CalcFlags: {
MatkPerc: true
}
}
SC_TAROTCARD_DEF_PERC: {
Flags: {
NoSave: true
NoClearanceReset: true
Debuff: true
}
CalcFlags: {
DefPerc: true
}
}
SC_GOSPEL_ATK_PERC: {
Flags: {
NoSave: true
Debuff: true
}
CalcFlags: {
AtkPerc: true
}
}
SC_NO_SWITCH_WEAPON: {
Flags: {
NoSave: true
Expand Down
Loading

0 comments on commit 41fe28c

Please sign in to comment.