mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-27 07:08:00 +01:00
[MIRROR] Refactors embedding to use datums instead of storing data in bespoke elements (#28699)
* Refactors embedding to use datums instead of storing data in bespoke elements (#84599) ## About The Pull Request This refactors embedding elements to make them use singleton datums (similarly to armor) instead being bespoke and creating a new element every time armor values are supposed to be adjusted. Default values have been removed from defines due to now being declared in base class itself. Additionally fixes vending machines and tackling gloves setting generated shards (which they instantly embed into their victim) embed properties to null after running the embedding code, despite said shards having non-null embedding values by default, making them not be able to embed into anyone else, also potentially breaking the pain/jostling code if they somehow get updated. ## Why It's Good For The Game Current embedding system is an unnecessarily complicated mess as bespoke elements are hard to work with, and creating a new element every time you change values is hacky at best. This change should make it easier to read and work with. ## Changelog 🆑 fix: Fixed glass shards generated from falling vending machines or tackling windows not being able to embed into anyone. refactor: Refactored embedding code to use datums instead of bespoke elements and ugly associated lists. /🆑 * Refactors embedding to use datums instead of storing data in bespoke elements * modular fixes * fix c14 * paint -> pain ugggh --------- Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com>
This commit is contained in:
co-authored by
SmArtKar
SpaceLoveSs13
parent
6da3dcaa04
commit
f4e244fb49
@@ -180,38 +180,11 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list(
|
||||
#define UNARMED_MISS_CHANCE_MAX 80
|
||||
|
||||
//Combat object defines
|
||||
|
||||
//Embedded objects
|
||||
///Chance for embedded objects to cause pain (damage user)
|
||||
#define EMBEDDED_PAIN_CHANCE 15
|
||||
///Chance for embedded object to fall out (causing pain but removing the object)
|
||||
#define EMBEDDED_ITEM_FALLOUT 5
|
||||
///Chance for an object to embed into somebody when thrown
|
||||
#define EMBED_CHANCE 45
|
||||
///Coefficient of multiplication for the damage the item does while embedded (this*item.w_class)
|
||||
#define EMBEDDED_PAIN_MULTIPLIER 2
|
||||
///Coefficient of multiplication for the damage the item does when it first embeds (this*item.w_class)
|
||||
#define EMBEDDED_IMPACT_PAIN_MULTIPLIER 4
|
||||
///The minimum value of an item's throw_speed for it to embed (Unless it has embedded_ignore_throwspeed_threshold set to 1)
|
||||
/// The minimum value of an item's throw_speed for it to embed (Unless it has embedded_ignore_throwspeed_threshold set to 1)
|
||||
#define EMBED_THROWSPEED_THRESHOLD 4
|
||||
///Coefficient of multiplication for the damage the item does when it falls out or is removed without a surgery (this*item.w_class)
|
||||
#define EMBEDDED_UNSAFE_REMOVAL_PAIN_MULTIPLIER 6
|
||||
///A Time in ticks, total removal time = (this*item.w_class)
|
||||
#define EMBEDDED_UNSAFE_REMOVAL_TIME 30
|
||||
///Chance for embedded objects to cause pain every time they move (jostle)
|
||||
#define EMBEDDED_JOSTLE_CHANCE 5
|
||||
///Coefficient of multiplication for the damage the item does while
|
||||
#define EMBEDDED_JOSTLE_PAIN_MULTIPLIER 1
|
||||
///This percentage of all pain will be dealt as stam damage rather than brute (0-1)
|
||||
#define EMBEDDED_PAIN_STAM_PCT 0.0
|
||||
///For thrown weapons, every extra speed it's thrown at above its normal throwspeed will add this to the embed chance
|
||||
/// For thrown embedding weapons, every extra speed it's thrown at above its normal throwspeed will add this to the embed chance
|
||||
#define EMBED_CHANCE_SPEED_BONUS 10
|
||||
|
||||
#define EMBED_HARMLESS list("pain_mult" = 0, "jostle_pain_mult" = 0, "ignore_throwspeed_threshold" = TRUE)
|
||||
#define EMBED_HARMLESS_SUPERIOR list("pain_mult" = 0, "jostle_pain_mult" = 0, "ignore_throwspeed_threshold" = TRUE, "embed_chance" = 100, "fall_chance" = 0.1)
|
||||
#define EMBED_POINTY list("ignore_throwspeed_threshold" = TRUE)
|
||||
#define EMBED_POINTY_SUPERIOR list("embed_chance" = 100, "ignore_throwspeed_threshold" = TRUE)
|
||||
|
||||
//Gun weapon weight
|
||||
#define WEAPON_LIGHT 1
|
||||
#define WEAPON_MEDIUM 2
|
||||
|
||||
Reference in New Issue
Block a user