diff --git a/code/game/jobs/jobs.dm b/code/game/jobs/jobs.dm index ac2f8bfd8b..3c949ba66d 100644 --- a/code/game/jobs/jobs.dm +++ b/code/game/jobs/jobs.dm @@ -155,10 +155,9 @@ var/list/whitelisted_positions = list( "Chief Engineer", "Research Director", "Chief Medical Officer", - "Command Secretary", "Warden", "AI" -) +) //CHOMPEdit: Removed Command Secretary from whitelisted jobs. /proc/guest_jobbans(var/job) return ((job in whitelisted_positions)) diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm index a6194d2402..0d8df0bb7a 100644 --- a/code/game/mecha/mecha_construction_paths.dm +++ b/code/game/mecha/mecha_construction_paths.dm @@ -1609,13 +1609,13 @@ //6 list("key"=/obj/item/stack/material/steel, "backkey"=IS_SCREWDRIVER, - "desc"="Hand teleporter is secured"), + "desc"="Translocator is secured"), //Chompedit, change hand tele to translocator //7 list("key"=IS_SCREWDRIVER, "backkey"=IS_CROWBAR, - "desc"="Hand teleporter is installed"), + "desc"="Translocator is installed"), //Chompedit, change hand tele to translocator //8 - list("key"=/obj/item/weapon/hand_tele, + list("key"=/obj/item/device/perfect_tele, //Chompedit, change hand tele to translocator "backkey"=IS_SCREWDRIVER, "desc"="SMES coil is secured"), //9 diff --git a/code/game/objects/items/weapons/id cards/cards.dm b/code/game/objects/items/weapons/id cards/cards.dm index 4831d92e56..260eff8539 100644 --- a/code/game/objects/items/weapons/id cards/cards.dm +++ b/code/game/objects/items/weapons/id cards/cards.dm @@ -116,7 +116,6 @@ else log_and_message_admins("attempted to emag \an [A].") // Vorestation Edit: End of Edit - log_and_message_admins("emagged \an [A].") if(uses<1) user.visible_message("\The [src] fizzles and sparks - it seems it's been used once too often, and is now spent.") diff --git a/code/modules/clothing/under/miscellaneous_vr.dm b/code/modules/clothing/under/miscellaneous_vr.dm index a826708188..4322166bf0 100644 --- a/code/modules/clothing/under/miscellaneous_vr.dm +++ b/code/modules/clothing/under/miscellaneous_vr.dm @@ -115,6 +115,66 @@ original_size = null H.visible_message("The space around [H] distorts as they return to their original size!","The space around you distorts as you return to your original size!") +/obj/item/clothing/gloves/bluespace + name = "size standardization bracelet" + desc = "A somewhat bulky metal bracelet featuring a crystal, glowing blue. The outer side of the bracelet has an elongated case that one might imagine contains electronic components. This bracelet is used to standardize the size of crewmembers who may need a non-permanent size assist." + icon = 'icons/inventory/accessory/item_vr.dmi' + icon_state = "bs_bracelet" + w_class = ITEMSIZE_TINY + glove_level = 1 + var/original_size + var/last_activated + var/emagged = FALSE + var/target_size = 1 + +/obj/item/clothing/gloves/bluespace/mob_can_equip(mob/M, gloves, disable_warning = 0) + . = ..() + if(. && ishuman(M)) + var/mob/living/carbon/human/H = M + if(!H.resizable) + return + if(H.size_multiplier != target_size) + if(!(world.time - last_activated > 10 SECONDS)) + to_chat(M, "\The [src] flickers. It seems to be recharging.") + return + last_activated = world.time + original_size = H.size_multiplier + H.resize(target_size, uncapped = emagged, ignore_prefs = FALSE) //In case someone else tries to put it on you. + H.visible_message("The space around [H] distorts as they change size!","The space around you distorts as you change size!") + log_admin("Admin [key_name(M)]'s size was altered by a bluespace bracelet.") + +/obj/item/clothing/gloves/bluespace/mob_can_unequip(mob/M, gloves, disable_warning = 0) + . = ..() + if(. && ishuman(M) && original_size) + var/mob/living/carbon/human/H = M + if(!H.resizable) + return + last_activated = world.time + H.resize(original_size, uncapped = emagged, ignore_prefs = FALSE) + original_size = null + H.visible_message("The space around [H] distorts as they return to their original size!","The space around you distorts as you return to your original size!") + log_admin("Admin [key_name(M)]'s size was altered by a bluespace bracelet.") + to_chat(M, "\The [src] flickers. It is now recharging and will be ready again in thirty seconds.") + +/obj/item/clothing/gloves/bluespace/examine(var/mob/user) + . = ..() + var/cooldowntime = round((10 SECONDS - (world.time - last_activated)) * 0.1) + if(Adjacent(user)) + if(cooldowntime >= 0) + . += "It appears to be recharging." + if(emagged) + . += "The crystal is flickering." + +/obj/item/clothing/gloves/bluespace/emag_act(R_charges, var/mob/user, emag_source) + . = ..() + if(!emagged) + emagged = TRUE + target_size = (rand(1,300)) /100 + if(target_size < 0.1) + target_size = 0.1 + user.visible_message("\The [user] swipes the [emag_source] over the \the [src].","You swipes the [emag_source] over the \the [src].") + return 1 + //Same as Nanotrasen Security Uniforms /obj/item/clothing/under/ert armor = list(melee = 5, bullet = 10, laser = 10, energy = 5, bomb = 5, bio = 0, rad = 0) diff --git a/code/modules/economy/vending_machines_vr.dm b/code/modules/economy/vending_machines_vr.dm index c9b0ea2305..d0213216ed 100644 --- a/code/modules/economy/vending_machines_vr.dm +++ b/code/modules/economy/vending_machines_vr.dm @@ -1068,7 +1068,8 @@ /obj/item/device/walkpod = 5, /obj/item/device/juke_remote = 1, /obj/item/instrument/piano_synth/headphones = 2, // You're making a subsystem do work, I don't want it TOO busy - /obj/item/instrument/piano_synth/headphones/spacepods = 2) + /obj/item/instrument/piano_synth/headphones/spacepods = 2, + /obj/item/clothing/gloves/bluespace = 5) prices = list(/obj/item/clothing/suit/circuitry = 100, /obj/item/clothing/head/circuitry = 100, /obj/item/clothing/shoes/circuitry = 100, @@ -1092,7 +1093,8 @@ /obj/item/device/walkpod = 300, /obj/item/device/juke_remote = 1000, /obj/item/instrument/piano_synth/headphones = 200, - /obj/item/instrument/piano_synth/headphones/spacepods = 600) + /obj/item/instrument/piano_synth/headphones/spacepods = 600, + /obj/item/clothing/gloves/bluespace = 500) premium = list(/obj/item/device/perfect_tele/one_beacon = 1) contraband = list(/obj/item/weapon/disk/nifsoft/compliance = 1) diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index a3554a262f..645d563ad0 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -302,6 +302,32 @@ halloss = 0 else ..() + +/mob/living/carbon/human/Stun(var/amount) + if(amount > 0) //only multiply it by the mod if it's positive, or else it takes longer to fade too! + amount = amount*species.stun_mod + ..(amount) + +/mob/living/carbon/human/SetStunned(var/amount) + ..() + +/mob/living/carbon/human/AdjustStunned(var/amount) + if(amount > 0) // Only multiply it if positive. + amount = amount*species.stun_mod + ..(amount) + +/mob/living/carbon/human/Weaken(var/amount) + if(amount > 0) //only multiply it by the mod if it's positive, or else it takes longer to fade too! + amount = amount*species.weaken_mod + ..(amount) + +/mob/living/carbon/human/SetWeakened(var/amount) + ..() + +/mob/living/carbon/human/AdjustWeakened(var/amount) + if(amount > 0) // Only multiply it if positive. + amount = amount*species.weaken_mod + ..(amount) /mob/living/carbon/human/getToxLoss() if(species.flags & NO_POISON) diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index 0181f4f5e7..7bc7363b51 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -109,6 +109,9 @@ var/chemOD_mod = 1 // Damage modifier for overdose; higher = more damage from ODs var/alcohol_mod = 1 // Multiplier to alcohol strength; 0.5 = half, 0 = no effect at all, 2 = double, etc. var/pain_mod = 1 // Multiplier to pain effects; 0.5 = half, 0 = no effect (equal to NO_PAIN, really), 2 = double, etc. + var/stun_mod = 1 // Multiplier to stun effects; 0.5 = half, - = no effect (immune), 2 = double, etc. + var/weaken_mod = 1 // Multiplier to weakness effects; 0.5 = half, - = no effect (immune), 2 = double, etc. + // Stuns + Weakens will be rounded to the nearest whole #. If you set 0.5 mod, on a base stun of 3, the return will be 1.5, which rounds to 1. Be careful. var/spice_mod = 1 // Multiplier to spice/capsaicin/frostoil effects; 0.5 = half, 0 = no effect (immunity), 2 = double, etc. var/trauma_mod = 1 // Affects traumatic shock (how fast pain crit happens). 0 = no effect (immunity to pain crit), 2 = double etc.Overriden by "can_feel_pain" var // set below is EMP interactivity for nonsynth carbons diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm index 215577b290..b6e5612171 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm @@ -103,14 +103,14 @@ /datum/trait/negative/pain_intolerance_basic name = "Pain Intolerant" desc = "You are frail and sensitive to pain. You experience 25% more pain from all sources." - cost = -1 - var_changes = list("pain_mod" = 1.25) + cost = -2 + var_changes = list("pain_mod" = 1.2) // CHOMPEdit: Makes this exact opposite of Pain Tolerance Basic. /datum/trait/negative/pain_intolerance_advanced name = "High Pain Intolerance" desc = "You are highly sensitive to all sources of pain, and experience 50% more pain." - cost = -2 - var_changes = list("pain_mod" = 1.5) //this makes you extremely vulnerable to most sources of pain, a stunbaton bop or shotgun beanbag will do around 90 agony, almost enough to drop you in one hit + cost = -3 + var_changes = list("pain_mod" = 1.5) //this makes you extremely vulnerable to most sources of pain, a stunbaton bop or shotgun beanbag will do around 90 agony, almost enough to drop you in one hit. CHOMPEdit: This really should cost more if it's this bad. //YW ADDITIONS END /datum/trait/negative/conductive diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral_ch.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral_ch.dm index 68b65ad0e6..ae0bdd27a1 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral_ch.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral_ch.dm @@ -40,3 +40,27 @@ cost = 0 var_changes = list("metabolic_rate" = 2, "hunger_factor" = 1.6, "metabolism" = 0.012) //2x metabolism speed, 32x hunger speed custom_only = FALSE + +/datum/trait/neutral/big_mouth + name = "Big mouth" + desc = "It takes half as many bites to finish food as it does for most people." + cost = 0 + var_changes = list("bite_mod" = 2) + custom_only = FALSE + +/datum/trait/neutral/big_mouth_extreme + name = "Giant mouth" + desc = "It takes a quarter as many bites to finish food as it does for most people." + cost = 0 + var_changes = list("bite_mod" = 4) + custom_only = FALSE + +/datum/trait/neutral/stubborn + name = "Stubborn" + desc = "You are harder to move out of the way due to your sturdiness, frame, or just sheer stubbornness, and neither players nor mobs can trade places with you or bump you out of the way." + cost = 0 + custom_only = FALSE + +/datum/trait/neutral/stubborn/apply(var/datum/species/S,var/mob/living/carbon/human/H) + ..() + H.mob_bump_flag = HEAVY \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive_ch.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive_ch.dm index 5b85746522..c005e9a3f8 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive_ch.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive_ch.dm @@ -78,12 +78,13 @@ /datum/trait/positive/heavyweight name = "Heavyweight" - desc = "You are more heavyweight or otherwise more sturdy than most species, and as such, it's much more difficult to move you." + desc = "You are more heavyweight or otherwise more sturdy than most species, and as such, more resistant to knockdown effects and stuns. Stuns are only half as effective on you." cost = 2 + var_changes = list("stun_mod" = 0.75, "weaken_mod" = 0.75) // Stuns are 75% as effective - a stun of 3 seconds will be 2 seconds after rounding. Set to 0.75 to make a 3 second stun 2 seconds.(Weaken is used alongside stun to prevent aiming.) /datum/trait/positive/heavyweight/apply(var/datum/species/S,var/mob/living/carbon/human/H) ..() - H.mob_bump_flag = HEAVY + H.mob_size = MOB_LARGE /datum/trait/positive/table_passer name = "Table passer" @@ -94,25 +95,12 @@ ..() H.pass_flags = PASSTABLE - -/datum/trait/positive/big_mouth - name = "Big mouth" - desc = "It takes half as many bites to finish food as it does for most people." - cost = 0 //This doesn't deserve a cost. - var_changes = list("bite_mod" = 2) - /datum/trait/positive/grappling_expert name = "Grappling expert" desc = "Your grabs are much harder to escape from, and you are better at escaping from other's grabs!" cost = 3 var_changes = list("grab_resist_divisor_victims" = 1.5, "grab_resist_divisor_self" = 0.5, "grab_power_victims" = -1, "grab_power_self" = 1) -/datum/trait/positive/big_mouth_extreme - name = "Giant mouth" - desc = "It takes a quarter as many bites to finish food as it does for most people." - cost = 0 //This also doesn't deserve a cost. - var_changes = list("bite_mod" = 4) - /datum/trait/positive/absorbent name = "Absorbent" desc = "You are able to clean messes just by walking over them, and gain nutrition from doing so!" diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/combat_mecha.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/combat_mecha.dm index 7a2d8abb19..bf04d20080 100644 --- a/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/combat_mecha.dm +++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/combat_mecha.dm @@ -36,3 +36,5 @@ L.throw_at(get_edge_target_turf(L, throw_dir), throw_dist, 1, src) else to_chat(L, span("warning", "\The [src] punches you with incredible force, but you remain in place.")) + visible_message(span("danger", "\The [src] slams it's mechanized fist into \the [L] with incredible force, to no visible effect!")) // CHOMPEdit: Mechpunch visible/audible feedback for *resisting* the punch. + playsound(src, "punch", 50, 1) // CHOMPEdit: Mechpunch visible/audible feedback for *resisting* the punch. diff --git a/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/subtypes.dm b/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/subtypes.dm index d8f524d733..66e578f058 100644 --- a/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/subtypes.dm +++ b/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/subtypes.dm @@ -417,6 +417,8 @@ L.throw_at(get_edge_target_turf(L, throwdir), 3, 1, src) else to_chat(L, span("warning", "\The [src] hits you with incredible force, but you remain in place.")) + visible_message(span("danger", "\The [src] hits \the [L] with incredible force, to no visible effect!")) // CHOMPEdit: Visible/audible feedback for *resisting* the slam. + playsound(src, "punch", 50, 1) // CHOMPEdit: Visible/audible feedback for *resisting* the slam. /mob/living/simple_mob/slime/xenobio/amber diff --git a/code/modules/reagents/reagents/toxins.dm b/code/modules/reagents/reagents/toxins.dm index dde7bf21a9..23fc080e8c 100644 --- a/code/modules/reagents/reagents/toxins.dm +++ b/code/modules/reagents/reagents/toxins.dm @@ -75,6 +75,8 @@ skin_danger = 0.4 /datum/reagent/toxin/neurotoxic_protein/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) + if(alien == IS_CHIMERA) + return ..() if(alien != IS_DIONA) if(M.canmove && !M.restrained() && istype(M.loc, /turf/space)) diff --git a/code/modules/research/designs/circuits/circuits_ch.dm b/code/modules/research/designs/circuits/circuits_ch.dm index 68d9ca3cf8..6f2ca630c2 100644 --- a/code/modules/research/designs/circuits/circuits_ch.dm +++ b/code/modules/research/designs/circuits/circuits_ch.dm @@ -24,4 +24,31 @@ id = "scarab_targ" req_tech = list(TECH_DATA = 4, TECH_COMBAT = 2) build_path = /obj/item/weapon/circuitboard/mecha/scarab/targeting - sort_string = "SAAAC" \ No newline at end of file + sort_string = "SAAAC" + +/datum/design/circuit/mecha/phazon_main + name = "'Phazon' central control" + id = "phazon_main" + req_tech = list(TECH_BLUESPACE = 5, TECH_MAGNET = 6, TECH_PHORON = 3, TECH_ARCANE = 1) + materials = list(MAT_GLASS = 2000, MAT_GRAPHITE = 1250) + chemicals = list("sacid" = 20) + build_path = /obj/item/weapon/circuitboard/mecha/phazon/main + sort_string = "PAADA" + +/datum/design/circuit/mecha/phazon_peri + name = "'Phazon' peripherals control" + id = "phazon_peri" + req_tech = list(TECH_BLUESPACE = 5, TECH_MAGNET = 6, TECH_PHORON = 3, TECH_ARCANE = 1) + materials = list(MAT_GLASS = 2000, MAT_GRAPHITE = 1250) + chemicals = list("sacid" = 20) + build_path = /obj/item/weapon/circuitboard/mecha/phazon/peripherals + sort_string = "PAADB" + +/datum/design/circuit/mecha/phazon_targ + name = "'Phazon' weapon control and targeting" + id = "phazon_targ" + req_tech = list(TECH_BLUESPACE = 5, TECH_MAGNET = 6, TECH_PHORON = 3, TECH_ARCANE = 1, TECH_COMBAT = 5) + materials = list(MAT_GLASS = 2000, MAT_GRAPHITE = 1250) + chemicals = list("sacid" = 20) + build_path = /obj/item/weapon/circuitboard/mecha/phazon/targeting + sort_string = "PAADC" diff --git a/code/modules/research/mechfab_designs_ch.dm b/code/modules/research/mechfab_designs_ch.dm index 8f74415d6a..f97584eebf 100644 --- a/code/modules/research/mechfab_designs_ch.dm +++ b/code/modules/research/mechfab_designs_ch.dm @@ -96,16 +96,17 @@ build_path = /obj/item/mecha_parts/part/phazon_right_arm time = 20 materials = list(DEFAULT_WALL_MATERIAL = 15000, MAT_PHORON = 2000, MAT_GOLD = 2000, MAT_VERDANTIUM = 500) + /datum/design/item/mechfab/phazon/left_leg - name = "Phazon Left Legs" - id = "phazon_left_legs" + name = "Phazon Left Leg" + id = "phazon_left_leg" build_path = /obj/item/mecha_parts/part/phazon_left_leg time = 20 materials = list(DEFAULT_WALL_MATERIAL = 15000, MAT_PHORON = 2000, MAT_GOLD = 2000, MAT_VERDANTIUM = 500) /datum/design/item/mechfab/phazon/right_leg - name = "Phazon Right Legs" - id = "phazon_right_legs" + name = "Phazon Right Leg" + id = "phazon_right_leg" build_path = /obj/item/mecha_parts/part/phazon_right_leg time = 20 materials = list(DEFAULT_WALL_MATERIAL = 15000, MAT_PHORON = 2000, MAT_GOLD = 2000, MAT_VERDANTIUM = 500) diff --git a/code/modules/vore/eating/belly_obj_vr.dm b/code/modules/vore/eating/belly_obj_vr.dm index c4149326e2..78e1d1cbdc 100644 --- a/code/modules/vore/eating/belly_obj_vr.dm +++ b/code/modules/vore/eating/belly_obj_vr.dm @@ -294,10 +294,21 @@ if(isliving(thing)) var/mob/living/M = thing M.updateVRPanel() + var/raw_desc //Let's use this to avoid needing to write the reformat code twice if(absorbed_desc && M.absorbed) - to_chat(M, "[absorbed_desc]") + raw_desc = absorbed_desc else if(desc) - to_chat(M, "[desc]") + raw_desc = desc + + //Was there a description text? If so, it's time to format it! + if(raw_desc) + //Replace placeholder vars + var/formatted_desc + formatted_desc = replacetext(raw_desc, "%belly", lowertext(name)) //replace with this belly's name + formatted_desc = replacetext(formatted_desc, "%pred", owner) //replace with this belly's owner + formatted_desc = replacetext(formatted_desc, "%prey", M) //replace with whatever mob entered into this belly + to_chat(M, "[formatted_desc]") + var/taste if(can_taste && (taste = M.get_taste_message(FALSE))) to_chat(owner, "[M] tastes of [taste].") @@ -758,7 +769,12 @@ if(absorbed_desc) - to_chat(M, "[absorbed_desc]") + //Replace placeholder vars + var/formatted_abs_desc + formatted_abs_desc = replacetext(absorbed_desc, "%belly", lowertext(name)) //replace with this belly's name + formatted_abs_desc = replacetext(formatted_abs_desc, "%pred", owner) //replace with this belly's owner + formatted_abs_desc = replacetext(formatted_abs_desc, "%prey", M) //replace with whatever mob entered into this belly + to_chat(M, "[formatted_abs_desc]") //Update owner owner.updateVRPanel() diff --git a/code/modules/vore/eating/vorepanel_vr.dm b/code/modules/vore/eating/vorepanel_vr.dm index 8123eba421..f7e3f270f7 100644 --- a/code/modules/vore/eating/vorepanel_vr.dm +++ b/code/modules/vore/eating/vorepanel_vr.dm @@ -118,6 +118,15 @@ else if(inside_belly.desc) inside_desc = inside_belly.desc + //I'd rather not copy-paste this code twice into the previous if-statement + //Technically we could just format the text anyway, but IDK how demanding unnecessary text-replacements are + if((host.absorbed && inside_belly.absorbed_desc) || (inside_belly.desc)) + var/formatted_desc + formatted_desc = replacetext(inside_desc, "%belly", lowertext(inside_belly.name)) //replace with this belly's name + formatted_desc = replacetext(formatted_desc, "%pred", pred) //replace with the pred of this belly + formatted_desc = replacetext(formatted_desc, "%prey", host) //replace with whoever's reading this + inside_desc = formatted_desc + inside = list( "absorbed" = host.absorbed, "belly_name" = inside_belly.name, @@ -812,7 +821,7 @@ host.vore_selected.egg_type = new_egg_type . = TRUE if("b_desc") - var/new_desc = html_encode(input(usr,"Belly Description ([BELLIES_DESC_MAX] char limit):","New Description",host.vore_selected.desc) as message|null) + var/new_desc = html_encode(input(usr,"Belly Description, '%pred' will be replaced with your name. '%prey' will be replaced with the prey's name. '%belly' will be replaced with your belly's name. ([BELLIES_DESC_MAX] char limit):","New Description",host.vore_selected.desc) as message|null) if(new_desc) new_desc = readd_quotes(new_desc) @@ -822,7 +831,7 @@ host.vore_selected.desc = new_desc . = TRUE if("b_absorbed_desc") - var/new_desc = html_encode(input(usr,"Belly Description for absorbed prey ([BELLIES_DESC_MAX] char limit):","New Description",host.vore_selected.absorbed_desc) as message|null) + var/new_desc = html_encode(input(usr,"Belly Description for absorbed prey, '%pred' will be replaced with your name. '%prey' will be replaced with the prey's name. '%belly' will be replaced with your belly's name. ([BELLIES_DESC_MAX] char limit):","New Description",host.vore_selected.absorbed_desc) as message|null) if(new_desc) new_desc = readd_quotes(new_desc) diff --git a/code/modules/vore/resizing/sizegun_vr.dm b/code/modules/vore/resizing/sizegun_vr.dm index efd27d30dd..9d2b73d7cb 100644 --- a/code/modules/vore/resizing/sizegun_vr.dm +++ b/code/modules/vore/resizing/sizegun_vr.dm @@ -102,8 +102,12 @@ /obj/item/projectile/beam/sizelaser/on_hit(var/atom/target) var/mob/living/M = target var/ignoring_prefs = (target == firer ? TRUE : FALSE) // Resizing yourself - if(istype(M)) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(istype(H.gloves, /obj/item/clothing/gloves/bluespace)) + M.visible_message("\The [H]'s bracelet flashes and absorbs the beam!","Your bracelet flashes and absorbs the beam!") + return if(!M.resize(set_size, uncapped = M.has_large_resize_bounds(), ignore_prefs = ignoring_prefs)) to_chat(M, "The beam fires into your body, changing your size!") M.updateicon() diff --git a/icons/inventory/accessory/item_vr.dmi b/icons/inventory/accessory/item_vr.dmi index c39fad3292..2f4624f1cf 100644 Binary files a/icons/inventory/accessory/item_vr.dmi and b/icons/inventory/accessory/item_vr.dmi differ