diff --git a/code/_helpers/global_lists_vr.dm b/code/_helpers/global_lists_vr.dm index 5e42c9c21c..96d64aa387 100644 --- a/code/_helpers/global_lists_vr.dm +++ b/code/_helpers/global_lists_vr.dm @@ -934,15 +934,32 @@ var/global/list/selectable_speech_bubbles = list( "cyber", "ghost", "slime_green", + "slime_yellow", + "slime_red", + "slime_blue", "dark", "plant", "clown", "fox", + "latte_fox", + "blue_fox", "maus", + "wolf", + "red_panda", + "blue_panda", + "tentacles", "heart", "textbox", "posessed", - "square") + "square", + "medical", + "medical_square", + "cardiogram", + "security", + "notepad", + "science", + "engineering", + "cargo") diff --git a/code/game/objects/items/trash_vr.dm b/code/game/objects/items/trash_vr.dm index 572c08a265..fc2d997182 100644 --- a/code/game/objects/items/trash_vr.dm +++ b/code/game/objects/items/trash_vr.dm @@ -64,4 +64,35 @@ /obj/item/trash/ratpackturkey name = "\improper Prepackaged Meal Tray" icon = 'icons/obj/trash_vr.dmi' - icon_state = "altevian_pack_turkey-trash" \ No newline at end of file + icon_state = "altevian_pack_turkey-trash" + +/obj/item/trash/ratpackramen + name = "\improper Prepackaged Meal Tray" + icon = 'icons/obj/trash_vr.dmi' + icon_state = "altevian_pack_ramen_standard-trash" + +/obj/item/trash/ratpackramen/standard + icon_state = "altevian_pack_ramen_standard-trash" + +/obj/item/trash/ratpackramen/lacquer1 + icon_state = "altevian_pack_ramen_lacquer1-trash" + +/obj/item/trash/ratpackramen/lacquer2 + icon_state = "altevian_pack_ramen_lacquer2-trash" + +/obj/item/trash/ratpackramen/lacquer3 + icon_state = "altevian_pack_ramen_lacquer3-trash" + +/obj/item/trash/ratpackramen/fleet + icon_state = "altevian_pack_ramen_fleet-trash" + +/obj/item/trash/ratpackramen/trans + icon_state = "altevian_pack_ramen_trans-trash" + +/obj/item/trash/ratpackramen/ace + icon_state = "altevian_pack_ramen_ace-trash" + +/obj/item/trash/ratpacktaco + name = "\improper Prepackaged Meal Tray" + icon = 'icons/obj/trash_vr.dmi' + icon_state = "altevian_pack_taco-trash" \ No newline at end of file diff --git a/code/game/objects/items/weapons/id cards/syndicate_ids.dm b/code/game/objects/items/weapons/id cards/syndicate_ids.dm index 727d76fd26..b89868ca19 100644 --- a/code/game/objects/items/weapons/id cards/syndicate_ids.dm +++ b/code/game/objects/items/weapons/id cards/syndicate_ids.dm @@ -30,7 +30,7 @@ if(istype(O, /obj/item/weapon/card/id)) var/obj/item/weapon/card/id/I = O src.access |= I.access - if(player_is_antag(user.mind)) + if(player_is_antag(user.mind) || registered_user == user) to_chat(user, "The microscanner activates as you pass it over the ID, copying its access.") /obj/item/weapon/card/id/syndicate/attack_self(mob/user as mob) diff --git a/code/modules/client/preference_setup/loadout/loadout_head_vr.dm b/code/modules/client/preference_setup/loadout/loadout_head_vr.dm index d341c1a49b..83c66d8682 100644 --- a/code/modules/client/preference_setup/loadout/loadout_head_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_head_vr.dm @@ -98,3 +98,9 @@ Talon hats /datum/gear/head/beret/talon display_name = "beret, Talon" path = /obj/item/clothing/head/beret + +// tiny tophat + +/datum/gear/head/tiny_tophat + display_name = "tiny tophat" + path = /obj/item/clothing/head/tinytophat diff --git a/code/modules/client/preference_setup/loadout/loadout_uniform_vr.dm b/code/modules/client/preference_setup/loadout/loadout_uniform_vr.dm index 75869c96e4..07a179b7ce 100644 --- a/code/modules/client/preference_setup/loadout/loadout_uniform_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_uniform_vr.dm @@ -359,4 +359,10 @@ Talon jumpsuit "jumper skirt"=/obj/item/clothing/under/skirt/colorable/jumper, "jumper dress"=/obj/item/clothing/under/skirt/colorable/jumperdress ) - gear_tweaks += list(new/datum/gear_tweak/path(skirts), gear_tweak_free_color_choice) \ No newline at end of file + gear_tweaks += list(new/datum/gear_tweak/path(skirts), gear_tweak_free_color_choice) + +// gwen beedells clown clothes + +/datum/gear/uniform/stripeddungarees + display_name = "striped dungarees" + path = /obj/item/clothing/under/stripeddungarees \ No newline at end of file diff --git a/code/modules/clothing/glasses/hud_vr.dm b/code/modules/clothing/glasses/hud_vr.dm index bb3260213b..0b67fba9b3 100644 --- a/code/modules/clothing/glasses/hud_vr.dm +++ b/code/modules/clothing/glasses/hud_vr.dm @@ -132,7 +132,6 @@ //We do not check if user can move or not, since this system is inspired to help see chat bubbles during scenes primarily. //Preventing turning off the HUD could get in the way of scene flow. - usr.visible_emote("toggles a button on their [src.name]!") //Since we're turning stuff like arrest/medical HUD on/off, we should inform those nearby. if(ar_toggled) away_planes = enables_planes enables_planes = null diff --git a/code/modules/clothing/head/misc_vr.dm b/code/modules/clothing/head/misc_vr.dm index 9541e577d8..9b9a6a6ed3 100644 --- a/code/modules/clothing/head/misc_vr.dm +++ b/code/modules/clothing/head/misc_vr.dm @@ -162,4 +162,13 @@ /obj/item/clothing/head/cowboy sprite_sheets = list( SPECIES_TESHARI = 'icons/inventory/head/mob_vr_teshari.dmi' - ) \ No newline at end of file + ) + +// tiny tophat + +/obj/item/clothing/head/tinytophat + name = "tiny tophat" + desc = "A tophat that is far too small to properly sit on someone's head!" + icon = 'icons/inventory/head/item_vr.dmi' + default_worn_icon = 'icons/inventory/head/mob_vr.dmi' + icon_state = "tiny_tophat" \ No newline at end of file diff --git a/code/modules/clothing/under/accessories/clothing_vr.dm b/code/modules/clothing/under/accessories/clothing_vr.dm new file mode 100644 index 0000000000..47ad8b8719 --- /dev/null +++ b/code/modules/clothing/under/accessories/clothing_vr.dm @@ -0,0 +1,8 @@ +/obj/item/clothing/accessory/jacket/modwrap + name = "modern wrapped coat (coat)" + desc = "The cutting edge of fashion." + icon = 'icons/inventory/accessory/item_vr.dmi' + icon_override = 'icons/inventory/accessory/mob_vr.dmi' + icon_state = "mod_coat" + item_state = "mod_coat" + overlay_state = "mod_coat" \ No newline at end of file diff --git a/code/modules/clothing/under/altevian_vr.dm b/code/modules/clothing/under/altevian_vr.dm index 89c44205f9..d7720272f3 100644 --- a/code/modules/clothing/under/altevian_vr.dm +++ b/code/modules/clothing/under/altevian_vr.dm @@ -19,24 +19,29 @@ name = "Altevian Hegemony Security Pants" icon_state = "altevian-pants-sec" worn_state = "altevian-pants-sec" + armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + siemens_coefficient = 0.9 starting_accessories = list(/obj/item/clothing/accessory/jacket/altevian/security) /obj/item/clothing/under/pants/altevian/engineering name = "Altevian Hegemony Engineering Pants" icon_state = "altevian-pants-eng" worn_state = "altevian-pants-eng" + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10) starting_accessories = list(/obj/item/clothing/accessory/jacket/altevian/engineering) /obj/item/clothing/under/pants/altevian/medical name = "Altevian Hegemony Medical Pants" icon_state = "altevian-pants-med" worn_state = "altevian-pants-med" + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) starting_accessories = list(/obj/item/clothing/accessory/jacket/altevian/medical) /obj/item/clothing/under/pants/altevian/science name = "Altevian Hegemony Science Pants" icon_state = "altevian-pants-sci" worn_state = "altevian-pants-sci" + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0) starting_accessories = list(/obj/item/clothing/accessory/jacket/altevian/science) /obj/item/clothing/under/pants/altevian/cargo @@ -56,20 +61,25 @@ /obj/item/clothing/under/altevian/sci name = "Altevian Science Duty Jumpsuit" + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0) icon_state = "altevian-specialist-sci" worn_state = "altevian-specialist-sci" /obj/item/clothing/under/altevian/med name = "Altevian Medical Duty Jumpsuit" + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) icon_state = "altevian-specialist-med" worn_state = "altevian-specialist-med" /obj/item/clothing/under/altevian/sec name = "Altevian Security Duty Jumpsuit" + armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + siemens_coefficient = 0.9 icon_state = "altevian-specialist-sec" worn_state = "altevian-specialist-sec" /obj/item/clothing/under/altevian/eng name = "Altevian Engineering Duty Jumpsuit" + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10) icon_state = "altevian-specialist-eng" worn_state = "altevian-specialist-eng" \ No newline at end of file diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index 470410d263..ce928bffa1 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -1318,12 +1318,13 @@ */ /obj/item/clothing/under/moderncoat - name = "modern wrapped coat" + name = "modern wrapped coat (pants)" desc = "The cutting edge of fashion." - icon_state = "mod_coat" - worn_state = "mod_coat" + icon_state = "mod_coat_pants" + worn_state = "mod_coat_pants" item_state_slots = list(slot_r_hand_str = "red", slot_l_hand_str = "red") body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS + starting_accessories = list(/obj/item/clothing/accessory/jacket/modwrap) /obj/item/clothing/under/modjump name = "modern jumpsuit" diff --git a/code/modules/clothing/under/miscellaneous_vr.dm b/code/modules/clothing/under/miscellaneous_vr.dm index 196024ef98..2d2c29ca0a 100644 --- a/code/modules/clothing/under/miscellaneous_vr.dm +++ b/code/modules/clothing/under/miscellaneous_vr.dm @@ -586,4 +586,13 @@ desc = "A dress held up by suspenders. Not quite a skirt anymore." icon_state = "skirt_jumperdress" item_state = "skirt_jumperdress" - worn_state = "skirt_jumperdress" \ No newline at end of file + worn_state = "skirt_jumperdress" + +// Gwen Beedell's clown outfit + +/obj/item/clothing/under/stripeddungarees + name = "striped dungarees" + desc = "A colourful set of striped dungarees, pretty funny lookin'." + icon = 'icons/inventory/uniform/item_vr.dmi' + default_worn_icon = 'icons/inventory/uniform/mob_vr.dmi' + icon_state = "striped_clown_uniform" diff --git a/code/modules/food/food/snacks_vr.dm b/code/modules/food/food/snacks_vr.dm index f5c276d887..732567356c 100644 --- a/code/modules/food/food/snacks_vr.dm +++ b/code/modules/food/food/snacks_vr.dm @@ -864,7 +864,7 @@ /obj/item/weapon/reagent_containers/food/snacks/ratpackturkey name = "Compact Holiday Special Bird" - desc = "A great gift for holidays for assorted species. This contains a full freshly cooked turkey. Open and enjoy. Courtesy of altevian packaging" + desc = "A great gift for holidays for assorted species. This contains a full freshly cooked turkey. Open and enjoy. Courtesy of altevian packaging." icon = 'icons/obj/food_vr.dmi' icon_state = "altevian_pack_turkey" package_open_state = "altevian_pack_turkey-open" @@ -873,3 +873,43 @@ trash = /obj/item/trash/ratpackturkey nutriment_amt = 18 nutriment_desc = list("high-quality poultry" = 4) + +/obj/item/weapon/reagent_containers/food/snacks/ratpackramen + name = "Big Noodle Package" + desc = "A pack containing fully cooked ramen meal, alongside some seafood-and-rice based sides. Utensils included. For those who prefer more traditional meals." + icon = 'icons/obj/food_vr.dmi' + icon_state = "altevian_pack_ramen" + package_open_state = "altevian_pack_ramen_standard-open" + package_opening_state = "altevian_pack_ramen_standard-opening" + package = TRUE + trash = /obj/item/trash/ratpackramen/standard + nutriment_amt = 2 + nutriment_desc = list("savory noodles" = 4) + var/list/bowl_color_options = list("standard" = 6, + "lacquer1" = 2, + "lacquer2" = 2, + "lacquer3" = 2, + "fleet" = 6, + "trans" = 3, + "ace" = 3) + var/randomize_bowl_color = TRUE + +/obj/item/weapon/reagent_containers/food/snacks/ratpackramen/Initialize() + . = ..() + if(randomize_bowl_color) + var/bowl_color = pickweight(bowl_color_options) + package_open_state = "altevian_pack_ramen_[bowl_color]-open" + package_opening_state = "altevian_pack_ramen_[bowl_color]-opening" + trash = text2path("/obj/item/trash/ratpackramen/[bowl_color]") + +/obj/item/weapon/reagent_containers/food/snacks/ratpacktaco + name = "Triple Taco Tuck" + desc = "Three mini-tacos, minituarized further via altevian mad science into a convenient container. It comes with a salsa sauce!" + icon = 'icons/obj/food_vr.dmi' + icon_state = "altevian_pack_taco" + package_open_state = "altevian_pack_taco-open" + package_opening_state = "altevian_pack_taco-opening" + package = TRUE + trash = /obj/item/trash/ratpacktaco + nutriment_amt = 2 + nutriment_desc = list("salsa sauce" = 2, "meat chunks" = 4, "cheese" = 3) diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/drones/mining_drone.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/drones/mining_drone.dm index 8732246b68..77503cfb0d 100644 --- a/code/modules/mob/living/simple_mob/subtypes/mechanical/drones/mining_drone.dm +++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/drones/mining_drone.dm @@ -67,7 +67,7 @@ var/last_search = 0 var/search_cooldown = 5 SECONDS var/ignoreunarmed = TRUE - var/allowedtools = list(/obj/item/weapon/pickaxe, /obj/item/weapon/gun/energy/kinetic_accelerator, /obj/item/weapon/gun/magnetic/matfed/phoronbore, /obj/item/weapon/kinetic_crusher) + var/allowedtools = list(/obj/item/weapon/pickaxe, /obj/item/weapon/gun/energy/kinetic_accelerator, /obj/item/weapon/gun/magnetic/matfed/phoronbore, /obj/item/weapon/kinetic_crusher, /obj/item/weapon/melee/shock_maul) /mob/living/simple_mob/mechanical/mining_drone/Initialize() ion_trail = new diff --git a/code/modules/mob/new_player/sprite_accessories_extra.dm b/code/modules/mob/new_player/sprite_accessories_extra.dm index 3569d1badd..3c24c00f78 100644 --- a/code/modules/mob/new_player/sprite_accessories_extra.dm +++ b/code/modules/mob/new_player/sprite_accessories_extra.dm @@ -362,12 +362,73 @@ icon_state = "btone" body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO) +/datum/sprite_accessory/marking/vr/body_tone_rarm + name = "Body toning (right arm)" + icon_state = "btone" + body_parts = list(BP_R_ARM,BP_R_HAND) + +/datum/sprite_accessory/marking/vr/body_tone_larm + name = "Body toning (left arm)" + icon_state = "btone" + body_parts = list(BP_L_ARM,BP_L_HAND) + +/datum/sprite_accessory/marking/vr/body_tone_rleg + name = "Body toning (right leg)" + icon_state = "btone" + body_parts = list(BP_R_FOOT,BP_R_LEG) + +/datum/sprite_accessory/marking/vr/body_tone_lleg + name = "Body toning (left leg)" + icon_state = "btone" + body_parts = list(BP_L_FOOT,BP_L_LEG) + +/datum/sprite_accessory/marking/vr/body_tone_torso + name = "Body toning (torso)" + icon_state = "btone" + body_parts = list(BP_GROIN,BP_TORSO) + /datum/sprite_accessory/marking/vr/gloss name = "Full body gloss" icon_state = "gloss" color_blend_mode = ICON_MULTIPLY body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD) +/datum/sprite_accessory/marking/vr/gloss_head + name = "Body gloss (head)" + icon_state = "gloss" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/vr/gloss_rarm + name = "Body gloss (right arm)" + icon_state = "gloss" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_R_ARM,BP_R_HAND) + +/datum/sprite_accessory/marking/vr/gloss_larm + name = "Body gloss (left arm)" + icon_state = "gloss" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_L_ARM,BP_L_HAND) + +/datum/sprite_accessory/marking/vr/gloss_rleg + name = "Body gloss (right leg)" + icon_state = "gloss" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_R_FOOT,BP_R_LEG) + +/datum/sprite_accessory/marking/vr/gloss_lleg + name = "Body gloss (left leg)" + icon_state = "gloss" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_L_FOOT,BP_L_LEG) + +/datum/sprite_accessory/marking/vr/gloss_torso + name = "Body gloss (torso)" + icon_state = "gloss" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_GROIN,BP_TORSO) + /datum/sprite_accessory/marking/vr/eboop_panels name = "Eggnerd FBP panels" icon_state = "eboop" diff --git a/code/modules/mob/new_player/sprite_accessories_extra_vr.dm b/code/modules/mob/new_player/sprite_accessories_extra_vr.dm index e5d0ee2a38..85bb90c1cb 100644 --- a/code/modules/mob/new_player/sprite_accessories_extra_vr.dm +++ b/code/modules/mob/new_player/sprite_accessories_extra_vr.dm @@ -953,3 +953,25 @@ icon_state = "zaprat_cheeks" color_blend_mode = ICON_MULTIPLY body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/vr_secbirbfeathers + name = "Secretary Bird Feathers" + icon = 'icons/mob/human_races/markings_vr.dmi' + icon_state = "secbirbfeathers" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/vr_zmaskanime + name = "eye mask (anime eyes)" + icon = 'icons/mob/human_races/markings_vr.dmi' + icon_state = "zmaskanime" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_HEAD) + +/datum/sprite_accessory/marking/vr_birdpants + name = "leg coverings (nev/rap)" + icon = 'icons/mob/human_races/markings_vr.dmi' + icon_state = "birdpants" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_R_LEG, BP_L_LEG, BP_GROIN) + diff --git a/code/modules/mob/new_player/sprite_accessories_tail_vr.dm b/code/modules/mob/new_player/sprite_accessories_tail_vr.dm index 3c42a16a65..8e3e3f7c12 100644 --- a/code/modules/mob/new_player/sprite_accessories_tail_vr.dm +++ b/code/modules/mob/new_player/sprite_accessories_tail_vr.dm @@ -1368,3 +1368,14 @@ name = "heart-bolt-shaped tail, dual color" icon_state = "zaprat_heart_s" extra_overlay = "zaprat_heart_markings" + +/datum/sprite_accessory/tail/satyrtail + name = "goat legs with tail, colorable" + desc = "" + icon_state = "satyr" + color_blend_mode = ICON_MULTIPLY + do_colouration = 1 + hide_body_parts = list(BP_L_LEG, BP_L_FOOT, BP_R_LEG, BP_R_FOOT) //Exclude pelvis just in case. + clip_mask_icon = 'icons/mob/vore/taurs_vr.dmi' + clip_mask_state = "taur_clip_mask_def" //Used to clip off the lower part of suits & uniforms. + extra_overlay = "horse" //I can't believe this works. diff --git a/code/modules/nifsoft/software/05_health.dm b/code/modules/nifsoft/software/05_health.dm index f19e6c58cd..3386d185cf 100644 --- a/code/modules/nifsoft/software/05_health.dm +++ b/code/modules/nifsoft/software/05_health.dm @@ -86,6 +86,7 @@ var/mode = 0 health_flags = (NIF_H_SYNTHREPAIR) + //These self-activate on their own, these aren't user-settable to on/off. /datum/nifsoft/medichines_syn/activate() if((. = ..())) @@ -98,6 +99,8 @@ /datum/nifsoft/medichines_syn/life() if((. = ..())) //We're good! + var/mob/living/carbon/human/S = nif.human + var/HP_percent = S.health/S.getMaxHealth() if(!nif.human.bad_external_organs.len) if(mode || active) nif.notify("User Status: NORMAL. Medichines deactivating.") @@ -120,6 +123,15 @@ else if(mode == 1) mode = 2 nif.notify("Medichines unable to repair all damage. Perform manual repairs.",TRUE) + + if(mode == 2 && HP_percent < -0.4) //lets inform someone who might be able to help us that we got toasted and roasted + nif.notify("User Status: CRITICAL. Notifying medical!",TRUE) + mode = 3 //this does nothing except stop it from repeating over and over and over and over and over and over and over + if(!isbelly(S.loc)) //Not notified in case of vore, for gameplay purposes. + var/turf/T = get_turf(S) + var/obj/item/device/radio/headset/a = new /obj/item/device/radio/headset/heads/captain(null) + a.autosay("[S.real_name] is in a critical condition, located at ([T.x],[T.y],[T.z])!", "[S.real_name]'s NIF", "Medical") + qdel(a) return TRUE diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index bdb05918c9..b725f2d4f7 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -272,6 +272,13 @@ /obj/machinery/power/emitter/examine(mob/user) . = ..() + switch(state) + if(0) + . += "It is not secured in place at all!" + if(1) + . += "It has been bolted down securely, but not welded into place." + if(2) + . += "It has been bolted down securely and welded down into place." var/integrity_percentage = round((integrity / initial(integrity)) * 100) switch(integrity_percentage) if(0 to 30) @@ -279,7 +286,7 @@ if(31 to 70) . += "It is damaged." if(77 to 99) - . += "" + . += "It is slightly damaged." //R-UST port /obj/machinery/power/emitter/proc/get_initial_fire_delay() diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm index 8d892b2756..4a85e1fec5 100644 --- a/code/modules/power/singularity/field_generator.dm +++ b/code/modules/power/singularity/field_generator.dm @@ -40,6 +40,15 @@ field_generator power level display var/light_power_on = 1 light_color = "#5BA8FF" +/obj/machinery/field_generator/examine() + . = ..() + switch(state) + if(0) + . += "It is not secured in place at all!" + if(1) + . += "It has been bolted down securely, but not welded into place." + if(2) + . += "It has been bolted down securely and welded down into place." /obj/machinery/field_generator/update_icon() cut_overlays() diff --git a/code/modules/power/singularity/generator.dm b/code/modules/power/singularity/generator.dm index c29e200e86..a41ea2fd49 100644 --- a/code/modules/power/singularity/generator.dm +++ b/code/modules/power/singularity/generator.dm @@ -10,6 +10,10 @@ var/energy = 0 var/creation_type = /obj/singularity +/obj/machinery/the_singularitygen/examine() + . = ..() + . += "It is [anchored ? "secured" : "not secured"]!" + /obj/machinery/the_singularitygen/process() var/turf/T = get_turf(src) if(src.energy >= 200) diff --git a/code/modules/power/tesla/coil.dm b/code/modules/power/tesla/coil.dm index 2657b34a0a..33caa542a4 100644 --- a/code/modules/power/tesla/coil.dm +++ b/code/modules/power/tesla/coil.dm @@ -21,6 +21,10 @@ /obj/machinery/power/tesla_coil/pre_mapped anchored = TRUE +/obj/machinery/power/tesla_coil/examine() + . = ..() + . += "It is [anchored ? "secured" : "not secured"]!" + /obj/machinery/power/tesla_coil/New() ..() wires = new(src) @@ -107,6 +111,10 @@ buckle_lying = FALSE circuit = /obj/item/weapon/circuitboard/grounding_rod +/obj/machinery/power/grounding_rod/examine() + . = ..() + . += "It is [anchored ? "secured" : "not secured"]!" + /obj/machinery/power/grounding_rod/pre_mapped anchored = TRUE diff --git a/code/modules/power/tesla/generator.dm b/code/modules/power/tesla/generator.dm index 63bce099fa..668dfe4e0a 100644 --- a/code/modules/power/tesla/generator.dm +++ b/code/modules/power/tesla/generator.dm @@ -5,6 +5,10 @@ icon_state = "TheSingGen" creation_type = /obj/singularity/energy_ball +/obj/machinery/the_singularitygen/tesla/examine() + . = ..() + . += "It is [anchored ? "secured" : "not secured"]!" + /obj/machinery/the_singularitygen/tesla/tesla_act(power, explosive = FALSE) if(explosive) energy += power diff --git a/code/modules/reagents/reagents/food_drinks.dm b/code/modules/reagents/reagents/food_drinks.dm index a5486708a5..2ef80b779d 100644 --- a/code/modules/reagents/reagents/food_drinks.dm +++ b/code/modules/reagents/reagents/food_drinks.dm @@ -4538,6 +4538,12 @@ nutriment_factor = 40 //very filling color = "#d169b2" +/datum/reagent/nutriment/magicdust/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) + ..() + playsound(M, 'sound/items/hooh.ogg', 50, 1, -1) + if(prob(5)) + to_chat(M, "You feel like you've been gnomed...") + /datum/reagent/drink/soda/kompot name = "Kompot" id = "kompot" diff --git a/code/modules/reagents/reagents/food_drinks_vr.dm b/code/modules/reagents/reagents/food_drinks_vr.dm index 1f46f0cfbc..5f045e0f75 100644 --- a/code/modules/reagents/reagents/food_drinks_vr.dm +++ b/code/modules/reagents/reagents/food_drinks_vr.dm @@ -31,29 +31,6 @@ /datum/reagent/lipozine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) M.adjust_nutrition(-20 * removed) -/datum/reagent/ethanol/deathbell - name = "Deathbell" - id = "deathbell" - description = "A successful experiment to make the most alcoholic thing possible." - taste_description = "your brains smashed out by a smooth brick of hard, ice cold alcohol" - color = "#9f6aff" - taste_mult = 5 - strength = 10 - adj_temp = 10 - targ_temp = 330 - - glass_name = "Deathbell" - glass_desc = "The perfect blend of the most alcoholic things a bartender can get their hands on." - -/datum/reagent/ethanol/deathbell/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) - ..() - - if(M.species.robo_ethanol_drunk || !(M.isSynthetic())) - if(dose * strength >= strength) // Early warning - M.make_dizzy(24) // Intentionally higher than normal to compensate for it's previous effects. - if(dose * strength >= strength * 2.5) // Slurring takes longer. Again, intentional. - M.slurring = max(M.slurring, 30) - /datum/reagent/ethanol/burnout name = "Burnout" id = "burnout" @@ -103,6 +80,40 @@ glass_name = "Monster Tamer" glass_desc = "This looks like a vaguely-alcoholic slurry of meat. Gross." +/datum/reagent/ethanol/monstertamer/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) + ..() + + if(!(M.isSynthetic())) + if(M.species.organic_food_coeff) //it's still food! + switch(alien) + if(IS_DIONA) //Diona don't get any nutrition from nutriment or protein. + if(IS_SKRELL) + M.adjustToxLoss(0.25 * removed) //Equivalent to half as much protein, since it's half protein. + if(IS_TESHARI) + M.adjust_nutrition(alt_nutriment_factor * 1.2 * removed) //Give them the same nutrition they would get from protein. + if(IS_UNATHI) + M.adjust_nutrition(alt_nutriment_factor * 1.125 * removed) //Give them the same nutrition they would get from protein. + //Takes into account the 0.5 factor for all nutriment which is applied on top of the 2.25 factor for protein. + //Chimera don't need their own case here since their factors for nutriment and protein cancel out. + else + M.adjust_nutrition(alt_nutriment_factor * removed) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.feral > 0 && H.nutrition > 150 && H.traumatic_shock < 20 && H.jitteriness < 100) //Same check as feral triggers to stop them immediately re-feralling + H.feral -= removed * 3 // should calm them down quick, provided they're actually in a state to STAY calm. + if (H.feral <=0) //check if they're unferalled + H.feral = 0 + to_chat(H, "Your mind starts to clear, soothed into a state of clarity as your senses return.") + log_and_message_admins("is no longer feral.", H) + +/datum/reagent/ethanol/monstertamer/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) + ..() + if(alien == IS_SKRELL) + M.adjustToxLoss(removed) //Equivalent to half as much protein, since it's half protein. + if(M.species.organic_food_coeff) + if(alien == IS_SLIME || alien == IS_CHIMERA) //slimes and chimera can get nutrition from injected nutriment and protein + M.adjust_nutrition(alt_nutriment_factor * removed) + /datum/reagent/ethanol/pink_russian name = "Pink Russian" id = "pinkrussian" @@ -158,51 +169,11 @@ glass_name = "Mudslide" glass_desc = "A richly coloured drink, comes with a chocolate garnish!" -/datum/reagent/ethanol/monstertamer/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) - ..() - - if(!(M.isSynthetic())) - if(M.species.organic_food_coeff) //it's still food! - switch(alien) - if(IS_DIONA) //Diona don't get any nutrition from nutriment or protein. - if(IS_SKRELL) - M.adjustToxLoss(0.25 * removed) //Equivalent to half as much protein, since it's half protein. - if(IS_TESHARI) - M.adjust_nutrition(alt_nutriment_factor * 1.2 * removed) //Give them the same nutrition they would get from protein. - if(IS_UNATHI) - M.adjust_nutrition(alt_nutriment_factor * 1.125 * removed) //Give them the same nutrition they would get from protein. - //Takes into account the 0.5 factor for all nutriment which is applied on top of the 2.25 factor for protein. - //Chimera don't need their own case here since their factors for nutriment and protein cancel out. - else - M.adjust_nutrition(alt_nutriment_factor * removed) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - if(H.feral > 0 && H.nutrition > 150 && H.traumatic_shock < 20 && H.jitteriness < 100) //Same check as feral triggers to stop them immediately re-feralling - H.feral -= removed * 3 // should calm them down quick, provided they're actually in a state to STAY calm. - if (H.feral <=0) //check if they're unferalled - H.feral = 0 - to_chat(H, "Your mind starts to clear, soothed into a state of clarity as your senses return.") - log_and_message_admins("is no longer feral.", H) - -/datum/reagent/ethanol/monstertamer/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) - ..() - if(alien == IS_SKRELL) - M.adjustToxLoss(removed) //Equivalent to half as much protein, since it's half protein. - if(M.species.organic_food_coeff) - if(alien == IS_SLIME || alien == IS_CHIMERA) //slimes and chimera can get nutrition from injected nutriment and protein - M.adjust_nutrition(alt_nutriment_factor * removed) - -/datum/reagent/nutriment/magicdust/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) - ..() - playsound(M, 'sound/items/hooh.ogg', 50, 1, -1) - if(prob(5)) - to_chat(M, "You feel like you've been gnomed...") - /datum/reagent/ethanol/galacticpanic name = "Galactic Panic Attack" id = "galacticpanic" description = "The absolute worst thing you could ever put in your body." - taste_description = "an entire galaxy collasping in on itself." + taste_description = "an entire galaxy collasping in on itself" strength = 10 druggy = 50 halluci = 30 @@ -229,31 +200,29 @@ name = "Space Bulldog" id = "bulldog" description = "An inventive kahlua recipe." - taste_description = "fizzy, creamy, soda and coffee hell." + taste_description = "fizzy, creamy, soda and coffee hell" strength = 30 color = "#d3785d" glass_name = "Space Bulldog" glass_desc = "It looks like someone poured cola in a cup of coffee." - /datum/reagent/ethanol/sbagliato name = "Negroni Sbagliato" id = "sbagliato" description = "A drink invented because a bartender was too drunk." - taste_description = "sweet bubbly wine and vermouth." + taste_description = "sweet bubbly wine and vermouth" strength = 30 color = "#d3785d" glass_name = "Negroni Sbagliato" glass_desc = "Bubbles constantly pop up to the surface with a quiet fizz." - /datum/reagent/ethanol/italiancrisis name = "Italian Crisis" id = "italiancrisis" description = "This drink was concocted by a madwoman, causing the Italian Crisis of 2123." - taste_description = "cola, fruit, fizz, coffee, and cream swirled together in an old boot." + taste_description = "cola, fruit, fizz, coffee, and cream swirled together in an old boot" strength = 20 druggy = 0 halluci = 0 @@ -267,7 +236,7 @@ name = "Sweet Rush" id = "sugarrush" description = "A favorite drink amongst poor bartenders living in Neo Detroit." - taste_description = "sweet bubblegum vodka." + taste_description = "sweet bubblegum vodka" strength = 30 color = "#d3785d" @@ -278,7 +247,7 @@ name = "Lotus" id = "lotus" description = "The result of making one mistake after another and trying to cover it up with sugar." - taste_description = "rich, sweet fruit and even more sugar." + taste_description = "rich, sweet fruit and even more sugar" strength = 25 color = "#d3785d" @@ -289,7 +258,7 @@ name = "Dumb Shroom Juice" id = "shroomjuice" description = "The mushroom farmer didn't sort through their stock very well." - taste_description = "sweet and sour citrus with a savory kick." + taste_description = "sweet and sour citrus with a savory kick" strength = 100 druggy = 30 halluci = 30 @@ -303,7 +272,7 @@ name = "Russian Roulette" id = "russianroulette" description = "The perfect drink for wagering your liver on a game of cards." - taste_description = "coffee, vodka, cream, and a hot metal slug." + taste_description = "coffee, vodka, cream, and a hot metal slug" strength = 30 var/adj_dizzy = 30 color = "#d3785d" @@ -321,7 +290,7 @@ name = "The Love Maker" id = "lovemaker" description = "A drink said to help one find true love." - taste_description = "sweet fruit and honey." + taste_description = "sweet fruit and honey" strength = 30 druggy = 0 halluci = 0 @@ -337,7 +306,7 @@ name = "Honey Shot" id = "honeyshot" description = "The perfect drink for bees." - taste_description = "sweet tart grenadine flavored with honey." + taste_description = "sweet tart grenadine flavored with honey" strength = 40 var/adj_dizzy = 10 color = "#d3785d" @@ -349,7 +318,7 @@ name = "Appletini" id = "appletini" description = "A classic cocktail using every grandma's favorite fruit." - taste_description = "green sour apple with a hint of alcohol." + taste_description = "green sour apple with a hint of alcohol" strength = 45 color = "#d3785d" @@ -360,7 +329,7 @@ name = "Glowing Appletini" id = "glowingappletini" description = "A new nuclear take on a pre-modern classic!" - taste_description = "overwhelmingly sour apples powered by a nuclear fission reactor." + taste_description = "overwhelmingly sour apples powered by a nuclear fission reactor" strength = 30 druggy = 20 var/adj_dizzy = 20 @@ -373,7 +342,7 @@ name = "Slow Comfortable Screw Against the Wall" id = "scsatw" description = "The screwdriver's bigger cousin." - taste_description = "smooth, savory booze and tangy orange juice." + taste_description = "smooth, savory booze and tangy orange juice" strength = 30 druggy = 0 halluci = 0 @@ -387,7 +356,7 @@ name = "Choccy Milk" id = "choccymilk" description = "Coco and milk, a timeless classic." - taste_description = "sophisticated bittersweet chocolate mixed with silky, creamy, whole milk." + taste_description = "sophisticated bittersweet chocolate mixed with silky, creamy, whole milk" color = "#d3785d" glass_name = "Choccy Milk" @@ -397,7 +366,7 @@ name = "Red Space Flush" id = "redspaceflush" description = "A drink made by imbueing the essence of redspace into the spirits." - taste_description = "whiskey and rum strung out through a hellish dimensional rift." + taste_description = "whiskey and rum strung out through a hellish dimensional rift" strength = 30 druggy = 10 var/adj_dizzy = 10 @@ -410,7 +379,7 @@ name = "Graveyard" id = "graveyard" description = "The result of taking a cup and filling it with all the drinks at the fountain." - taste_description = "sugar and fizz." + taste_description = "sugar and fizz" color = "#d3785d" glass_name = "Graveyard" @@ -420,7 +389,7 @@ name = "Giant Beer" id = "bigbeer" description = "Bars in Neo Detroit started to sell this drink when the city put mandatory drink limits in 2289." - taste_description = "beer, but bigger." + taste_description = "beer, but bigger" strength = 40 color = "#d3785d" @@ -431,7 +400,7 @@ name = "Sweet Tea" id = "sweettea" description = "Tea that is sweetened with some form of sweetener." - taste_description = "tea that is sweet." + taste_description = "tea that is sweet" color = "#d3785d" glass_name = "Sweet Tea" @@ -441,7 +410,7 @@ name = "Unsweetened Tea" id = "unsweettea" description = "A sick experiment to take the sweetness out of tea after sugar has been added resulted in this." - taste_description = "bland, slightly bitter, discount black tea." + taste_description = "bland, slightly bitter, discount black tea" strength = 80 druggy = 10 color = "#d3785d" @@ -453,7 +422,7 @@ name = "Hair of the Rat" id = "hairoftherat" description = "A meatier version of the monster tamer, complete with extra meat." - taste_description = "meat, whiskey, ground meat, and more meat." + taste_description = "meat, whiskey, ground meat, and more meat" strength = 45 color = "#d3785d" metabolism = REM * 3.5 // about right for mixing nutriment and ethanol. @@ -461,7 +430,7 @@ //using a new variable instead of nutriment_factor so we can call ..() without that adding nutrition for us without taking factors for protein into account glass_name = "Hair of the Rat" - glass_desc = "The alcohol equivelant of saying your burger isn't cooked rare enough." + glass_desc = "The alcoholic equivalent of saying your burger isn't cooked rare enough." /datum/reagent/ethanol/hairoftherat/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) ..() diff --git a/icons/_nanomaps/gb1.png b/icons/_nanomaps/gb1.png index 8c3ac8f2db..153aa1eebf 100644 Binary files a/icons/_nanomaps/gb1.png and b/icons/_nanomaps/gb1.png differ diff --git a/icons/_nanomaps/gb2.png b/icons/_nanomaps/gb2.png index 63277ea186..f69ca71999 100644 Binary files a/icons/_nanomaps/gb2.png and b/icons/_nanomaps/gb2.png differ diff --git a/icons/_nanomaps/gb3.png b/icons/_nanomaps/gb3.png index 191ac4e7c6..2942b3fb61 100644 Binary files a/icons/_nanomaps/gb3.png and b/icons/_nanomaps/gb3.png differ diff --git a/icons/inventory/accessory/item_vr.dmi b/icons/inventory/accessory/item_vr.dmi index 21eaf66ec1..6f84a0e538 100644 Binary files a/icons/inventory/accessory/item_vr.dmi and b/icons/inventory/accessory/item_vr.dmi differ diff --git a/icons/inventory/accessory/mob_vr.dmi b/icons/inventory/accessory/mob_vr.dmi index 1ae86050c7..3ddbd06479 100644 Binary files a/icons/inventory/accessory/mob_vr.dmi and b/icons/inventory/accessory/mob_vr.dmi differ diff --git a/icons/inventory/head/item_vr.dmi b/icons/inventory/head/item_vr.dmi index 4d677f1265..a60948269e 100644 Binary files a/icons/inventory/head/item_vr.dmi and b/icons/inventory/head/item_vr.dmi differ diff --git a/icons/inventory/head/mob_vr.dmi b/icons/inventory/head/mob_vr.dmi index 9e478ee9d3..90aba59462 100644 Binary files a/icons/inventory/head/mob_vr.dmi and b/icons/inventory/head/mob_vr.dmi differ diff --git a/icons/inventory/uniform/item.dmi b/icons/inventory/uniform/item.dmi index e22f9dcd27..1102094c31 100644 Binary files a/icons/inventory/uniform/item.dmi and b/icons/inventory/uniform/item.dmi differ diff --git a/icons/inventory/uniform/item_vr.dmi b/icons/inventory/uniform/item_vr.dmi index 40659b94f8..1363a19d6d 100644 Binary files a/icons/inventory/uniform/item_vr.dmi and b/icons/inventory/uniform/item_vr.dmi differ diff --git a/icons/inventory/uniform/mob.dmi b/icons/inventory/uniform/mob.dmi index ad2aebade9..7f69ac6938 100644 Binary files a/icons/inventory/uniform/mob.dmi and b/icons/inventory/uniform/mob.dmi differ diff --git a/icons/inventory/uniform/mob_vr.dmi b/icons/inventory/uniform/mob_vr.dmi index 400e781f9e..c2d8baca44 100644 Binary files a/icons/inventory/uniform/mob_vr.dmi and b/icons/inventory/uniform/mob_vr.dmi differ diff --git a/icons/mob/human_races/markings_vr.dmi b/icons/mob/human_races/markings_vr.dmi index 80f2d51020..672985eeec 100644 Binary files a/icons/mob/human_races/markings_vr.dmi and b/icons/mob/human_races/markings_vr.dmi differ diff --git a/icons/mob/talk_vr.dmi b/icons/mob/talk_vr.dmi index eafdd6ad9f..28337d0136 100644 Binary files a/icons/mob/talk_vr.dmi and b/icons/mob/talk_vr.dmi differ diff --git a/icons/obj/food_vr.dmi b/icons/obj/food_vr.dmi index 6dc23e9275..35ecb88dcb 100644 Binary files a/icons/obj/food_vr.dmi and b/icons/obj/food_vr.dmi differ diff --git a/icons/obj/trash_vr.dmi b/icons/obj/trash_vr.dmi index 740fd0abc6..cf0cdbd120 100644 Binary files a/icons/obj/trash_vr.dmi and b/icons/obj/trash_vr.dmi differ diff --git a/vorestation.dme b/vorestation.dme index e6f37ddbe9..805b9bba5c 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -2194,6 +2194,7 @@ #include "code\modules\clothing\under\accessories\badges.dm" #include "code\modules\clothing\under\accessories\badges_vr.dm" #include "code\modules\clothing\under\accessories\clothing.dm" +#include "code\modules\clothing\under\accessories\clothing_vr.dm" #include "code\modules\clothing\under\accessories\holster.dm" #include "code\modules\clothing\under\accessories\holster_vr.dm" #include "code\modules\clothing\under\accessories\lockets.dm"