[FE8] Morden c-skillsystem release

We have published the first version of release:


Release v0.1.0


7 Likes

Add new skill

return to original position at post-action:
1

6 Likes

Add new skill

Thunderstorm: cause AOE damage for enemies if hitted.

3

4 Likes

Add skill: Post-action swap

3

1 Like

I don’t like making posts like these but I think it’s better to make suggestions sooner rather than later.

-Do you plan on supporting the Fourth Allegiance patch? If so, it’d probably be more convenient to add it (especially since parts of it are written in C already) early instead of retroactively changing code to add compatibility. Not only would the latter be an extra hassle but it would likely create some extra bugs with some more involved skills (such as Keep Up, Armor March, and Pass in the non-C version).

-A config option to determine which allegiances are targeted by skills. For example, instead of writing the support skills to check IsSameAllegiance or AreUnitsAllied, make them check a custom function that calls one or the other depending on the config option. If you do want to implement the Fourth Allegiance, this would also enable specific versions of those checks since allegiances are no longer necessarily mutual (eg. blue can be allied with green but green can still attack blue) or to make AoE skills such as Savage Blow only damage units allied to the target instead of not allied to the attacker.

-A config option to make it so traps/range events can also trigger on units other than the active unit (such as those moved by skills or dropped with rescue). Using your Swap gif as an example, if there were fire traps under both Innes and Caellach, in vanilla only Innes would be damaged, but with the suggested config option (if it is enabled) it would also damage Caellach since he was repositioned onto a trap.

Studied the patch roughly, I think it has too much hooks to the vanilla functions that I prefer to say it as a subsystem rather than a patch. I don’t think this kind of patch, which holds a lot of hooks but has limited applicability, should be introduced into the common project (and even not as a patch that allow unskilled wizards to install as well). Instead, it should be introduced into their own games by skilled wizards who are interested and capable, just as Gaiden style magic system or ThreeHouses style magic system.

Interesting idea, but it may slow down battle-calc, which may cause the game freezed and players feel stuttered during target-selection, so I think it is better to maintain a simplified calculation process for the skillsys at present.

Since function HandlePostActionTraps() is exec after post-action, so it may cause active-unit trigger the trap he stands on after all special effect is done.

Ideas you mentioned are interesting, but I think maybe they are not as important as str/mag or weapon-range that need to be integrated into the skillsys directly. However, the entire skillsys is open sourced, and I’d love to see someone make customization based on it. I think you can integrate your ideas into your own game if you’re skilled enough, and when it comes to the question of the need to call on API or insert hooks to hook-list of skillsys, I am also happy to answer.

3 Likes

I don’t know if this helps any, but I rewrote some of the weapon range stuff using the decomp C and integrated it into pokemblem a while ago. I did this to speed up GenerateDangerZoneRange. My approach was to keep the decomp weapon range bits method, but if something falls outside that, use a different function.
https://github.com/Veslyquix/Pokemblem/blob/master/Patches/DangerRadius/C/GenerateDangerZoneRange.c#L434

Might be worth a little look. Good luck with this exciting project.

3 Likes

I follow this guide, but after placing the patches in there it doesn’t let me use them and it brings this string of numbers. This happens on both a completely vanilla ROM and one with regular SkillSystems installed.
image

The patches we offered here are used for this modern skillsys project.Not for vanilla nor community project. You need to follow the readme of the repo to build it, then use FEB.