From 2925af6829c3d719ea7b5a090d4d6e09ddf1c89f Mon Sep 17 00:00:00 2001 From: Paul <90473506+pwbokie@users.noreply.github.com> Date: Wed, 1 Oct 2025 10:39:50 -0400 Subject: [PATCH] Adds the boots of jumping (#30503) * adds boots of jumping * fix linter --- code/__HELPERS/trait_helpers.dm | 1 + code/_globalvars/traits.dm | 1 + code/modules/arcade/prize_datums.dm | 6 ++++++ code/modules/clothing/shoes/colour.dm | 16 ++++++++++++++++ code/modules/mob/mob_emote.dm | 2 +- 5 files changed, 25 insertions(+), 1 deletion(-) diff --git a/code/__HELPERS/trait_helpers.dm b/code/__HELPERS/trait_helpers.dm index 4cf3ede7f05..5c3448c6f1a 100644 --- a/code/__HELPERS/trait_helpers.dm +++ b/code/__HELPERS/trait_helpers.dm @@ -264,6 +264,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_CRYO_DESPAWNING "cryo_despawning" // dont adminbus this please #define TRAIT_EXAMINE_HALLUCINATING "examine_hallucinating" #define TRAIT_WIRE_BLIND "wire_blind" // This doesn't block someone from seeing wires or recalling their position, but randomizes name / function to the user +#define TRAIT_BOOTS_OF_JUMPING "boots_of_jumping" // Mob can do the jump emote without losing stamina /// Whether or not the user is in a MODlink call, prevents making more calls #define TRAIT_IN_CALL "in_call" diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm index 7b4a3e3e03b..87d1233e261 100644 --- a/code/_globalvars/traits.dm +++ b/code/_globalvars/traits.dm @@ -120,6 +120,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_RELAYING_ATTACKER" = TRAIT_RELAYING_ATTACKER, "TRAIT_LOUD" = TRAIT_LOUD, "TRAIT_WIRE_BLIND" = TRAIT_WIRE_BLIND, + "TRAIT_BOOTS_OF_JUMPING" = TRAIT_BOOTS_OF_JUMPING ), /datum/mind = list( diff --git a/code/modules/arcade/prize_datums.dm b/code/modules/arcade/prize_datums.dm index 289c203526d..dfa9374c831 100644 --- a/code/modules/arcade/prize_datums.dm +++ b/code/modules/arcade/prize_datums.dm @@ -371,6 +371,12 @@ GLOBAL_DATUM_INIT(global_prizes, /datum/prizes, new()) typepath = /obj/item/clothing/gloves/fingerless/rapid/headpat cost = 150 +/datum/prize_item/bootsofjumping + name = "Boots of Jumping" + desc = "Boots that were made for jumping. And that's just what they'll do." + typepath = /obj/item/clothing/shoes/leather/jump + cost = 150 + /datum/prize_item/tommygun name = "Tommy Gun" desc = "A replica tommy gun that fires foam darts." diff --git a/code/modules/clothing/shoes/colour.dm b/code/modules/clothing/shoes/colour.dm index 1fb8b2a9778..8260c322c50 100644 --- a/code/modules/clothing/shoes/colour.dm +++ b/code/modules/clothing/shoes/colour.dm @@ -56,6 +56,22 @@ icon_state = "leather" item_color = "leather" +/obj/item/clothing/shoes/leather/jump + name = "boots of jumping" + desc = "Boots with the sole purpose of jumping." + +/obj/item/clothing/shoes/leather/jump/equipped(mob/user, slot, initial) + . = ..() + if(slot != ITEM_SLOT_SHOES || !ishuman(user)) + return + ADD_TRAIT(user, TRAIT_BOOTS_OF_JUMPING, "boots_of_jumping[UID()]") + +/obj/item/clothing/shoes/leather/jump/dropped(mob/user, silent) + . = ..() + if(!ishuman(user) || !HAS_TRAIT(user, TRAIT_BOOTS_OF_JUMPING)) + return + REMOVE_TRAIT(user, TRAIT_BOOTS_OF_JUMPING, "boots_of_jumping[UID()]") + /obj/item/clothing/shoes/rainbow name = "rainbow shoes" desc = "Very gay shoes." diff --git a/code/modules/mob/mob_emote.dm b/code/modules/mob/mob_emote.dm index dc9814e7f64..3de898bbbb6 100644 --- a/code/modules/mob/mob_emote.dm +++ b/code/modules/mob/mob_emote.dm @@ -221,7 +221,7 @@ return FALSE jump_animation(user) - if(isliving(user)) + if(isliving(user) && !HAS_TRAIT(user, TRAIT_BOOTS_OF_JUMPING)) var/mob/living/L = user L.adjustStaminaLoss(30)