Retera / WarsmashModEngine

An emulation engine to improve Warcraft III modding
GNU Affero General Public License v3.0
192 stars 37 forks source link

Ability Builder v0.6 #49

Closed Glasislundr closed 6 months ago

Glasislundr commented 10 months ago

Original v0.1 description: The AbilityBuilder seeks to create a method of building spells out of configuration files rather than hard-coded classes. The final goal here would be to add a new feature in the Object Editor that would allow users to modify the full function of an ability.

Currently there are only a few example spells implemented, but as the framework is largely functional, it should be relatively easy to add more going forward.

For some changes outside of these additions, I'll copy from the commit messages:

Updates from v0.1 to v0.2: Added Flex spells, Channel spells, lightning hooks, state modifiers, and sound Major bug fixes with the order of on-cast actions

Updates from v0.2 to v0.3: Ability Builder Projectiles implemented! Added spells that automatically select a target, for Cannibalize/Raise Dead Several refactors: adding code/alias to all abilities, cleaning up Ability Builder type names for floats, broke getCastingUnit into sub types getBuffedUnit and getListenerUnit for specific cases

Features:

Fixes

Updates from v0.3 to v0.4: Major ability refactor Support for Item abilities with separate cooldowns Transformations Added! Pairing Abilities!

Features:

Fixes

Updates from v0.4 to v0.5: Implemented Ability Requirements! Refactored Passive abilities!

Fixes

Updates from v0.5 to v0.6: Implemented Autocasting! Major Fog of War Improvements! Overhauls for Ethereal and Magic Immunity.

Features:

Fixes:

Glasislundr commented 9 months ago

Updated pull request with v0.3

Glasislundr commented 8 months ago

Updated pull request with v0.4

Glasislundr commented 8 months ago

Updated pull request with v0.5

Glasislundr commented 7 months ago

Updated pull request with v0.6

Retera commented 6 months ago

I've had fun playing with this pull request in locally merged clients, and I think that it adds a significant gain of functionality in terms of cool new abilities, so I will merge it. If we encounter future issues with bugs in some of these abilities, we can create GitHub issues for them.