[MIRROR] clothing _vr dmi cleanup: boots (#11446)
Co-authored-by: Killian <49700375+KillianKirilenko@users.noreply.github.com> Co-authored-by: C.L. <killer65311@gmail.com>
@@ -647,12 +647,24 @@
|
||||
species_restricted = list("exclude",SPECIES_TESHARI, SPECIES_VOX)
|
||||
sprite_sheets = list(
|
||||
SPECIES_TESHARI = 'icons/inventory/feet/mob_teshari.dmi',
|
||||
SPECIES_VOX = 'icons/inventory/feet/mob_vox.dmi'
|
||||
SPECIES_VOX = 'icons/inventory/feet/mob_vox.dmi',
|
||||
SPECIES_WEREBEAST = 'icons/inventory/feet/mob_werebeast.dmi'
|
||||
)
|
||||
drop_sound = 'sound/items/drop/shoes.ogg'
|
||||
pickup_sound = 'sound/items/pickup/shoes.ogg'
|
||||
|
||||
update_icon_define_digi = "icons/inventory/feet/mob_digi.dmi"
|
||||
var/list/inside_emotes = list()
|
||||
var/recent_squish = 0
|
||||
|
||||
/obj/item/clothing/shoes/Initialize(mapload)
|
||||
. = ..()
|
||||
inside_emotes = list(
|
||||
span_red("You feel weightless for a moment as \the [name] moves upwards."),
|
||||
span_red("\The [name] are a ride you've got no choice but to participate in as the wearer moves."),
|
||||
span_red("The wearer of \the [name] moves, pressing down on you."),
|
||||
span_red("More motion while \the [name] move, feet pressing down against you.")
|
||||
)
|
||||
|
||||
/obj/item/clothing/shoes/Destroy()
|
||||
if(shoes)
|
||||
@@ -745,25 +757,151 @@
|
||||
. = ..()
|
||||
update_icon()
|
||||
|
||||
// CHOMPEdit Begin - tweaking handle_movement for inshoes steppies
|
||||
/obj/item/clothing/shoes/proc/handle_movement(var/turf/walking, var/running, var/mob/living/carbon/human/pred)
|
||||
if(!recent_squish && istype(pred))
|
||||
recent_squish = 1
|
||||
spawn(40) // Cooldown reduced from 100 to 40. Faster, but not that spammy
|
||||
recent_squish = 0
|
||||
VARSET_IN(src, recent_squish, FALSE, 4 SECONDS) // Reset the recent squish timer
|
||||
for(var/mob/living/M in contents)
|
||||
if(pred.step_mechanics_pref && M.step_mechanics_pref)
|
||||
src.handle_inshoe_stepping(pred, M)
|
||||
else if (prob(1)) // Same old inshoe mechanics
|
||||
var/emote = pick(inside_emotes)
|
||||
to_chat(M,emote)
|
||||
return //CHOMPEDIT End
|
||||
return
|
||||
|
||||
//In shoe steppies!
|
||||
/obj/item/clothing/shoes/proc/handle_inshoe_stepping(var/mob/living/carbon/human/pred, var/mob/living/carbon/human/prey)
|
||||
if(!istype(pred)) return //Sorry, inshoe steppies only for carbon/human/ for now. Based on the regular stepping mechanics
|
||||
if(!istype(prey)) return
|
||||
if(!pred.canmove || pred.buckled) return //We can't be stepping on anyone if buckled or incapable of moving
|
||||
if(pred in buckled_mobs) return
|
||||
if(pred.flying) return //If we're flying, can't really step.
|
||||
|
||||
// I kept interactions very similar to normal steppies, and removed some attack logs unless harm intent:
|
||||
// I_HELP: No painful description, messages only sent to prey. Similar to inshoe steppies from before.
|
||||
// I_DISARM: Painful yet harmless descriptions, weaken on walk. Attack logs on weaken.
|
||||
// I_GRAB: Grabby/Squishing descriptions, weaken on walk. Attack logs on weaken.
|
||||
// I_HARM: Rand .5-1.5 multiplied by .25 min or 1.75 max, multiplied by 3.5 on walk. Ranges from .125 min to 9.1875 max damage to each limb
|
||||
var/message_pred = null
|
||||
var/message_prey = null
|
||||
|
||||
switch(pred.a_intent)
|
||||
if(I_HELP)
|
||||
if(prob(10)) //Reducing spam exclusively on I_HELP. Still more frequent than old pitiful prob(1)
|
||||
if(pred.m_intent == I_RUN)
|
||||
message_prey = pick(
|
||||
"You feel weightless for a brief moment as \the [name] move upwards.",
|
||||
"[pred]'s weight bears down on you with each of their steps.",
|
||||
"\The [name] are a ride you've got no choice but to participate in as the wearer moves.",
|
||||
"The wearer of \the [name] moves, and their feet press down on you with each step.",
|
||||
"With each step, you're sandwiched again between [pred]'s feet and the insole of their boots.",
|
||||
"As [pred] moves, their foot presses you tightly against the insole of their boots with each step.")
|
||||
else
|
||||
message_prey = pick(
|
||||
"You feel weightless for a brief moment as \the [name] move upwards.",
|
||||
"[pred]'s weight bears down on you with each of the calm steps of their walk.",
|
||||
"\The [name] are a ride you've got no choice but to participate in as the wearer walks.",
|
||||
"The wearer of \the [name] walks, and their feet press down on you heavily with each step.",
|
||||
"With each step of their unhurried walk, you're tightly sandwiched between [pred]'s feet and the insole of their boots.",
|
||||
"As [pred] walks, their foot presses you tightly against the insole of their boots with each step.")
|
||||
to_chat(prey, span_emote_subtle(span_italics("[message_prey]")))
|
||||
|
||||
return //No message for pred if I_HELP
|
||||
|
||||
if(I_DISARM)
|
||||
if(pred.m_intent == I_RUN)
|
||||
message_pred = "You step on [prey], squishing and pinning them within your [name]!"
|
||||
message_prey = "[pred] steps on you, squishing and pinning you within their [name]!"
|
||||
else
|
||||
message_pred = "You firmly push your foot down on [prey], painfully but harmlessly pinning them to the insole of your [name]!"
|
||||
message_prey = "[pred] firmly pushes their foot down on you, painfully but harmlessly pinning you to the insole of their [name]!"
|
||||
prey.Weaken(5) // For flavour, only noticed prey if tossed out of shoe
|
||||
add_attack_logs(pred, prey, "Pinned inshoe (walk, weaken(5))")
|
||||
|
||||
if(I_GRAB)
|
||||
if(pred.m_intent == I_RUN)
|
||||
message_pred = "You step down onto [prey], squishing and trapping them inbetween your toes!"
|
||||
message_prey = "[pred] steps down on you, squishing and trapping you inbetween their toes!"
|
||||
else
|
||||
message_pred = "You pin [prey] down against the insole of your [name] with your foot, your toes curling up around their body, tightly trapping them inbetween them!"
|
||||
message_prey = "[pred] pins you down against the insole of their [name] with their foot, their toes curling up around your body, tighly trapping you inbetween them!"
|
||||
prey.Weaken(5) // For flavour, only noticed prey if tossed out of shoe
|
||||
add_attack_logs(pred, prey, "Grabbed inshoe (walk, weaken(5))")
|
||||
|
||||
if(I_HURT)
|
||||
var/size_damage_multiplier = pred.size_multiplier - prey.size_multiplier
|
||||
|
||||
if(size_damage_multiplier < 0) // In case of odd situations such as wearing a shoe containing someone bigger than you.
|
||||
size_damage_multiplier = 0
|
||||
|
||||
//Assuming regular micro pickup sizes outside dorms, size_damage multiplier should range from .25 to 1.75... right?
|
||||
var/damage = (rand(5, 15) * size_damage_multiplier) / 10 // This will sting, but not kill unless pred walks. Will range from .125 to 2.625 damage, randomly, to each limb
|
||||
|
||||
if(pred.m_intent == I_RUN)
|
||||
message_pred = "You carelessly step down onto [prey], crushing them within your [name]!"
|
||||
message_prey = "[pred] steps carelessly on your body, crushing you within their [name]!"
|
||||
add_attack_logs(pred, prey, "Crushed inshoe (run, about [damage] damage per limb)")
|
||||
else
|
||||
message_pred = "You methodically place your foot down upon [prey]'s body, applying pressure, crushing them against the insole of your [name]!"
|
||||
message_prey = "[pred] methodically places their foot upon your body, applying pressure, crushing you against the insole of their [name]!"
|
||||
damage *= 3.5 //Walking damage multiplier
|
||||
add_attack_logs(pred, prey, "Crushed inshoe (walk, about [damage] damage per limb)")
|
||||
|
||||
for(var/obj/item/organ/external/I in prey.organs)
|
||||
// Running Total: 1.50 damage min, 28.875 damage max, depending on size & RNG.
|
||||
// Walking Total: 5.25 damage min, 101.0625 damage max, depending on size & RNG. Ouch.
|
||||
I.take_damage(damage, 0)
|
||||
|
||||
if(message_pred != null)
|
||||
to_chat(pred, span_warning(message_pred))
|
||||
to_chat(prey, span_warning(message_prey))
|
||||
|
||||
return
|
||||
|
||||
/obj/item/clothing/shoes/update_clothing_icon()
|
||||
if (ismob(src.loc))
|
||||
var/mob/M = src.loc
|
||||
M.update_inv_shoes()
|
||||
|
||||
/obj/item/clothing/shoes/attack_self(var/mob/user)
|
||||
for(var/mob/M in src)
|
||||
if(isvoice(M)) //Don't knock voices out!
|
||||
continue
|
||||
M.forceMove(get_turf(user))
|
||||
to_chat(M, span_warning("[user] shakes you out of \the [src]!"))
|
||||
to_chat(user, span_notice("You shake [M] out of \the [src]!"))
|
||||
|
||||
..()
|
||||
|
||||
/obj/item/clothing/shoes/container_resist(mob/living/micro)
|
||||
var/mob/living/carbon/human/macro = loc
|
||||
if(isvoice(micro)) //Voices shouldn't be able to resist but we have this here just in case.
|
||||
return
|
||||
if(!istype(macro))
|
||||
to_chat(micro, span_notice("You start to climb out of [src]!"))
|
||||
if(do_after(micro, 50, src))
|
||||
to_chat(micro, span_notice("You climb out of [src]!"))
|
||||
micro.forceMove(loc)
|
||||
return
|
||||
|
||||
var/escape_message_micro = "You start to climb out of [src]!"
|
||||
var/escape_message_macro = "Something is trying to climb out of your [src]!"
|
||||
var/escape_time = 60
|
||||
|
||||
if(macro.shoes == src)
|
||||
escape_message_micro = "You start to climb around the larger creature's feet and ankles!"
|
||||
escape_time = 100
|
||||
|
||||
to_chat(micro, span_notice("[escape_message_micro]"))
|
||||
to_chat(macro, span_danger("[escape_message_macro]"))
|
||||
if(!do_after(micro, escape_time, macro))
|
||||
to_chat(micro, span_danger("You're pinned underfoot!"))
|
||||
to_chat(macro, span_danger("You pin the escapee underfoot!"))
|
||||
return
|
||||
|
||||
to_chat(micro, span_notice("You manage to escape [src]!"))
|
||||
to_chat(macro, span_danger("Someone has climbed out of your [src]!"))
|
||||
micro.forceMove(macro.loc)
|
||||
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
//Suit
|
||||
|
||||
@@ -1,35 +1,6 @@
|
||||
/obj/item/clothing
|
||||
var/recent_struggle = 0
|
||||
|
||||
/obj/item/clothing/shoes
|
||||
var/list/inside_emotes = list()
|
||||
var/recent_squish = 0
|
||||
sprite_sheets = list(
|
||||
SPECIES_TESHARI = 'icons/inventory/feet/mob_teshari.dmi',
|
||||
SPECIES_VOX = 'icons/inventory/feet/mob_vox.dmi',
|
||||
SPECIES_WEREBEAST = 'icons/inventory/feet/mob_vr_werebeast.dmi')
|
||||
|
||||
/obj/item/clothing/shoes/Initialize(mapload)
|
||||
inside_emotes = list(
|
||||
span_red("You feel weightless for a moment as \the [name] moves upwards."),
|
||||
span_red("\The [name] are a ride you've got no choice but to participate in as the wearer moves."),
|
||||
span_red("The wearer of \the [name] moves, pressing down on you."),
|
||||
span_red("More motion while \the [name] move, feet pressing down against you.")
|
||||
)
|
||||
|
||||
. = ..()
|
||||
/* //Must be handled in clothing.dm
|
||||
/obj/item/clothing/shoes/proc/handle_movement(var/turf/walking, var/running)
|
||||
if(prob(1) && !recent_squish)
|
||||
recent_squish = 1
|
||||
spawn(100)
|
||||
recent_squish = 0
|
||||
for(var/mob/living/M in contents)
|
||||
var/emote = pick(inside_emotes)
|
||||
to_chat(M,emote)
|
||||
return
|
||||
*/
|
||||
|
||||
//This is a crazy 'sideways' override.
|
||||
/obj/item/clothing/shoes/attackby(var/obj/item/I, var/mob/user)
|
||||
if(istype(I,/obj/item/holder/micro))
|
||||
@@ -51,46 +22,6 @@
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/clothing/shoes/attack_self(var/mob/user)
|
||||
for(var/mob/M in src)
|
||||
if(isvoice(M)) //Don't knock voices out!
|
||||
continue
|
||||
M.forceMove(get_turf(user))
|
||||
to_chat(M, span_warning("[user] shakes you out of \the [src]!"))
|
||||
to_chat(user, span_notice("You shake [M] out of \the [src]!"))
|
||||
|
||||
..()
|
||||
|
||||
/obj/item/clothing/shoes/container_resist(mob/living/micro)
|
||||
var/mob/living/carbon/human/macro = loc
|
||||
if(isvoice(micro)) //Voices shouldn't be able to resist but we have this here just in case.
|
||||
return
|
||||
if(!istype(macro))
|
||||
to_chat(micro, span_notice("You start to climb out of [src]!"))
|
||||
if(do_after(micro, 50, src))
|
||||
to_chat(micro, span_notice("You climb out of [src]!"))
|
||||
micro.forceMove(loc)
|
||||
return
|
||||
|
||||
var/escape_message_micro = "You start to climb out of [src]!"
|
||||
var/escape_message_macro = "Something is trying to climb out of your [src]!"
|
||||
var/escape_time = 60
|
||||
|
||||
if(macro.shoes == src)
|
||||
escape_message_micro = "You start to climb around the larger creature's feet and ankles!"
|
||||
escape_time = 100
|
||||
|
||||
to_chat(micro, span_notice("[escape_message_micro]"))
|
||||
to_chat(macro, span_danger("[escape_message_macro]"))
|
||||
if(!do_after(micro, escape_time, macro))
|
||||
to_chat(micro, span_danger("You're pinned underfoot!"))
|
||||
to_chat(macro, span_danger("You pin the escapee underfoot!"))
|
||||
return
|
||||
|
||||
to_chat(micro, span_notice("You manage to escape [src]!"))
|
||||
to_chat(macro, span_danger("Someone has climbed out of your [src]!"))
|
||||
micro.forceMove(macro.loc)
|
||||
|
||||
/obj/item/clothing/gloves
|
||||
sprite_sheets = list(
|
||||
SPECIES_TESHARI = 'icons/inventory/hands/mob_teshari.dmi',
|
||||
|
||||
@@ -266,3 +266,8 @@
|
||||
name = "half moon boots"
|
||||
desc = "Flexible and tight, these boots ensure the wearer will be leaving a solid impression without sacrificing mobility."
|
||||
icon_state = "half_moon"
|
||||
|
||||
/obj/item/clothing/shoes/boots/hoof
|
||||
name = "hoofboots"
|
||||
desc = "A pair of high-heeled boots with hooves on the front of the soles, for use with a hobby horse or to disguise your footprints."
|
||||
icon_state = "hoofboots"
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
/obj/item/clothing/shoes/boots/hoof
|
||||
name = "hoofboots"
|
||||
desc = "A pair of high-heeled boots with hooves on the front of the soles, for use with a hobby horse or to disguise your footprints."
|
||||
icon_state = "hoofboots"
|
||||
icon = 'icons/inventory/feet/item_vr.dmi'
|
||||
icon_override = 'icons/inventory/feet/mob_vr.dmi'
|
||||
@@ -2,5 +2,3 @@
|
||||
name = "imperial leg guards"
|
||||
desc = "Good for Roman around."
|
||||
icon_state = "ge_boots"
|
||||
icon = 'icons/inventory/feet/item_vr.dmi'
|
||||
icon_override = 'icons/inventory/feet/mob_vr.dmi'
|
||||
|
||||
@@ -3,16 +3,12 @@
|
||||
desc = "A pair of costume boots fashioned after bird talons."
|
||||
icon_state = "griffinboots"
|
||||
item_state = "griffinboots"
|
||||
icon = 'icons/inventory/feet/item_vr.dmi'
|
||||
icon_override = 'icons/inventory/feet/mob_vr.dmi'
|
||||
|
||||
/obj/item/clothing/shoes/bhop
|
||||
name = "jump boots"
|
||||
desc = "A specialized pair of combat boots with a built-in propulsion system for rapid foward movement."
|
||||
icon_state = "jetboots"
|
||||
item_state = "jetboots"
|
||||
icon = 'icons/inventory/feet/item_vr.dmi'
|
||||
icon_override = 'icons/inventory/feet/mob_vr.dmi'
|
||||
// resistance_flags = FIRE_PROOF
|
||||
actions_types = list(/datum/action/item_action/activate_jump_boots)
|
||||
permeability_coefficient = 0.05
|
||||
@@ -44,8 +40,6 @@
|
||||
/obj/item/clothing/shoes/magboots/adv
|
||||
name = "advanced magboots"
|
||||
desc = "Advanced magnetic boots for a trained user. They have a lower magnetic force, allowing the user to move more quickly."
|
||||
icon = 'icons/inventory/feet/item_vr.dmi'
|
||||
icon_override = 'icons/inventory/feet/mob_vr.dmi'
|
||||
|
||||
icon_state = "advmag0"
|
||||
item_flags = PHORONGUARD
|
||||
@@ -66,8 +60,6 @@
|
||||
desc = "A pair of olde knight boots."
|
||||
icon_state = "knight_boots1"
|
||||
item_state = "knight_boots1"
|
||||
icon = 'icons/inventory/feet/item_vr.dmi'
|
||||
icon_override = 'icons/inventory/feet/item_vr.dmi'
|
||||
armor = list(melee = 80, bullet = 50, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
|
||||
/obj/item/clothing/shoes/knight/black
|
||||
@@ -82,8 +74,6 @@
|
||||
desc = "A pair of olde knight boots."
|
||||
icon_state = "knight_boots1"
|
||||
item_state = "knight_boots1"
|
||||
icon = 'icons/inventory/feet/item_vr.dmi'
|
||||
icon_override = 'icons/inventory/feet/item_vr.dmi'
|
||||
|
||||
/obj/item/clothing/shoes/knight_costume/black
|
||||
name = "knight boots"
|
||||
@@ -95,15 +85,11 @@
|
||||
/obj/item/clothing/shoes/antediluvian
|
||||
name = "antediluvian legwraps"
|
||||
desc = "A pair of wraps with gold inlay that cut off around the ankle."
|
||||
icon = 'icons/inventory/feet/item_vr.dmi'
|
||||
icon_override = 'icons/inventory/feet/mob_vr.dmi'
|
||||
icon_state = "antediluvian"
|
||||
item_state = "antediluvian"
|
||||
|
||||
//Alternative flats
|
||||
/obj/item/clothing/shoes/flats/white/color/alt
|
||||
icon = 'icons/inventory/feet/item_vr.dmi'
|
||||
icon_override = 'icons/inventory/feet/mob_vr.dmi'
|
||||
icon_state = "flatsalt"
|
||||
item_state = "flatsalt"
|
||||
|
||||
@@ -112,6 +98,4 @@
|
||||
desc = "A pair of sandals with thin straps. It emphasizes the ankles!"
|
||||
icon_state = "sandals_elegant"
|
||||
item_state = "sandals_elegant"
|
||||
icon = 'icons/inventory/feet/item_vr.dmi'
|
||||
icon_override = 'icons/inventory/feet/mob_vr.dmi'
|
||||
addblends = "sandals_elegant_a"
|
||||
|
||||
@@ -320,8 +320,6 @@
|
||||
sprite_sheets = null
|
||||
|
||||
/obj/item/clothing/shoes/magboots/rig/ce/focalpoint
|
||||
icon = 'icons/inventory/feet/item_vr.dmi'
|
||||
default_worn_icon = 'icons/inventory/feet/mob_vr.dmi'
|
||||
icon_state = "techno_rig"
|
||||
// No animal people sprites for these yet, sad times
|
||||
species_restricted = list("exclude", SPECIES_TESHARI, SPECIES_VOX, SPECIES_DIONA)
|
||||
@@ -380,8 +378,6 @@
|
||||
sprite_sheets = null
|
||||
|
||||
/obj/item/clothing/shoes/magboots/rig/hephaestus
|
||||
icon = 'icons/inventory/feet/item_vr.dmi'
|
||||
default_worn_icon = 'icons/inventory/feet/mob_vr.dmi'
|
||||
icon_state = "ihs_rig"
|
||||
// No animal people sprites for these yet, sad times
|
||||
species_restricted = list("exclude", SPECIES_TESHARI, SPECIES_VOX, SPECIES_DIONA)
|
||||
@@ -491,8 +487,6 @@
|
||||
sprite_sheets_obj = ALL_VR_SPRITE_SHEETS_SUIT_ITEM
|
||||
|
||||
/obj/item/clothing/shoes/magboots/rig/ce/baymed
|
||||
icon = 'icons/inventory/feet/item_vr.dmi'
|
||||
default_worn_icon = 'icons/inventory/feet/mob_vr.dmi'
|
||||
icon_state = "medical_rig_bay"
|
||||
item_state = null
|
||||
sprite_sheets = null
|
||||
@@ -557,8 +551,6 @@
|
||||
sprite_sheets_obj = ALL_VR_SPRITE_SHEETS_SUIT_ITEM
|
||||
|
||||
/obj/item/clothing/shoes/magboots/rig/ce/bayeng
|
||||
icon = 'icons/inventory/feet/item_vr.dmi'
|
||||
default_worn_icon = 'icons/inventory/feet/mob_vr.dmi'
|
||||
icon_state = "engineering_rig_bay"
|
||||
item_state = null
|
||||
sprite_sheets = null
|
||||
@@ -621,8 +613,6 @@
|
||||
sprite_sheets_obj = ALL_VR_SPRITE_SHEETS_SUIT_ITEM
|
||||
|
||||
/obj/item/clothing/shoes/magboots/rig/pathfinder
|
||||
icon = 'icons/inventory/feet/item_vr.dmi'
|
||||
default_worn_icon = 'icons/inventory/feet/mob_vr.dmi'
|
||||
icon_state = "pathfinder_rig_bay"
|
||||
item_state = null
|
||||
sprite_sheets = null
|
||||
|
||||
|
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 46 KiB |
|
Before Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 65 KiB |
|
Before Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
@@ -20,92 +20,3 @@
|
||||
user.forceMove(src)
|
||||
|
||||
return ..()
|
||||
|
||||
//In shoe steppies!
|
||||
/obj/item/clothing/shoes/proc/handle_inshoe_stepping(var/mob/living/carbon/human/pred, var/mob/living/carbon/human/prey)
|
||||
if(!istype(pred)) return //Sorry, inshoe steppies only for carbon/human/ for now. Based on the regular stepping mechanics
|
||||
if(!istype(prey)) return
|
||||
if(!pred.canmove || pred.buckled) return //We can't be stepping on anyone if buckled or incapable of moving
|
||||
if(pred in buckled_mobs) return
|
||||
if(pred.flying) return //If we're flying, can't really step.
|
||||
|
||||
// I kept interactions very similar to normal steppies, and removed some attack logs unless harm intent:
|
||||
// I_HELP: No painful description, messages only sent to prey. Similar to inshoe steppies from before.
|
||||
// I_DISARM: Painful yet harmless descriptions, weaken on walk. Attack logs on weaken.
|
||||
// I_GRAB: Grabby/Squishing descriptions, weaken on walk. Attack logs on weaken.
|
||||
// I_HARM: Rand .5-1.5 multiplied by .25 min or 1.75 max, multiplied by 3.5 on walk. Ranges from .125 min to 9.1875 max damage to each limb
|
||||
var/message_pred = null
|
||||
var/message_prey = null
|
||||
|
||||
switch(pred.a_intent)
|
||||
if(I_HELP)
|
||||
if(prob(10)) //Reducing spam exclusively on I_HELP. Still more frequent than old pitiful prob(1)
|
||||
if(pred.m_intent == I_RUN)
|
||||
message_prey = pick(
|
||||
"You feel weightless for a brief moment as \the [name] move upwards.",
|
||||
"[pred]'s weight bears down on you with each of their steps.",
|
||||
"\The [name] are a ride you've got no choice but to participate in as the wearer moves.",
|
||||
"The wearer of \the [name] moves, and their feet press down on you with each step.",
|
||||
"With each step, you're sandwiched again between [pred]'s feet and the insole of their boots.",
|
||||
"As [pred] moves, their foot presses you tightly against the insole of their boots with each step.")
|
||||
else
|
||||
message_prey = pick(
|
||||
"You feel weightless for a brief moment as \the [name] move upwards.",
|
||||
"[pred]'s weight bears down on you with each of the calm steps of their walk.",
|
||||
"\The [name] are a ride you've got no choice but to participate in as the wearer walks.",
|
||||
"The wearer of \the [name] walks, and their feet press down on you heavily with each step.",
|
||||
"With each step of their unhurried walk, you're tightly sandwiched between [pred]'s feet and the insole of their boots.",
|
||||
"As [pred] walks, their foot presses you tightly against the insole of their boots with each step.")
|
||||
to_chat(prey, span_emote_subtle(span_italics("[message_prey]")))
|
||||
|
||||
return //No message for pred if I_HELP
|
||||
|
||||
if(I_DISARM)
|
||||
if(pred.m_intent == I_RUN)
|
||||
message_pred = "You step on [prey], squishing and pinning them within your [name]!"
|
||||
message_prey = "[pred] steps on you, squishing and pinning you within their [name]!"
|
||||
else
|
||||
message_pred = "You firmly push your foot down on [prey], painfully but harmlessly pinning them to the insole of your [name]!"
|
||||
message_prey = "[pred] firmly pushes their foot down on you, painfully but harmlessly pinning you to the insole of their [name]!"
|
||||
prey.Weaken(5) // For flavour, only noticed prey if tossed out of shoe
|
||||
add_attack_logs(pred, prey, "Pinned inshoe (walk, weaken(5))")
|
||||
|
||||
if(I_GRAB)
|
||||
if(pred.m_intent == I_RUN)
|
||||
message_pred = "You step down onto [prey], squishing and trapping them inbetween your toes!"
|
||||
message_prey = "[pred] steps down on you, squishing and trapping you inbetween their toes!"
|
||||
else
|
||||
message_pred = "You pin [prey] down against the insole of your [name] with your foot, your toes curling up around their body, tightly trapping them inbetween them!"
|
||||
message_prey = "[pred] pins you down against the insole of their [name] with their foot, their toes curling up around your body, tighly trapping you inbetween them!"
|
||||
prey.Weaken(5) // For flavour, only noticed prey if tossed out of shoe
|
||||
add_attack_logs(pred, prey, "Grabbed inshoe (walk, weaken(5))")
|
||||
|
||||
if(I_HURT)
|
||||
var/size_damage_multiplier = pred.size_multiplier - prey.size_multiplier
|
||||
|
||||
if(size_damage_multiplier < 0) // In case of odd situations such as wearing a shoe containing someone bigger than you.
|
||||
size_damage_multiplier = 0
|
||||
|
||||
//Assuming regular micro pickup sizes outside dorms, size_damage multiplier should range from .25 to 1.75... right?
|
||||
var/damage = (rand(5, 15) * size_damage_multiplier) / 10 // This will sting, but not kill unless pred walks. Will range from .125 to 2.625 damage, randomly, to each limb
|
||||
|
||||
if(pred.m_intent == I_RUN)
|
||||
message_pred = "You carelessly step down onto [prey], crushing them within your [name]!"
|
||||
message_prey = "[pred] steps carelessly on your body, crushing you within their [name]!"
|
||||
add_attack_logs(pred, prey, "Crushed inshoe (run, about [damage] damage per limb)")
|
||||
else
|
||||
message_pred = "You methodically place your foot down upon [prey]'s body, applying pressure, crushing them against the insole of your [name]!"
|
||||
message_prey = "[pred] methodically places their foot upon your body, applying pressure, crushing you against the insole of their [name]!"
|
||||
damage *= 3.5 //Walking damage multiplier
|
||||
add_attack_logs(pred, prey, "Crushed inshoe (walk, about [damage] damage per limb)")
|
||||
|
||||
for(var/obj/item/organ/external/I in prey.organs)
|
||||
// Running Total: 1.50 damage min, 28.875 damage max, depending on size & RNG.
|
||||
// Walking Total: 5.25 damage min, 101.0625 damage max, depending on size & RNG. Ouch.
|
||||
I.take_damage(damage, 0)
|
||||
|
||||
if(message_pred != null)
|
||||
to_chat(pred, span_warning(message_pred))
|
||||
to_chat(prey, span_warning(message_prey))
|
||||
|
||||
return
|
||||
|
||||
@@ -2484,7 +2484,6 @@
|
||||
#include "code\modules\clothing\masks\tesh_synth_facemask.dm"
|
||||
#include "code\modules\clothing\masks\voice.dm"
|
||||
#include "code\modules\clothing\shoes\boots.dm"
|
||||
#include "code\modules\clothing\shoes\boots_vr.dm"
|
||||
#include "code\modules\clothing\shoes\colour.dm"
|
||||
#include "code\modules\clothing\shoes\leg_guards.dm"
|
||||
#include "code\modules\clothing\shoes\leg_guards_vr.dm"
|
||||
|
||||