Over the years Slender Fortress evolved and the younger Modified counterpart also evolved, but most of the code was touched in not so good ways and sub plugins are forced to be designed around this forced nature. The main purpose of this PR is to fully modularize SF2M's codebase. Features like the flashlight, ultravision, proxy system, and music system are now properly divided up into their own files rather than have each main file rely on parts of one system that is completely unrelated to it. To accomplish this SF2M now uses private forwards, which is the local equivalent to global forwards, these can be called and other files with static functions can fire once these forwards are called.
Along with the backend changes, there will be many changes that are QoL improvements for server owners or creators, there may not be as many player QoL changes except for bug fixes. Once everything is ready to go, the final update will ship.
[ ] Fully utilize private forwards to decrease coupled code
[x] Rewrite the boss entities (chaser and statue) to use the NextBot Behavior system
[x] Turn certain entities (like the glow, flashlight, ultravision, and pages) into custom entities using the entity factories
[ ] Rewrite the music system (it is horrible right now)
[ ] Slightly rewrite the special round system
[ ] Make use of the SF2_BasePlayer methodmap to satisfy dependency inversion
[ ] Make more use of the boss controller methodmaps
[x] Create a PvE mode (sub plugin creators can make their own entities to fight)
[x] Rework the glow system to be incredibly consistent
[x] Add a custom changelog config for server owners to tweak with to have their own custom changelog
[x] Rework the boss attack index system to utilize names rather than, well, numbers
[ ] Add complete and organized documentation using the markdown files for maps and bosses
[x] Allow bosses to automatically detect animation durations for certain animation states (like chase initial animations)
[x] Allow creators to use model events to determine when a boss should hit a player
[ ] Remove copy and pasted code
[ ] Whatever else may need to be added
Changes
Added CHAR_SPATIALSTEREO and CHAR_DRYMIX for bosses (achieved by adding a ) or # before a sound directory respectively, example: "1" ")sound/slender/boss/move1.wav")
Fixed a bug where the last Nightmare sound would not play on Apollyon or Nightmare
Changed the majority of the sounds in the plugin to use spatial sounds
Optimized IsClientInGame and TF2_IsClientInCondition
Removed many copy and pasted code
Altered the kill feed for bosses to not be so overly complicated for no reason
Added the following admin commands, sm_sf2_toggle_intro, sm_sf2_global_alltalk, sm_sf2_block_suicide, sm_sf2_maxplayers, sm_sf2_maxplayers_override, sm_sf2_specialround_mode, sm_sf2_player_infinite_sprint_override, sm_sf2_player_infinite_flashlight_override, sm_sf2_player_infinite_blink_override, sm_sf2_wall_hax, and sm_sf2_keep_weapons
Fixed a bug where boss chase initial animations played twice
Over the years Slender Fortress evolved and the younger Modified counterpart also evolved, but most of the code was touched in not so good ways and sub plugins are forced to be designed around this forced nature. The main purpose of this PR is to fully modularize SF2M's codebase. Features like the flashlight, ultravision, proxy system, and music system are now properly divided up into their own files rather than have each main file rely on parts of one system that is completely unrelated to it. To accomplish this SF2M now uses private forwards, which is the local equivalent to global forwards, these can be called and other files with static functions can fire once these forwards are called.
Along with the backend changes, there will be many changes that are QoL improvements for server owners or creators, there may not be as many player QoL changes except for bug fixes. Once everything is ready to go, the final update will ship.
If there is ANY bug you've seen and figured out how to trigger, submit it as a Github issue and add the label 1.8.0. Link is here https://github.com/Mentrillum/Slender-Fortress-Modified-Versions/issues
Goals
Changes
Known bugs