Simple-Station / Einstein-Engines

A Space Station 14 upstream repository, inspired by Baystation12.
https://einstein.simplestation.org
GNU Affero General Public License v3.0
24 stars 49 forks source link

Mass Contests Remake #480

Open VMSolidus opened 1 week ago

VMSolidus commented 1 week ago

Description

Part of Issue #467

This is a complete re imagining of the Nyanotrasen Mass Contest System(Long since removed from the game). This system adds a highly flexible function that outputs a ratio of a given entity's mass, that is optionally relative to another entity. I've primarily written this system to be used in conjunction with PR #458 , as it adds several new implementations of variable player mass to the game.

How this differs from the original Mass Contest system is that it is configured via hotloaded CVars, and is inherently clamped so that character mass only modifies functions by a finite amount rather than providing infinite scaling. This essentially means that while an Oni is 25% better at shoving a Felinid to the floor thanks to their different masses, a 2000kg Lamia is also only 25% better at shoving a Felinid to the floor, rather than 50000% better. The inverse is also true, a small player character can only be 25% better or worse at a given implementation. These implementations are not handled directly by the ContestSystem, and are instead handled directly by other systems that call upon it.

This percentage limit can be modified by a new CVar at any time. Additionally, the entire MassContest system can be optionally toggled off completely at any time via CVar, without needing to modify any code that calls upon it.

At this time, I have included three different implementations to serve as suitable examples for how MassContest can be used.

  1. Weapon recoil is now modified by an entity's mass relative to the human average baseline. Smaller characters experience more recoil, larger characters experience less recoil
  2. Disarm/Shove is now modified by Mass Contests. Entities that are sized differently from their target have their shove/disarm chance modified based on the ratio of performer and target mass.
  3. Certain types of handcuffs(such as Cablecuffs and zipties) are now faster to slip out of if you are smaller than the average.

Changelog

:cl:

DangerRevolution commented 1 week ago

Does this PR rely on 458?

VMSolidus commented 1 week ago

Does this PR rely on 458?

This does not requires 458, but it is related to 458. Adding mass contests is primarily a method of helping to provide new game-play variety for characters whose mass is modified by height sliders.

But, it doesn't require it in the sense that if we merge this but not height sliders, it will still function completely as is as its own standalone system. You would get to experience it as differences by Felinids, Harpies, Oni, and Diona.