Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SF2M Rewrite (1.8.0) #109

Open
wants to merge 56 commits into
base: master
Choose a base branch
from
Open

SF2M Rewrite (1.8.0) #109

wants to merge 56 commits into from

Conversation

Mentrillum
Copy link
Owner

@Mentrillum Mentrillum commented Apr 1, 2023

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

  • Fully utilize private forwards to decrease coupled code
  • Rewrite the boss entities (chaser and statue) to use the NextBot Behavior system
  • 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
  • Create a PvE mode (sub plugin creators can make their own entities to fight)
  • Rework the glow system to be incredibly consistent
  • Add a custom changelog config for server owners to tweak with to have their own custom changelog
  • 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
  • Allow bosses to automatically detect animation durations for certain animation states (like chase initial animations)
  • 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
  • Possibly optimized trace filter functions

Known bugs

  • Statue bosses do not work, like at all

Mentrillum and others added 12 commits March 31, 2023 20:30
-Fixed g_VoteTimer being triggered after 5 seconds instead of 1
-Fixed SF2_BasePlayer returning not connected clients as -1 instead of the original client index
* Logo replaced

* Add Korean Translation

* Change some occurrences

---------

Co-authored-by: Mentrillum <[email protected]>
@Mentrillum Mentrillum added the 1.8.0 Bug related to SF2 1.8.0 label Sep 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1.8.0 Bug related to SF2 1.8.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants