mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-10 09:42:29 +00:00
Some Loadout Additions (#89500)
This commit is contained in:
@@ -6,6 +6,15 @@
|
||||
/// Shoes have been tied in knots
|
||||
#define SHOES_KNOTTED 2
|
||||
|
||||
/// Shoes aren't fastened with anything
|
||||
#define SHOES_SLIPON "absence of laces"
|
||||
/// Shoes are fastened with laces
|
||||
#define SHOES_LACED "shoelaces"
|
||||
/// Shoes are fastened with velcro
|
||||
#define SHOES_VELCRO "velcro straps"
|
||||
/// Shoes are fastened with buckled straps
|
||||
#define SHOES_STRAPS "straps"
|
||||
|
||||
//suit sensors: sensor_mode defines
|
||||
/// Suit sensor is turned off
|
||||
#define SENSOR_OFF 0
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
ears?.adjustEarDamage(10, 15)
|
||||
to_chat(victim, "<font color='red' size='8'>HONK</font>")
|
||||
var/obj/item/clothing/shoes/victim_shoes = victim.get_item_by_slot(ITEM_SLOT_FEET)
|
||||
if(!victim_shoes?.can_be_tied)
|
||||
if(!victim_shoes || victim_shoes.fastening_type == SHOES_SLIPON)
|
||||
continue
|
||||
victim_shoes.adjust_laces(SHOES_KNOTTED)
|
||||
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
/datum/quirk/item_quirk/colorist
|
||||
name = "Colorist"
|
||||
desc = "You like carrying around a hair dye spray to quickly apply color patterns to your hair."
|
||||
icon = FA_ICON_FILL_DRIP
|
||||
value = 0
|
||||
medical_record_text = "Patient enjoys dyeing their hair with pretty colors."
|
||||
mail_goodies = list(/obj/item/dyespray)
|
||||
|
||||
/datum/quirk/item_quirk/colorist/add_unique(client/client_source)
|
||||
give_item_to_holder(/obj/item/dyespray, list(LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS))
|
||||
@@ -8,6 +8,17 @@
|
||||
. = ..()
|
||||
ADD_TRAIT(src, TRAIT_CONTRABAND, INNATE_TRAIT)
|
||||
|
||||
/// Creates a random poster designed for a certain audience
|
||||
/obj/item/poster/random_contraband/pinup
|
||||
name = "random pinup poster"
|
||||
icon_state = "rolled_poster"
|
||||
/// List of posters which make you feel a certain type of way
|
||||
var/static/list/pinup_posters = list(/obj/structure/sign/poster/contraband/lizard, /obj/structure/sign/poster/contraband/lusty_xenomorph)
|
||||
|
||||
/obj/item/poster/random_contraband/pinup/Initialize(mapload, obj/structure/sign/poster/new_poster_structure)
|
||||
poster_type = pick(pinup_posters)
|
||||
return ..()
|
||||
|
||||
/obj/structure/sign/poster/contraband
|
||||
poster_item_name = "contraband poster"
|
||||
poster_item_desc = "This poster comes with its own automatic adhesive mechanism, for easy pinning to any vertical surface. Its vulgar themes have marked it as contraband aboard Nanotrasen space facilities."
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
return
|
||||
var/mob/living/carbon/dude = target
|
||||
var/obj/item/clothing/shoes/sick_kicks = dude.shoes
|
||||
if (!sick_kicks?.can_be_tied)
|
||||
if (!sick_kicks || sick_kicks.fastening_type == SHOES_SLIPON)
|
||||
to_chat(user, span_warning("[dude] does not have knottable shoes!"), confidential = TRUE)
|
||||
return
|
||||
sick_kicks.adjust_laces(SHOES_KNOTTED)
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
// You do not need to raise this if you are adding new values that have sane defaults.
|
||||
// Only raise this value when changing the meaning/format/name/layout of an existing value
|
||||
// where you would want the updater procs below to run
|
||||
#define SAVEFILE_VERSION_MAX 47
|
||||
#define SAVEFILE_VERSION_MAX 48
|
||||
|
||||
/*
|
||||
SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn
|
||||
@@ -114,6 +114,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
migrate_boolean_sound_prefs_to_default_volume()
|
||||
if (current_version < 47)
|
||||
migrate_boolean_sound_prefs_to_default_volume_v2()
|
||||
if (current_version < 48)
|
||||
migrate_quirk_to_loadout(
|
||||
quirk_to_migrate = "Colorist",
|
||||
new_typepath = /obj/item/dyespray,
|
||||
)
|
||||
|
||||
/// checks through keybindings for outdated unbound keys and updates them
|
||||
/datum/preferences/proc/check_keybindings()
|
||||
|
||||
@@ -20,8 +20,9 @@
|
||||
|
||||
var/offset = 0
|
||||
var/equipped_before_drop = FALSE
|
||||
///Whether these shoes have laces that can be tied/untied
|
||||
var/can_be_tied = TRUE
|
||||
/// How do these shoes stay on?
|
||||
var/fastening_type = SHOES_LACED
|
||||
|
||||
///Are we currently tied? Can either be SHOES_UNTIED, SHOES_TIED, or SHOES_KNOTTED
|
||||
var/tied = SHOES_TIED
|
||||
///How long it takes to lace/unlace these shoes
|
||||
@@ -35,7 +36,7 @@
|
||||
|
||||
/obj/item/clothing/shoes/suicide_act(mob/living/carbon/user)
|
||||
if(prob(50))
|
||||
user.visible_message(span_suicide("[user] begins tying \the [src] up waaay too tightly! It looks like [user.p_theyre()] trying to commit suicide!"))
|
||||
user.visible_message(span_suicide("[user] begins fastening \the [src] up waaay too tightly! It looks like [user.p_theyre()] trying to commit suicide!"))
|
||||
var/obj/item/bodypart/leg/left = user.get_bodypart(BODY_ZONE_L_LEG)
|
||||
var/obj/item/bodypart/leg/right = user.get_bodypart(BODY_ZONE_R_LEG)
|
||||
if(left)
|
||||
@@ -71,9 +72,9 @@
|
||||
return
|
||||
|
||||
if(tied == SHOES_UNTIED)
|
||||
. += "The shoelaces are untied."
|
||||
. += "The [fastening_type] are [untied_adjective()]."
|
||||
else if(tied == SHOES_KNOTTED)
|
||||
. += "The shoelaces are all knotted together."
|
||||
. += "The [fastening_type] are all knotted together."
|
||||
|
||||
/obj/item/clothing/shoes/visual_equipped(mob/user, slot)
|
||||
..()
|
||||
@@ -85,7 +86,7 @@
|
||||
|
||||
/obj/item/clothing/shoes/equipped(mob/user, slot)
|
||||
. = ..()
|
||||
if(can_be_tied && tied == SHOES_UNTIED)
|
||||
if(fastening_type != SHOES_SLIPON && tied == SHOES_UNTIED)
|
||||
our_alert_ref = WEAKREF(user.throw_alert(ALERT_SHOES_KNOT, /atom/movable/screen/alert/shoes/untied))
|
||||
RegisterSignal(src, COMSIG_SHOES_STEP_ACTION, PROC_REF(check_trip), override=TRUE)
|
||||
|
||||
@@ -114,7 +115,7 @@
|
||||
return icon(SSgreyscale.GetColoredIconByType(/datum/greyscale_config/digitigrade, greyscale_colors), "boots_worn")
|
||||
|
||||
/**
|
||||
* adjust_laces adjusts whether our shoes (assuming they can_be_tied) and tied, untied, or knotted
|
||||
* adjust_laces adjusts whether our shoes (assuming they can be tied) and tied, untied, or knotted
|
||||
*
|
||||
* In addition to setting the state, it will deal with getting rid of alerts if they exist, as well as registering and unregistering the stepping signals
|
||||
*
|
||||
@@ -122,10 +123,10 @@
|
||||
* *
|
||||
* * state: SHOES_UNTIED, SHOES_TIED, or SHOES_KNOTTED, depending on what you want them to become
|
||||
* * user: used to check to see if we're the ones unknotting our own laces
|
||||
* * force_lacing: boolean. if TRUE, ignores can_be_tied
|
||||
* * force_lacing: boolean. if TRUE, ignores whether we actually have laces
|
||||
*/
|
||||
/obj/item/clothing/shoes/proc/adjust_laces(state, mob/user, force_lacing = FALSE)
|
||||
if(!can_be_tied && !force_lacing)
|
||||
if(fastening_type == SHOES_SLIPON && !force_lacing)
|
||||
return
|
||||
|
||||
var/mob/living/carbon/human/our_guy
|
||||
@@ -161,17 +162,17 @@
|
||||
return
|
||||
|
||||
if(!in_range(user, our_guy))
|
||||
to_chat(user, span_warning("You aren't close enough to interact with [src]'s laces!"))
|
||||
to_chat(user, span_warning("You aren't close enough to interact with [src]'s [fastening_type]!"))
|
||||
return
|
||||
|
||||
if(user == loc && tied != SHOES_TIED) // if they're our own shoes, go tie-wards
|
||||
if(DOING_INTERACTION_WITH_TARGET(user, our_guy))
|
||||
to_chat(user, span_warning("You're already interacting with [src]!"))
|
||||
return
|
||||
user.visible_message(span_notice("[user] begins [tied ? "unknotting" : "tying"] the laces of [user.p_their()] [src.name]."), span_notice("You begin [tied ? "unknotting" : "tying"] the laces of your [src.name]..."))
|
||||
user.visible_message(span_notice("[user] begins [tied ? "unknotting" : "[fastening_verb()]"] the [fastening_type] of [user.p_their()] [src.name]."), span_notice("You begin [tied ? "unknotting" : "[fastening_verb()]"] the [fastening_type] of your [src.name]..."))
|
||||
|
||||
if(do_after(user, lace_time, target = our_guy, extra_checks = CALLBACK(src, PROC_REF(still_shoed), our_guy)))
|
||||
to_chat(user, span_notice("You [tied ? "unknot" : "tie"] the laces of your [src.name]."))
|
||||
to_chat(user, span_notice("You [tied ? "unknot" : "[fasten_verb()]"] the [fastening_type] of your [src.name]."))
|
||||
if(tied == SHOES_UNTIED)
|
||||
adjust_laces(SHOES_TIED, user)
|
||||
else
|
||||
@@ -182,26 +183,26 @@
|
||||
to_chat(user, span_warning("You must be on the floor to interact with [src]!"))
|
||||
return
|
||||
if(tied == SHOES_KNOTTED)
|
||||
to_chat(user, span_warning("The laces on [loc]'s [src.name] are already a hopelessly tangled mess!"))
|
||||
to_chat(user, span_warning("The [fastening_type] on [loc]'s [src.name] are already a hopelessly tangled mess!"))
|
||||
return
|
||||
if(DOING_INTERACTION_WITH_TARGET(user, our_guy))
|
||||
to_chat(user, span_warning("You're already interacting with [src]!"))
|
||||
return
|
||||
|
||||
var/mod_time = lace_time
|
||||
to_chat(user, span_notice("You quietly set to work [tied ? "untying" : "knotting"] [loc]'s [src.name]..."))
|
||||
to_chat(user, span_notice("You quietly set to work [tied ? "un[fastening_verb()]" : "knotting"] [loc]'s [src.name]..."))
|
||||
if(HAS_TRAIT(user, TRAIT_CLUMSY)) // based clowns trained their whole lives for this
|
||||
mod_time *= 0.75
|
||||
|
||||
if(do_after(user, mod_time, target = our_guy, extra_checks = CALLBACK(src, PROC_REF(still_shoed), our_guy), hidden = TRUE))
|
||||
to_chat(user, span_notice("You [tied ? "untie" : "knot"] the laces on [loc]'s [src.name]."))
|
||||
to_chat(user, span_notice("You [tied ? "un[fasten_verb()]" : "knot"] the [fastening_type] on [loc]'s [src.name]."))
|
||||
if(tied == SHOES_UNTIED)
|
||||
adjust_laces(SHOES_KNOTTED, user)
|
||||
else
|
||||
adjust_laces(SHOES_UNTIED, user)
|
||||
else // if one of us moved
|
||||
user.visible_message(span_danger("[our_guy] stamps on [user]'s hand, mid-shoelace [tied ? "knotting" : "untying"]!"), span_userdanger("Ow! [our_guy] stamps on your hand!"), list(our_guy))
|
||||
to_chat(our_guy, span_userdanger("You stamp on [user]'s hand! What the- [user.p_they()] [user.p_were()] [tied ? "knotting" : "untying"] your shoelaces!"))
|
||||
user.visible_message(span_danger("[our_guy] stamps on [user]'s hand, mid-[tied ? "knotting" : "un[fastening_verb()]"]!"), span_userdanger("Ow! [our_guy] stamps on your hand!"), list(our_guy))
|
||||
to_chat(our_guy, span_userdanger("You stamp on [user]'s hand! What the- [user.p_they()] [user.p_were()] [tied ? "knotting" : "un[fastening_verb()]"] your [fastening_type]!"))
|
||||
user.emote("scream")
|
||||
user.apply_damage(10, BRUTE, user.get_active_hand(), wound_bonus = CANT_WOUND)
|
||||
user.apply_damage(40, STAMINA)
|
||||
@@ -221,7 +222,7 @@
|
||||
if(tied == SHOES_KNOTTED)
|
||||
our_guy.Paralyze(5)
|
||||
our_guy.Knockdown(10)
|
||||
our_guy.visible_message(span_danger("[our_guy] trips on [our_guy.p_their()] knotted shoelaces and falls! What a klutz!"), span_userdanger("You trip on your knotted shoelaces and fall over!"))
|
||||
our_guy.visible_message(span_danger("[our_guy] trips on [our_guy.p_their()] knotted [fastening_type] and falls! What a klutz!"), span_userdanger("You trip on your knotted [fastening_type] and fall over!"))
|
||||
our_guy.add_mood_event("trip", /datum/mood_event/tripped) // well we realized they're knotted now!
|
||||
our_alert_ref = WEAKREF(our_guy.throw_alert(ALERT_SHOES_KNOT, /atom/movable/screen/alert/shoes/knotted))
|
||||
|
||||
@@ -232,21 +233,21 @@
|
||||
our_guy.Paralyze(5)
|
||||
our_guy.Knockdown(10)
|
||||
our_guy.add_mood_event("trip", /datum/mood_event/tripped) // well we realized they're knotted now!
|
||||
our_guy.visible_message(span_danger("[our_guy] trips on [our_guy.p_their()] untied shoelaces and falls! What a klutz!"), span_userdanger("You trip on your untied shoelaces and fall over!"))
|
||||
our_guy.visible_message(span_danger("[our_guy] trips on [our_guy.p_their()] [untied_adjective()] [fastening_type] and falls! What a klutz!"), span_userdanger("You trip on your [untied_adjective()] [fastening_type] and fall over!"))
|
||||
|
||||
if(2 to 5) // .4% chance to stumble and lurch forward
|
||||
our_guy.throw_at(get_step(our_guy, our_guy.dir), 3, 2)
|
||||
to_chat(our_guy, span_danger("You stumble on your untied shoelaces and lurch forward!"))
|
||||
to_chat(our_guy, span_danger("You stumble on your [untied_adjective()] [fastening_type] and lurch forward!"))
|
||||
|
||||
if(6 to 13) // .7% chance to stumble and fling what we're holding
|
||||
var/have_anything = FALSE
|
||||
for(var/obj/item/I in our_guy.held_items)
|
||||
have_anything = TRUE
|
||||
our_guy.accident(I)
|
||||
to_chat(our_guy, span_danger("You trip on your shoelaces a bit[have_anything ? ", flinging what you were holding" : ""]!"))
|
||||
to_chat(our_guy, span_danger("You trip on your [fastening_type] a bit[have_anything ? ", flinging what you were holding" : ""]!"))
|
||||
|
||||
if(14 to 25) // 1.3ish% chance to stumble and be a bit off balance (like being disarmed)
|
||||
to_chat(our_guy, span_danger("You stumble a bit on your untied shoelaces!"))
|
||||
to_chat(our_guy, span_danger("You stumble a bit on your [untied_adjective()] [fastening_type]!"))
|
||||
our_guy.adjust_staggered_up_to(STAGGERED_SLOWDOWN_LENGTH, 10 SECONDS)
|
||||
|
||||
if(26 to 1000)
|
||||
@@ -267,17 +268,17 @@
|
||||
/obj/item/clothing/shoes/attack_self(mob/user)
|
||||
. = ..()
|
||||
|
||||
if (!can_be_tied)
|
||||
if (fastening_type == SHOES_SLIPON)
|
||||
return
|
||||
|
||||
if(DOING_INTERACTION_WITH_TARGET(user, src))
|
||||
to_chat(user, span_warning("You're already interacting with [src]!"))
|
||||
return
|
||||
|
||||
to_chat(user, span_notice("You begin [tied ? "untying" : "tying"] the laces on [src]..."))
|
||||
to_chat(user, span_notice("You begin [tied ? "un" : ""][fastening_verb()] the [fastening_type] on [src]..."))
|
||||
|
||||
if(do_after(user, lace_time, target = src,extra_checks = CALLBACK(src, PROC_REF(still_shoed), user)))
|
||||
to_chat(user, span_notice("You [tied ? "untie" : "tie"] the laces on [src]."))
|
||||
to_chat(user, span_notice("You [tied ? "un" : ""][fasten_verb()] the [fastening_type] on [src]."))
|
||||
adjust_laces(tied ? SHOES_UNTIED : SHOES_TIED, user)
|
||||
|
||||
/obj/item/clothing/shoes/apply_fantasy_bonuses(bonus)
|
||||
@@ -293,3 +294,33 @@
|
||||
var/mob/wearer = loc
|
||||
wearer.update_equipment_speed_mods()
|
||||
return ..()
|
||||
|
||||
/// Returns appropriate description for unfastened shoes
|
||||
/obj/item/clothing/shoes/verb/untied_adjective()
|
||||
switch(fastening_type)
|
||||
if (SHOES_LACED)
|
||||
return "untied"
|
||||
if (SHOES_VELCRO, SHOES_STRAPS)
|
||||
return "loose"
|
||||
|
||||
return "nonexistant"
|
||||
|
||||
/// Returns appropriate verb for how to fasten shoes
|
||||
/obj/item/clothing/shoes/verb/fasten_verb()
|
||||
switch(fastening_type)
|
||||
if (SHOES_LACED)
|
||||
return "tie"
|
||||
if (SHOES_VELCRO, SHOES_STRAPS)
|
||||
return "fasten"
|
||||
|
||||
return "do something mysterious to"
|
||||
|
||||
/// Returns appropriate verb for fastening shoes
|
||||
/obj/item/clothing/shoes/verb/fastening_verb()
|
||||
switch(fastening_type)
|
||||
if (SHOES_LACED)
|
||||
return "tying"
|
||||
if (SHOES_VELCRO, SHOES_STRAPS)
|
||||
return "fastening"
|
||||
|
||||
return "doing something mysterious to"
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
equip_delay_other = 50
|
||||
resistance_flags = NONE
|
||||
armor_type = /datum/armor/shoes_jackboots
|
||||
can_be_tied = FALSE
|
||||
fastening_type = SHOES_SLIPON
|
||||
body_parts_covered = FEET|LEGS
|
||||
|
||||
/datum/armor/shoes_jackboots
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
strip_delay = 100
|
||||
equip_delay_other = 100
|
||||
armor_type = /datum/armor/shoes_roman
|
||||
can_be_tied = FALSE
|
||||
fastening_type = SHOES_STRAPS
|
||||
|
||||
/obj/item/clothing/shoes/griffin
|
||||
name = "griffon boots"
|
||||
@@ -40,7 +40,7 @@
|
||||
desc = "A giant, clunky pair of shoes crudely made out of bronze. Why would anyone wear these?"
|
||||
icon = 'icons/obj/clothing/shoes.dmi'
|
||||
icon_state = "clockwork_treads"
|
||||
can_be_tied = FALSE
|
||||
fastening_type = SHOES_SLIPON
|
||||
|
||||
/obj/item/clothing/shoes/bronze/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -52,7 +52,7 @@
|
||||
name = "grilling sandals"
|
||||
icon_state = "cookflops"
|
||||
inhand_icon_state = "cookflops"
|
||||
can_be_tied = FALSE
|
||||
fastening_type = SHOES_SLIPON
|
||||
species_exception = list(/datum/species/golem)
|
||||
|
||||
/obj/item/clothing/shoes/jackbros
|
||||
@@ -91,12 +91,6 @@
|
||||
. = ..()
|
||||
. += emissive_appearance('icons/obj/clothing/shoes.dmi', "glow_shoes_emissive", offset_spokesman = src, alpha = src.alpha)
|
||||
|
||||
/obj/item/clothing/shoes/jackbros
|
||||
name = "frosty boots"
|
||||
desc = "For when you're stepping on up to the plate."
|
||||
icon_state = "JackFrostShoes"
|
||||
inhand_icon_state = null
|
||||
|
||||
/obj/item/clothing/shoes/saints
|
||||
name = "saints sneakers"
|
||||
desc = "Officially branded Saints sneakers. Incredibly valuable!"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
icon_state = "cowboy_brown"
|
||||
armor_type = /datum/armor/shoes_cowboy
|
||||
custom_price = PAYCHECK_CREW
|
||||
can_be_tied = FALSE
|
||||
fastening_type = SHOES_SLIPON
|
||||
interaction_flags_mouse_drop = NEED_HANDS | NEED_DEXTERITY
|
||||
|
||||
var/max_occupants = 4
|
||||
@@ -106,3 +106,13 @@
|
||||
armor_type = /datum/armor/shoes_combat
|
||||
has_spurs = TRUE
|
||||
body_parts_covered = FEET|LEGS
|
||||
|
||||
// Laced variants for loadout
|
||||
/obj/item/clothing/shoes/cowboy/laced
|
||||
fastening_type = SHOES_LACED
|
||||
|
||||
/obj/item/clothing/shoes/cowboy/white/laced
|
||||
fastening_type = SHOES_LACED
|
||||
|
||||
/obj/item/clothing/shoes/cowboy/black/laced
|
||||
fastening_type = SHOES_LACED
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
armor_type = /datum/armor/shoes_galoshes
|
||||
can_be_bloody = FALSE
|
||||
custom_price = PAYCHECK_CREW * 3
|
||||
can_be_tied = FALSE
|
||||
fastening_type = SHOES_SLIPON
|
||||
///How much these boots affect fishing difficulty
|
||||
var/fishing_modifier = -3
|
||||
|
||||
|
||||
@@ -8,9 +8,11 @@
|
||||
strip_delay = 5
|
||||
equip_delay_other = 50
|
||||
armor_type = /datum/armor/shoes_sandal
|
||||
can_be_tied = FALSE
|
||||
fastening_type = SHOES_SLIPON
|
||||
species_exception = list(/datum/species/golem)
|
||||
|
||||
lace_time = 3 SECONDS
|
||||
|
||||
/obj/item/clothing/shoes/sandal/alt
|
||||
desc = "A pair of shiny black wooden sandals."
|
||||
name = "black sandals"
|
||||
@@ -28,3 +30,13 @@
|
||||
/obj/item/clothing/shoes/sandal/beach
|
||||
name = "flip-flops"
|
||||
desc = "A very fashionable pair of flip-flops."
|
||||
|
||||
/obj/item/clothing/shoes/sandal/velcro
|
||||
name = "velcro sandals"
|
||||
desc = "A pair of wooden sandals that have been 'upgraded' with velcro straps in order to comply with corporate uniform policy."
|
||||
fastening_type = SHOES_VELCRO
|
||||
|
||||
/obj/item/clothing/shoes/sandal/alt/velcro
|
||||
name = "black velcro sandals"
|
||||
desc = "A pair of shiny black sandals that have been 'upgraded' with velcro straps in order to comply with corporate uniform policy."
|
||||
fastening_type = SHOES_VELCRO
|
||||
|
||||
@@ -180,7 +180,7 @@
|
||||
greyscale_config_worn = /datum/greyscale_config/sneakers_marisa/worn
|
||||
strip_delay = 5
|
||||
equip_delay_other = 50
|
||||
can_be_tied = FALSE
|
||||
fastening_type = SHOES_SLIPON
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
|
||||
/obj/item/clothing/shoes/sneakers/cyborg
|
||||
|
||||
@@ -60,4 +60,4 @@
|
||||
strip_delay = 30
|
||||
equip_delay_other = 50
|
||||
resistance_flags = NONE
|
||||
can_be_tied = FALSE
|
||||
fastening_type = SHOES_SLIPON
|
||||
|
||||
@@ -57,3 +57,11 @@
|
||||
/datum/loadout_item/glasses/eyepatch/medical
|
||||
name = "Medical Eyepatch"
|
||||
item_path = /obj/item/clothing/glasses/eyepatch/medical
|
||||
|
||||
/datum/loadout_item/glasses/prescription_glasses/kim
|
||||
name = "Thin Glasses"
|
||||
item_path = /obj/item/clothing/glasses/regular/kim
|
||||
|
||||
/datum/loadout_item/glasses/monocle
|
||||
name = "Monocle"
|
||||
item_path = /obj/item/clothing/glasses/monocle
|
||||
|
||||
@@ -34,3 +34,7 @@
|
||||
/datum/loadout_item/neck/necktie_loose
|
||||
name = "Necktie (Loose)"
|
||||
item_path = /obj/item/clothing/neck/tie/detective
|
||||
|
||||
/datum/loadout_item/neck/bowtie
|
||||
name = "Bowtie"
|
||||
item_path = /obj/item/clothing/neck/bowtie
|
||||
|
||||
@@ -53,13 +53,11 @@
|
||||
item_path = /obj/item/lipstick/blue
|
||||
additional_displayed_text = list("Blue")
|
||||
|
||||
|
||||
/datum/loadout_item/pocket_items/lipstick_green
|
||||
name = "Lipstick (Green)"
|
||||
item_path = /obj/item/lipstick/green
|
||||
additional_displayed_text = list("Green")
|
||||
|
||||
|
||||
/datum/loadout_item/pocket_items/lipstick_jade
|
||||
name = "Lipstick (Jade)"
|
||||
item_path = /obj/item/lipstick/jade
|
||||
@@ -193,3 +191,31 @@
|
||||
/datum/loadout_item/pocket_items/d00
|
||||
name = "D00"
|
||||
item_path = /obj/item/dice/d00
|
||||
|
||||
/datum/loadout_item/pocket_items/lighter
|
||||
name = "Zippo Lighter"
|
||||
item_path = /obj/item/lighter
|
||||
|
||||
/datum/loadout_item/pocket_items/flask
|
||||
name = "Pocket Flask"
|
||||
item_path = /obj/item/reagent_containers/cup/glass/flask
|
||||
|
||||
/datum/loadout_item/pocket_items/clipboard
|
||||
name = "Clipboard"
|
||||
item_path = /obj/item/clipboard
|
||||
|
||||
/datum/loadout_item/pocket_items/dye
|
||||
name = "Hair Dye"
|
||||
item_path = /obj/item/dyespray
|
||||
|
||||
/datum/loadout_item/pocket_items/poster
|
||||
name = "Poster (Contraband)"
|
||||
item_path = /obj/item/poster/random_contraband
|
||||
|
||||
/datum/loadout_item/pocket_items/poster_pinup
|
||||
name = "Poster (Pinup)"
|
||||
item_path = /obj/item/poster/random_contraband/pinup
|
||||
|
||||
/datum/loadout_item/pocket_items/wallet
|
||||
name = "Wallet"
|
||||
item_path = /obj/item/storage/wallet
|
||||
|
||||
44
code/modules/loadout/categories/shoes.dm
Normal file
44
code/modules/loadout/categories/shoes.dm
Normal file
@@ -0,0 +1,44 @@
|
||||
/// Shoe Slot Items (Deletes overrided items)
|
||||
/datum/loadout_category/shoes
|
||||
category_name = "Shoes"
|
||||
category_ui_icon = FA_ICON_SHOE_PRINTS
|
||||
type_to_generate = /datum/loadout_item/shoes
|
||||
tab_order = 1
|
||||
|
||||
/datum/loadout_item/shoes
|
||||
abstract_type = /datum/loadout_item/shoes
|
||||
|
||||
/datum/loadout_item/shoes/insert_path_into_outfit(datum/outfit/outfit, mob/living/carbon/human/equipper, visuals_only = FALSE)
|
||||
outfit.shoes = item_path
|
||||
|
||||
/datum/loadout_item/shoes/sneakers
|
||||
name = "Sneakers (Colourable)"
|
||||
item_path = /obj/item/clothing/shoes/sneakers
|
||||
|
||||
/datum/loadout_item/shoes/sandals_laced
|
||||
name = "Sandals (Velcro)"
|
||||
item_path = /obj/item/clothing/shoes/sandal/velcro
|
||||
|
||||
/datum/loadout_item/shoes/sandals_laced_black
|
||||
name = "Sandals (Black, Velcro)"
|
||||
item_path = /obj/item/clothing/shoes/sandal/alt/velcro
|
||||
|
||||
/datum/loadout_item/shoes/laceup
|
||||
name = "Shoes (Laceup)"
|
||||
item_path = /obj/item/clothing/shoes/laceup
|
||||
|
||||
/datum/loadout_item/shoes/cowboy_brown
|
||||
name = "Boots (Cowboy, Brown)"
|
||||
item_path = /obj/item/clothing/shoes/cowboy/laced
|
||||
|
||||
/datum/loadout_item/shoes/cowboy_white
|
||||
name = "Boots (Cowboy, White)"
|
||||
item_path = /obj/item/clothing/shoes/cowboy/white/laced
|
||||
|
||||
/datum/loadout_item/shoes/cowboy_black
|
||||
name = "Boots (Cowboy, Black)"
|
||||
item_path = /obj/item/clothing/shoes/cowboy/black/laced
|
||||
|
||||
/datum/loadout_item/shoes/glow_shoes
|
||||
name = "Shoes (Glowing, Colourable)"
|
||||
item_path = /obj/item/clothing/shoes/glow
|
||||
@@ -138,7 +138,7 @@ GLOBAL_LIST_INIT(strippable_human_items, create_strippable_list(list(
|
||||
|
||||
/datum/strippable_item/mob_item_slot/feet/get_alternate_actions(atom/source, mob/user)
|
||||
var/obj/item/clothing/shoes/shoes = get_item(source)
|
||||
if (!istype(shoes) || !shoes.can_be_tied)
|
||||
if (!istype(shoes) || shoes.fastening_type == SHOES_SLIPON)
|
||||
return null
|
||||
|
||||
switch (shoes.tied)
|
||||
|
||||
@@ -64,5 +64,5 @@
|
||||
heat_protection = FEET|LEGS
|
||||
cold_protection = FEET|LEGS
|
||||
item_flags = IGNORE_DIGITIGRADE | IMMUTABLE_SLOW
|
||||
can_be_tied = FALSE
|
||||
fastening_type = SHOES_SLIPON
|
||||
equip_sound = null
|
||||
|
||||
@@ -90,11 +90,11 @@
|
||||
|
||||
switch(shoes_to_tie.tied)
|
||||
if(SHOES_TIED)
|
||||
if(!shoes_to_tie.can_be_tied)
|
||||
if(shoes_to_tie.fastening_type == SHOES_SLIPON)
|
||||
if(bypass_tie_status)
|
||||
to_chat(owner, span_warning("You magically grant laces to [cast_on]'s shoes!"))
|
||||
cast_on.balloon_alert(owner, "laced!")
|
||||
shoes_to_tie.can_be_tied = TRUE
|
||||
shoes_to_tie.fastening_type = SHOES_LACED
|
||||
if(invocation_type != INVOCATION_NONE)
|
||||
playsound(cast_on, 'sound/effects/magic/summonitems_generic.ogg', 50, TRUE)
|
||||
return TRUE
|
||||
|
||||
@@ -1811,7 +1811,6 @@
|
||||
#include "code\datums\quirks\negative_quirks\unusual.dm"
|
||||
#include "code\datums\quirks\neutral_quirks\bald.dm"
|
||||
#include "code\datums\quirks\neutral_quirks\borg_ready.dm"
|
||||
#include "code\datums\quirks\neutral_quirks\colorist.dm"
|
||||
#include "code\datums\quirks\neutral_quirks\deviant_tastes.dm"
|
||||
#include "code\datums\quirks\neutral_quirks\evil.dm"
|
||||
#include "code\datums\quirks\neutral_quirks\extrovert.dm"
|
||||
@@ -4582,6 +4581,7 @@
|
||||
#include "code\modules\loadout\categories\inhands.dm"
|
||||
#include "code\modules\loadout\categories\neck.dm"
|
||||
#include "code\modules\loadout\categories\pocket.dm"
|
||||
#include "code\modules\loadout\categories\shoes.dm"
|
||||
#include "code\modules\logging\log_category.dm"
|
||||
#include "code\modules\logging\log_entry.dm"
|
||||
#include "code\modules\logging\log_holder.dm"
|
||||
|
||||
Reference in New Issue
Block a user