diff --git a/code/datums/riding.dm b/code/datums/riding.dm index ba96dbc405..9dd32dcd93 100644 --- a/code/datums/riding.dm +++ b/code/datums/riding.dm @@ -8,6 +8,7 @@ var/key_name = "the keys" // What the 'keys' for the thing being rided on would be called. var/atom/movable/ridden = null // The thing that the datum is attached to. var/only_one_driver = FALSE // If true, only the person in 'front' (first on list of riding mobs) can drive. + var/rider_size = 1 // VOREStation Edit to figure out offsets for rider. /datum/riding/New(atom/movable/_ridden) ridden = _ridden diff --git a/code/datums/supplypacks/misc_vr.dm b/code/datums/supplypacks/misc_vr.dm index 9c30d686cc..d09f2394a5 100644 --- a/code/datums/supplypacks/misc_vr.dm +++ b/code/datums/supplypacks/misc_vr.dm @@ -158,4 +158,14 @@ cost = 300 containertype = /obj/structure/closet/crate containername = "cordless jukebox speakers crate" - \ No newline at end of file + +/datum/supply_pack/misc/sword + name = "sword" + contains = list( + /obj/item/weapon/material/sword =2 + ) + cost =100 + access = list(access_explorer, + access_security,) + + one_access = TRUE \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index bfc164ae27..9e82b6f434 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -160,7 +160,11 @@ /obj/item/weapon/pipe_dispenser, //bigger belt for bigger tools /obj/item/weapon/rcd, //see above /obj/item/device/quantum_pad_booster, - /obj/item/weapon/inducer + /obj/item/weapon/inducer, + /obj/item/stack/material/steel, + /obj/item/stack/material/glass, + /obj/item/device/lightreplacer, + /obj/item/weapon/pickaxe/plasmacutter ) diff --git a/code/game/objects/structures/artstuff.dm b/code/game/objects/structures/artstuff.dm index d457d49811..8ec67cdf8f 100644 --- a/code/game/objects/structures/artstuff.dm +++ b/code/game/objects/structures/artstuff.dm @@ -335,6 +335,7 @@ var/desc_with_canvas var/persistence_id var/loaded = FALSE + var/curator = "nobody! Report bug if you see this." //Presets for art gallery mapping, for paintings to be shared across stations /obj/structure/sign/painting/public @@ -345,10 +346,11 @@ /obj/structure/sign/painting/library_secure name = "\improper Curated Painting Exhibit mounting" - desc = "For masterpieces hand-picked by the curator." - desc_with_canvas = "A masterpiece hand-picked by the curator, supposedly." + desc = "For masterpieces hand-picked by the librarian." + desc_with_canvas = "A masterpiece hand-picked by the librarian, supposedly." persistence_id = "library" req_one_access = list(access_library) + curator = "Librarian" /obj/structure/sign/painting/chapel_secure name = "\improper Religious Painting Exhibit mounting" @@ -356,13 +358,15 @@ desc_with_canvas = "A masterpiece hand-picked by the chaplain, supposedly." persistence_id = "chapel" req_one_access = list(access_chapel_office) + curator = "Chaplain" /obj/structure/sign/painting/library_private // keep your smut away from prying eyes, or non-librarians at least name = "\improper Private Painting Exhibit mounting" - desc = "For art pieces deemed too subversive or too illegal to be shared outside of curators." + desc = "For art pieces deemed too subversive or too illegal to be shared outside of librarians." desc_with_canvas = "A painting hung away from lesser minds." persistence_id = "library_private" req_one_access = list(access_library) + curator = "Librarian" /obj/structure/sign/painting/away_areas // for very hard-to-get-to areas name = "\improper Remote Painting Exhibit mounting" @@ -412,7 +416,7 @@ /obj/structure/sign/painting/proc/frame_canvas(mob/user,obj/item/canvas/new_canvas) if(!allowed(user)) - to_chat(user, "You're not comfortable framing this canvas in such a prestigious spot!") + to_chat(user, "Access lock prevents you from putting a painting into this frame. Ask [curator] for help!") return if(user.drop_from_inventory(new_canvas, src)) current_canvas = new_canvas @@ -423,7 +427,7 @@ /obj/structure/sign/painting/proc/unframe_canvas(mob/living/user) if(!allowed(user)) - to_chat(user, "You're not comfortable removing this prestigious canvas!") + to_chat(user, "Access lock prevents you from removing paintings from this frame. Ask [curator] ((or admins)) for help!") return if(current_canvas) current_canvas.forceMove(drop_location()) diff --git a/code/modules/busy_space_vr/air_traffic.dm b/code/modules/busy_space_vr/air_traffic.dm index a71fb888df..8a3e5a1607 100644 --- a/code/modules/busy_space_vr/air_traffic.dm +++ b/code/modules/busy_space_vr/air_traffic.dm @@ -116,6 +116,9 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller chatter_type = pick(5;"emerg",25;"policescan",25;"traveladvisory",30;"pathwarning",30;"dockingrequestgeneric",30;"dockingrequestdenied",30;"dockingrequestdelayed",30;"dockingrequestsupply",30;"dockingrequestrepair",30;"dockingrequestmedical",30;"dockingrequestsecurity",30;"undockingrequest","normal",30;"undockingdenied",30;"undockingdelayed",300;"slogan") else if((org_type == "government" || org_type == "neutral" || org_type == "military")) chatter_type = pick(5;"emerg",25;"policescan",25;"traveladvisory",30;"pathwarning",30;"dockingrequestgeneric",30;"dockingrequestdenied",30;"dockingrequestdelayed",30;"dockingrequestsupply",30;"dockingrequestrepair",30;"dockingrequestmedical",30;"dockingrequestsecurity",30;"undockingrequest","normal",30;"undockingdenied",30;"undockingdelayed") + else if(org_type == "spacer") + chatter_type = pick(5;"emerg",15;"policescan",15;"traveladvisory",5;"pathwarning",10;"dockingrequestgeneric",30;"dockingrequestdenied",10;"dockingrequestdelayed",30;"dockingrequestsupplly",10;"dockingrequestrepair",20;"dockingrequestmedical",20;"dockingrequestsecurity",30;"undockingrequest","normal",10;"undockingdenied",30;"undockingdelayed") + //the following filters *always* fire their 'unique' event when they're tripped, simply because the conditions behind them are quite rare to begin with else if(org_type == "smuggler" && org_type2 != "system defense") //just straight up funnel smugglers into always being caught, otherwise we get them asking for traffic info and stuff chatter_type = "policeflee" @@ -141,7 +144,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller //to_world("DEBUG OUTPUT 2: [secondowner], [secondprefix], [secondshipname], [org_type2]") //to_world("DEBUG OUTPUT 3: Chose [chatter_type]") //DEBUG BLOCK ENDS - + var/yes = prob(90) //Chance for them to say yes vs no var/request = pick(requests) diff --git a/code/modules/busy_space_vr/organizations.dm b/code/modules/busy_space_vr/organizations.dm index f52a61fe2d..f2d719968a 100644 --- a/code/modules/busy_space_vr/organizations.dm +++ b/code/modules/busy_space_vr/organizations.dm @@ -2677,6 +2677,7 @@ work = "salvage and trade operators" headquarters = "AH-CV Migrant" motto = "" + org_type = "spacer" ship_prefixes = list("AH-DV" = "a diplomatic", "AH-EV" = "an exploration", "AH-FV" = "a fueling", "AH-FV" = "a cargo", "AH-SV" = "a research", "AH-TV" = "a colony-transporter", "AH-RV" = "an emergency response", "AH-RV" = "a response", "AH-MV" = "a medical") ship_names = list( diff --git a/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm b/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm index 3fcc18e04a..3542aadda0 100644 --- a/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm @@ -110,3 +110,7 @@ Talon winter coat path = /obj/item/clothing/suit/storage/hooded/wintercoat/talon +/datum/gear/suit/armor/combat/crusader_explo + display_name = "knight, explo" + path = /obj/item/clothing/suit/armor/combat/crusader_explo + allowed_roles = list("Explorer","Field Medic","Pathfinder") diff --git a/code/modules/client/preference_setup/vore/08_nif.dm b/code/modules/client/preference_setup/vore/08_nif.dm index 62ebbdbeac..c618341344 100644 --- a/code/modules/client/preference_setup/vore/08_nif.dm +++ b/code/modules/client/preference_setup/vore/08_nif.dm @@ -38,11 +38,16 @@ if((character.type == /mob/living/carbon/human) && ispath(pref.nif_path) && pref.nif_durability) new pref.nif_path(character,pref.nif_durability,pref.nif_savedata) + /* //And now here's the trick. We wipe these so that if they die, they lose the NIF. //Backup implants will start saving this again periodically, and so will cryo'ing out. pref.nif_path = null pref.nif_durability = null pref.nif_savedata = null + */ + //No we do not, that's lame and admins have to re-NIF them later. + //If they leave round after they get their NIF extracted, it will save as 'gone' anyway + //The NIF will save automatically every time durability changes too now. var/savefile/S = new /savefile(pref.path) if(!S) WARNING ("Couldn't load NIF save savefile? [pref.real_name]") S.cd = "/character[pref.default_slot]" diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index b98d08131d..44715c2576 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -278,6 +278,6 @@ //Quartermaster /obj/item/clothing/head/beret/qm - name = "quartermaster's white beret" + name = "quartermaster's beret" desc = "This headwear shows off your Cargonian leadership." icon_state = "beretqm" \ No newline at end of file diff --git a/code/modules/clothing/suits/armor_vr.dm b/code/modules/clothing/suits/armor_vr.dm index 8fed317d35..04cdf610c2 100644 --- a/code/modules/clothing/suits/armor_vr.dm +++ b/code/modules/clothing/suits/armor_vr.dm @@ -114,6 +114,8 @@ icon_state = "bedevere" body_parts_covered = UPPER_TORSO|LOWER_TORSO + + //Deluxe explorer suit /obj/item/clothing/suit/armor/pcarrier/explorer/deluxe name = "modular explorer suit" @@ -123,7 +125,7 @@ /obj/item/clothing/suit/armor/crusader name = "crusader armor" desc = "God will protect those who defend his faith." - + armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 25, "bomb" = 30, "bio" = 0, "rad" = 0) icon = 'icons/inventory/suit/item_vr.dmi' @@ -133,9 +135,32 @@ /obj/item/clothing/head/helmet/crusader name = "crusader helmet" desc = "God will protect those who defend his faith." - + armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 25, "bomb" = 30, "bio" = 0, "rad" = 0) icon = 'icons/inventory/head/item_vr.dmi' default_worn_icon = 'icons/inventory/head/mob_vr.dmi' icon_state = "crusader_head" + +/obj/item/clothing/suit/armor/combat/crusader_explo + name = "explorer low tech suit" + desc = "A low tech armoured suit for exploring harsh environments." + icon_state = "crusader_explo" + icon = 'icons/obj/clothing/knights_vr.dmi' + icon_override = 'icons/obj/clothing/knights_vr.dmi' + flags = THICKMATERIAL + body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS + min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE + cold_protection = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS + siemens_coefficient = 0.9 + armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 35, bio = 75, rad = 35) // Inferior to sec vests in bullet/laser but better for environmental protection. + allowed = list( + /obj/item/device/flashlight, + /obj/item/weapon/gun, + /obj/item/ammo_magazine, + /obj/item/weapon/melee, + /obj/item/weapon/material/knife, + /obj/item/weapon/tank, + /obj/item/device/radio, + /obj/item/weapon/pickaxe + ) \ No newline at end of file diff --git a/code/modules/clothing/suits/utility_vr.dm b/code/modules/clothing/suits/utility_vr.dm index 19475fbe8c..9302fcf11b 100644 --- a/code/modules/clothing/suits/utility_vr.dm +++ b/code/modules/clothing/suits/utility_vr.dm @@ -29,3 +29,5 @@ SPECIES_VOX = 'icons/inventory/suit/mob_vox.dmi', SPECIES_WEREBEAST = 'icons/inventory/suit/mob_vr_werebeast.dmi' ) + + diff --git a/code/modules/mob/living/carbon/human/species/outsider/vox.dm b/code/modules/mob/living/carbon/human/species/outsider/vox.dm index 6cba5f8cee..81b4baa194 100644 --- a/code/modules/mob/living/carbon/human/species/outsider/vox.dm +++ b/code/modules/mob/living/carbon/human/species/outsider/vox.dm @@ -108,4 +108,7 @@ H.internal = H.r_hand H.internal = locate(/obj/item/weapon/tank) in H.contents if(istype(H.internal,/obj/item/weapon/tank) && H.internals) - H.internals.icon_state = "internal1" \ No newline at end of file + H.internals.icon_state = "internal1" + +/datum/species/vox/get_perfect_belly_air_type() + return /datum/gas_mixture/belly_air/vox \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species/species_getters_vr.dm b/code/modules/mob/living/carbon/human/species/species_getters_vr.dm index 4ba9305acc..8bccade358 100644 --- a/code/modules/mob/living/carbon/human/species/species_getters_vr.dm +++ b/code/modules/mob/living/carbon/human/species/species_getters_vr.dm @@ -4,4 +4,7 @@ /datum/species/proc/get_wing(var/mob/living/carbon/human/H) return wing /datum/species/proc/get_wing_animation(var/mob/living/carbon/human/H) - return wing_animation \ No newline at end of file + return wing_animation + +/datum/species/proc/get_perfect_belly_air_type(var/mob/living/carbon/human/H) + return /datum/gas_mixture/belly_air //Default \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species/station/station.dm b/code/modules/mob/living/carbon/human/species/station/station.dm index 3675ab6ca3..460aded9ab 100644 --- a/code/modules/mob/living/carbon/human/species/station/station.dm +++ b/code/modules/mob/living/carbon/human/species/station/station.dm @@ -467,6 +467,8 @@ if(!(K in covered)) H.apply_damage(light_amount/4, BURN, K, 0, 0, "Abnormal growths") +/datum/species/zaddat/get_perfect_belly_air_type() + return /datum/gas_mixture/belly_air/zaddat /datum/species/diona name = SPECIES_DIONA diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index 90bec77cb7..1182dcf34b 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -10,7 +10,11 @@ if(!loc) return - var/datum/gas_mixture/environment = loc.return_air() + var/datum/gas_mixture/environment + if(isbelly(loc)) + environment = loc.return_air_for_internal_lifeform(src) + else + environment = loc.return_air() //handle_modifiers() // Do this early since it might affect other things later. //VOREStation Edit @@ -42,10 +46,10 @@ //Check if we're on fire handle_fire() - + if(client && !(client.prefs.ambience_freq == 0)) // Handle re-running ambience to mobs if they've remained in an area, AND have an active client assigned to them, and do not have repeating ambience disabled. handle_ambience() - + //stuff in the stomach //handle_stomach() //VOREStation Code diff --git a/code/modules/mob/living/silicon/robot/robot_vr.dm b/code/modules/mob/living/silicon/robot/robot_vr.dm index b6c037440a..bcd6a9114b 100644 --- a/code/modules/mob/living/silicon/robot/robot_vr.dm +++ b/code/modules/mob/living/silicon/robot/robot_vr.dm @@ -209,12 +209,13 @@ /datum/riding/dogborg/get_offsets(pass_index) // list(dir = x, y, layer) var/mob/living/L = ridden var/scale = L.size_multiplier + var/scale_difference = (L.size_multiplier - rider_size) * 10 var/list/values = list( - "[NORTH]" = list(0, 10*scale, ABOVE_MOB_LAYER), - "[SOUTH]" = list(0, 10*scale, BELOW_MOB_LAYER), - "[EAST]" = list(-5*scale, 10*scale, ABOVE_MOB_LAYER), - "[WEST]" = list(5*scale, 10*scale, ABOVE_MOB_LAYER)) + "[NORTH]" = list(0, 10*scale + scale_difference, ABOVE_MOB_LAYER), + "[SOUTH]" = list(0, 10*scale + scale_difference, BELOW_MOB_LAYER), + "[EAST]" = list(-5*scale, 10*scale + scale_difference, ABOVE_MOB_LAYER), + "[WEST]" = list(5*scale, 10*scale + scale_difference, ABOVE_MOB_LAYER)) return values @@ -255,6 +256,7 @@ . = ..() if(.) + riding_datum.rider_size = M.size_multiplier buckled_mobs[M] = "riding" /mob/living/silicon/robot/MouseDrop_T(mob/living/M, mob/living/user) //Prevention for forced relocation caused by can_buckle. Base proc has no other use. diff --git a/code/modules/mob/living/simple_mob/simple_mob_vr.dm b/code/modules/mob/living/simple_mob/simple_mob_vr.dm index b5b019d083..3349bd433f 100644 --- a/code/modules/mob/living/simple_mob/simple_mob_vr.dm +++ b/code/modules/mob/living/simple_mob/simple_mob_vr.dm @@ -301,12 +301,13 @@ /datum/riding/simple_mob/get_offsets(pass_index) // list(dir = x, y, layer) var/mob/living/simple_mob/L = ridden var/scale = L.size_multiplier + var/scale_difference = (L.size_multiplier - rider_size) * 10 var/list/values = list( - "[NORTH]" = list(0, L.mount_offset_y*scale, ABOVE_MOB_LAYER), - "[SOUTH]" = list(0, L.mount_offset_y*scale, BELOW_MOB_LAYER), - "[EAST]" = list(-L.mount_offset_x*scale, L.mount_offset_y*scale, ABOVE_MOB_LAYER), - "[WEST]" = list(L.mount_offset_x*scale, L.mount_offset_y*scale, ABOVE_MOB_LAYER)) + "[NORTH]" = list(0, L.mount_offset_y*scale + scale_difference, ABOVE_MOB_LAYER), + "[SOUTH]" = list(0, L.mount_offset_y*scale + scale_difference, BELOW_MOB_LAYER), + "[EAST]" = list(-L.mount_offset_x*scale, L.mount_offset_y*scale + scale_difference, ABOVE_MOB_LAYER), + "[WEST]" = list(L.mount_offset_x*scale, L.mount_offset_y*scale + scale_difference, ABOVE_MOB_LAYER)) return values @@ -333,6 +334,7 @@ . = ..() if(.) + riding_datum.rider_size = H.size_multiplier buckled_mobs[H] = "riding" /mob/living/simple_mob/attack_hand(mob/user as mob) diff --git a/code/modules/mob/new_player/sprite_accessories_taur.dm b/code/modules/mob/new_player/sprite_accessories_taur.dm index cc0d2472c2..4fa3d66e1f 100644 --- a/code/modules/mob/new_player/sprite_accessories_taur.dm +++ b/code/modules/mob/new_player/sprite_accessories_taur.dm @@ -26,14 +26,15 @@ //Hoooo boy. /datum/riding/taur/get_offsets(pass_index) // list(dir = x, y, layer) var/mob/living/L = ridden - var/scale_x = L.icon_scale_x * L.size_multiplier //VOREStation Edit - var/scale_y = L.icon_scale_y * L.size_multiplier //VOREStation Edit + var/scale_x = L.icon_scale_x * L.size_multiplier //VOREStation Edit Start + var/scale_y = L.icon_scale_y * L.size_multiplier + var/scale_difference = (L.size_multiplier - rider_size) * 10 var/list/values = list( - "[NORTH]" = list(0, 8*scale_y, ABOVE_MOB_LAYER), - "[SOUTH]" = list(0, 8*scale_y, BELOW_MOB_LAYER), - "[EAST]" = list(-10*scale_x, 8*scale_y, ABOVE_MOB_LAYER), - "[WEST]" = list(10*scale_x, 8*scale_y, ABOVE_MOB_LAYER)) + "[NORTH]" = list(0, 8*scale_y + scale_difference, ABOVE_MOB_LAYER), + "[SOUTH]" = list(0, 8*scale_y + scale_difference, BELOW_MOB_LAYER), + "[EAST]" = list(-10*scale_x, 8*scale_y + scale_difference, ABOVE_MOB_LAYER), + "[WEST]" = list(10*scale_x, 8*scale_y + scale_difference, ABOVE_MOB_LAYER)) //VOREStation Edit End return values @@ -74,6 +75,7 @@ . = ..() if(.) + riding_datum.rider_size = M.size_multiplier buckled_mobs[M] = "riding" /mob/living/carbon/human/MouseDrop_T(mob/living/M, mob/living/user) //Prevention for forced relocation caused by can_buckle. Base proc has no other use. diff --git a/code/modules/mob/new_player/sprite_accessories_wing_vr.dm b/code/modules/mob/new_player/sprite_accessories_wing_vr.dm index 7cc4dfc081..c747c4923b 100644 --- a/code/modules/mob/new_player/sprite_accessories_wing_vr.dm +++ b/code/modules/mob/new_player/sprite_accessories_wing_vr.dm @@ -133,6 +133,7 @@ icon_state = "neckfur" do_colouration = 1 color_blend_mode = ICON_MULTIPLY + extra_overlay = "neckfur_markings" /datum/sprite_accessory/wing/feathered name = "feathered wings, colorable" diff --git a/code/modules/nifsoft/nif.dm b/code/modules/nifsoft/nif.dm index 6d3d62e684..77f7ef093e 100644 --- a/code/modules/nifsoft/nif.dm +++ b/code/modules/nifsoft/nif.dm @@ -202,6 +202,9 @@ You can also set the stat of a NIF to NIF_TEMPFAIL without any issues to disable durability -= wear savetofile = TRUE // YW EDIT + if(human) + persist_nif_data(human) + if(durability <= 0) stat = NIF_TEMPFAIL update_icon() @@ -210,6 +213,13 @@ You can also set the stat of a NIF to NIF_TEMPFAIL without any issues to disable notify("Danger! General system insta#^!($",TRUE) to_chat(human,"Your NIF vision overlays disappear and your head suddenly seems very quiet...") +//Repair update/check proc +/obj/item/device/nif/proc/repair(var/repair = 0) + durability = min(durability + repair, initial(durability)) + + if(human) + persist_nif_data(human) + //Attackby proc, for maintenance /obj/item/device/nif/attackby(obj/item/weapon/W, mob/user as mob) if(open == 0 && W.is_screwdriver()) @@ -239,6 +249,7 @@ You can also set the stat of a NIF to NIF_TEMPFAIL without any issues to disable playsound(src, 'sound/items/Screwdriver.ogg', 50, 1) open = FALSE durability = initial(durability) + repair(initial(durability)) savetofile = TRUE // YW EDIT stat = NIF_PREINSTALL update_icon() diff --git a/code/modules/random_map/noise/ore.dm b/code/modules/random_map/noise/ore.dm index a2aaec2d75..a9273f5ec0 100644 --- a/code/modules/random_map/noise/ore.dm +++ b/code/modules/random_map/noise/ore.dm @@ -53,7 +53,7 @@ var/current_cell = map[get_map_cell(x,y)] if(current_cell < rare_val) // Surface metals. - T.resources["hematite"] = rand(RESOURCE_HIGH_MIN, RESOURCE_HIGH_MAX) + T.resources["hematite"] = rand(RESOURCE_MID_MIN, RESOURCE_HIGH_MAX) T.resources["gold"] = rand(RESOURCE_LOW_MIN, RESOURCE_LOW_MAX) T.resources["silver"] = rand(RESOURCE_LOW_MIN, RESOURCE_LOW_MAX) T.resources["uranium"] = rand(RESOURCE_LOW_MIN, RESOURCE_LOW_MAX) @@ -81,7 +81,7 @@ T.resources["lead"] = rand(RESOURCE_LOW_MIN, RESOURCE_MID_MAX) T.resources["hydrogen"] = 0 T.resources["diamond"] = 0 - T.resources["hematite"] = 0 + T.resources["hematite"] = rand(RESOURCE_HIGH_MIN, RESOURCE_HIGH_MAX) T.resources["marble"] = 0 //T.resources["copper"] = 0 //T.resources["tin"] = rand(RESOURCE_MID_MIN, RESOURCE_MID_MAX) @@ -91,7 +91,7 @@ //T.resources["quartz"] = 0 //T.resources["painite"] = 0 else // Deep metals. - T.resources["uranium"] = rand(RESOURCE_LOW_MIN, RESOURCE_LOW_MAX) + T.resources["uranium"] = rand(RESOURCE_MID_MIN, RESOURCE_HIGH_MAX) T.resources["diamond"] = rand(RESOURCE_LOW_MIN, RESOURCE_LOW_MAX) T.resources["verdantium"] = rand(RESOURCE_LOW_MIN, RESOURCE_MID_MAX) T.resources["phoron"] = rand(RESOURCE_HIGH_MIN, RESOURCE_HIGH_MAX) @@ -99,9 +99,9 @@ T.resources["hydrogen"] = rand(RESOURCE_MID_MIN, RESOURCE_MID_MAX) T.resources["marble"] = rand(RESOURCE_MID_MIN, RESOURCE_HIGH_MAX) T.resources["lead"] = rand(RESOURCE_LOW_MIN, RESOURCE_HIGH_MAX) - T.resources["hematite"] = 0 - T.resources["gold"] = 0 - T.resources["silver"] = 0 + T.resources["hematite"] = rand(RESOURCE_HIGH_MIN, RESOURCE_HIGH_MAX) + T.resources["gold"] = rand(RESOURCE_MID_MIN, RESOURCE_HIGH_MAX) + T.resources["silver"] = rand(RESOURCE_MID_MIN, RESOURCE_HIGH_MAX) //T.resources["copper"] = 0 //T.resources["tin"] = 0 //T.resources["bauxite"] = 0 diff --git a/code/modules/reagents/reagents/other_vr.dm b/code/modules/reagents/reagents/other_vr.dm index f0286667df..eba5c5cbbe 100644 --- a/code/modules/reagents/reagents/other_vr.dm +++ b/code/modules/reagents/reagents/other_vr.dm @@ -47,7 +47,7 @@ var/obj/item/device/nif/nif = H.nif //L o c a l if(nif.stat == NIF_TEMPFAIL) nif.stat = NIF_INSTALLING - nif.durability = min(nif.durability + removed, initial(nif.durability)) + nif.repair(removed) /datum/reagent/firefighting_foam name = "Firefighting Foam" @@ -120,7 +120,7 @@ var/obj/item/device/nif/nif = H.nif //L o c a l if(nif.stat == NIF_TEMPFAIL) nif.stat = NIF_INSTALLING - nif.durability = min(nif.durability + removed*0.1, initial(nif.durability)) + nif.repair(removed*0.1) //Special toxins for solargrubs /datum/reagent/grubshock diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm index 7551b4a2da..9637ea2fe9 100644 --- a/code/modules/vore/eating/living_vr.dm +++ b/code/modules/vore/eating/living_vr.dm @@ -554,11 +554,20 @@ /obj/belly/return_air() return return_air_for_internal_lifeform() -/obj/belly/return_air_for_internal_lifeform() +/obj/belly/return_air_for_internal_lifeform(var/mob/living/lifeform) //Free air until someone wants to code processing it for reals from predbreaths - var/datum/gas_mixture/belly_air/air = new(1000) + var/air_type = lifeform.get_perfect_belly_air_type() // Without any overrides/changes, its gonna be /datum/gas_mixture/belly_air + var/air = new air_type(1000) return air +/mob/living/proc/get_perfect_belly_air_type() + return /datum/gas_mixture/belly_air + +/mob/living/carbon/human/get_perfect_belly_air_type() + if(species) + return species.get_perfect_belly_air_type() + return ..() + // This is about 0.896m^3 of atmosphere /datum/gas_mixture/belly_air volume = 2500 @@ -571,6 +580,27 @@ "oxygen" = 21, "nitrogen" = 79) +/datum/gas_mixture/belly_air/vox + volume = 2500 + temperature = 293.150 + total_moles = 104 + +/datum/gas_mixture/belly_air/vox/New() + . = ..() + gas = list( + "phoron" = 100) + +/datum/gas_mixture/belly_air/zaddat + volume = 2500 + temperature = 293.150 + total_moles = 300 + +/datum/gas_mixture/belly_air/zaddat/New() + . = ..() + gas = list( + "oxygen" = 100) + + /mob/living/proc/feed_grabbed_to_self_falling_nom(var/mob/living/user, var/mob/living/prey) var/belly = user.vore_selected return perform_the_nom(user, prey, user, belly, delay = 1) //1/10th of a second is probably fine. diff --git a/icons/inventory/head/item_vr.dmi b/icons/inventory/head/item_vr.dmi index 1f298898de..54a988a2b7 100644 Binary files a/icons/inventory/head/item_vr.dmi and b/icons/inventory/head/item_vr.dmi differ diff --git a/icons/mob/vore/wings_vr.dmi b/icons/mob/vore/wings_vr.dmi index 40f5f02d92..4dac461599 100644 Binary files a/icons/mob/vore/wings_vr.dmi and b/icons/mob/vore/wings_vr.dmi differ diff --git a/icons/obj/clothing/knights_vr.dmi b/icons/obj/clothing/knights_vr.dmi index eb4c1a6074..395319fbff 100644 Binary files a/icons/obj/clothing/knights_vr.dmi and b/icons/obj/clothing/knights_vr.dmi differ diff --git a/maps/expedition_vr/aerostat/aerostat_science_outpost.dmm b/maps/expedition_vr/aerostat/aerostat_science_outpost.dmm index d3dae2538e..49d0f2963b 100644 --- a/maps/expedition_vr/aerostat/aerostat_science_outpost.dmm +++ b/maps/expedition_vr/aerostat/aerostat_science_outpost.dmm @@ -268,7 +268,6 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/structure/table/wooden_reinforced, /turf/simulated/floor/plating/virgo2, /area/offmap/aerostat/solars) "aN" = ( @@ -2578,6 +2577,9 @@ tag_north = 2; tag_west = 1 }, +/obj/machinery/camera/network/research_outpost{ + dir = 8 + }, /turf/simulated/floor/tiled/white, /area/offmap/aerostat/inside/toxins) "hX" = ( @@ -9557,7 +9559,8 @@ /obj/machinery/door/firedoor/glass, /obj/machinery/door/airlock/medical{ name = "Virology Isolation Room"; - req_access = list (39) + req_access = list(39); + req_one_access = null }, /turf/simulated/floor/tiled/steel_ridged, /area/offmap/aerostat/inside/virology) diff --git a/maps/stellardelight/stellar_delight2.dmm b/maps/stellardelight/stellar_delight2.dmm index 093cc756ac..c2ff02b966 100644 --- a/maps/stellardelight/stellar_delight2.dmm +++ b/maps/stellardelight/stellar_delight2.dmm @@ -930,7 +930,6 @@ dir = 1; pixel_y = 24 }, -/obj/structure/sign/christmas/wreath, /mob/living/simple_mob/otie/red/chubby/cocoa, /turf/simulated/floor/tiled/eris/steel/brown_platform, /area/crew_quarters/bar) @@ -1235,7 +1234,7 @@ /turf/simulated/floor/wood, /area/stellardelight/deck2/barbackroom) "cC" = ( -/obj/structure/flora/pottedplant/xmas, +/obj/structure/flora/pottedplant/decorative, /turf/simulated/floor/tiled/eris/dark/cargo, /area/crew_quarters/recreation_area) "cD" = ( @@ -2615,15 +2614,9 @@ /turf/simulated/floor/tiled/eris/dark/cargo, /area/crew_quarters/recreation_area) "fL" = ( -/obj/machinery/computer/arcade/battle, /obj/machinery/atmospherics/unary/vent_pump/on, /obj/effect/landmark/vermin, -/obj/structure/sign/christmas/lights{ - dir = 4 - }, -/obj/structure/sign/christmas/lights{ - dir = 1 - }, +/obj/machinery/slot_machine, /turf/simulated/floor/tiled/eris/dark/cargo, /area/crew_quarters/recreation_area) "fN" = ( @@ -3407,9 +3400,6 @@ /obj/item/weapon/deck/cah/black, /obj/item/weapon/deck/cards, /obj/item/weapon/deck/cards/casino, -/obj/structure/sign/christmas/lights{ - dir = 1 - }, /turf/simulated/floor/tiled/eris/dark/cargo, /area/crew_quarters/recreation_area) "hC" = ( @@ -3652,9 +3642,6 @@ }, /obj/structure/table/bench/steel, /obj/effect/landmark/start/visitor, -/obj/structure/sign/christmas/lights{ - dir = 4 - }, /turf/simulated/floor/tiled/eris/dark/cargo, /area/crew_quarters/recreation_area) "ik" = ( @@ -3761,7 +3748,6 @@ dir = 1 }, /obj/effect/landmark/start/visitor, -/obj/structure/sign/christmas/lights, /turf/simulated/floor/carpet/turcarpet, /area/crew_quarters/recreation_area) "iy" = ( @@ -3920,7 +3906,6 @@ dir = 1; pixel_y = 4 }, -/obj/structure/sign/christmas/wreath, /turf/simulated/floor/tiled/eris/dark/cargo, /area/crew_quarters/recreation_area) "iP" = ( @@ -4576,9 +4561,6 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/sign/christmas/lights{ - dir = 4 - }, /turf/simulated/floor/tiled/eris/dark/cargo, /area/crew_quarters/recreation_area) "kq" = ( @@ -5280,9 +5262,6 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/sign/christmas/lights{ - dir = 4 - }, /turf/simulated/floor/carpet/turcarpet, /area/crew_quarters/recreation_area) "lH" = ( @@ -5834,7 +5813,6 @@ /obj/machinery/camera/network/civilian{ dir = 1 }, -/obj/structure/sign/christmas/lights, /turf/simulated/floor/tiled/dark, /area/crew_quarters/recreation_area) "mM" = ( @@ -5911,9 +5889,6 @@ /obj/machinery/camera/network/civilian{ dir = 8 }, -/obj/structure/sign/christmas/lights{ - dir = 4 - }, /turf/simulated/floor/tiled/eris/dark/cargo, /area/crew_quarters/recreation_area) "mV" = ( @@ -7781,7 +7756,6 @@ /obj/structure/bed/chair/sofa/corp/corner{ dir = 8 }, -/obj/structure/sign/christmas/lights, /turf/simulated/floor/carpet/turcarpet, /area/crew_quarters/recreation_area) "rh" = ( @@ -8115,14 +8089,6 @@ "rR" = ( /turf/simulated/wall/bay/r_wall/steel, /area/maintenance/stellardelight/deck2/portaft) -"rS" = ( -/obj/structure/table/wooden_reinforced, -/obj/structure/sign/christmas/lights, -/obj/structure/sign/christmas/lights{ - dir = 4 - }, -/turf/simulated/floor/tiled/eris/dark/cargo, -/area/crew_quarters/recreation_area) "rT" = ( /turf/simulated/wall/bay/r_wall/steel, /area/storage/tech) @@ -8203,7 +8169,6 @@ /obj/structure/bed/chair/sofa/corp{ dir = 1 }, -/obj/structure/sign/christmas/lights, /turf/simulated/floor/carpet/turcarpet, /area/crew_quarters/recreation_area) "sd" = ( @@ -8428,7 +8393,6 @@ /area/quartermaster/storage) "sH" = ( /obj/structure/table/wooden_reinforced, -/obj/structure/sign/christmas/lights, /turf/simulated/floor/tiled/eris/dark/cargo, /area/crew_quarters/recreation_area) "sI" = ( @@ -9649,13 +9613,6 @@ /obj/machinery/lapvend, /turf/simulated/floor/tiled/techmaint, /area/storage/primary) -"vv" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/sign/christmas/lights{ - dir = 8 - }, -/turf/simulated/floor/tiled/eris/dark/cargo, -/area/crew_quarters/recreation_area) "vw" = ( /obj/machinery/atmospherics/unary/vent_pump/on, /turf/simulated/floor, @@ -9933,7 +9890,6 @@ /obj/structure/bed/chair/sofa/corp/corner{ dir = 4 }, -/obj/structure/sign/christmas/lights, /turf/simulated/floor/carpet/turcarpet, /area/crew_quarters/recreation_area) "wg" = ( @@ -10541,9 +10497,6 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/sign/christmas/lights{ - dir = 8 - }, /turf/simulated/floor/carpet/turcarpet, /area/crew_quarters/recreation_area) "xG" = ( @@ -10769,9 +10722,6 @@ /obj/machinery/light{ dir = 1 }, -/obj/structure/sign/christmas/lights{ - dir = 1 - }, /turf/simulated/floor/tiled/eris/dark/cargo, /area/crew_quarters/recreation_area) "yd" = ( @@ -11051,10 +11001,6 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 }, -/obj/structure/sign/christmas/lights, -/obj/structure/sign/christmas/lights{ - dir = 8 - }, /turf/simulated/floor/carpet/turcarpet, /area/crew_quarters/recreation_area) "yH" = ( @@ -12264,9 +12210,6 @@ dir = 4; pixel_x = 24 }, -/obj/structure/sign/christmas/lights{ - dir = 4 - }, /turf/simulated/floor/carpet/turcarpet, /area/crew_quarters/recreation_area) "BD" = ( @@ -12392,9 +12335,6 @@ pixel_x = 9; pixel_y = 24 }, -/obj/structure/sign/christmas/lights{ - dir = 1 - }, /turf/simulated/floor/tiled/eris/dark/cargo, /area/crew_quarters/recreation_area) "BT" = ( @@ -12916,15 +12856,12 @@ /turf/simulated/floor/tiled/techmaint, /area/storage/primary) "De" = ( -/obj/structure/flora/pottedplant/xmas, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/item/device/radio/intercom{ dir = 8; pixel_x = -24 }, -/obj/structure/sign/christmas/lights{ - dir = 8 - }, +/obj/structure/flora/pottedplant/decorative, /turf/simulated/floor/tiled/eris/dark/cargo, /area/crew_quarters/recreation_area) "Df" = ( @@ -13220,15 +13157,12 @@ /turf/simulated/floor/glass/reinforced, /area/stellardelight/deck2/fore) "DO" = ( -/obj/structure/flora/pottedplant/xmas, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/item/device/radio/intercom{ dir = 4; pixel_x = 24 }, -/obj/structure/sign/christmas/lights{ - dir = 4 - }, +/obj/structure/flora/pottedplant/decorative, /turf/simulated/floor/tiled/eris/dark/cargo, /area/crew_quarters/recreation_area) "DP" = ( @@ -13268,10 +13202,6 @@ /obj/machinery/hologram/holopad, /turf/simulated/floor/tiled/eris/dark/techfloor_grid, /area/engineering/storage) -"DU" = ( -/obj/structure/sign/christmas/lights, -/turf/simulated/floor/tiled/eris/dark/cargo, -/area/crew_quarters/recreation_area) "DV" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -14688,9 +14618,6 @@ /obj/structure/closet/crate/bin{ anchored = 1 }, -/obj/structure/sign/christmas/lights{ - dir = 1 - }, /turf/simulated/floor/tiled/eris/dark/cargo, /area/crew_quarters/recreation_area) "GM" = ( @@ -15077,9 +15004,6 @@ dir = 8; pixel_x = -24 }, -/obj/structure/sign/christmas/lights{ - dir = 8 - }, /turf/simulated/floor/carpet/turcarpet, /area/crew_quarters/recreation_area) "HF" = ( @@ -15596,7 +15520,6 @@ /obj/effect/landmark{ name = "lightsout" }, -/obj/structure/flora/tree/pine/xmas/presents, /turf/simulated/floor/glass/reinforced, /area/crew_quarters/recreation_area) "IF" = ( @@ -15825,12 +15748,6 @@ "Ji" = ( /obj/machinery/computer/arcade/orion_trail, /obj/machinery/atmospherics/unary/vent_scrubber/on, -/obj/structure/sign/christmas/lights{ - dir = 8 - }, -/obj/structure/sign/christmas/lights{ - dir = 1 - }, /turf/simulated/floor/tiled/eris/dark/cargo, /area/crew_quarters/recreation_area) "Jj" = ( @@ -17242,10 +17159,7 @@ /turf/simulated/floor/tiled, /area/stellardelight/deck2/port) "Mp" = ( -/obj/machinery/computer/arcade/orion_trail, -/obj/structure/sign/christmas/lights{ - dir = 1 - }, +/obj/machinery/computer/arcade/battle, /turf/simulated/floor/tiled/eris/dark/cargo, /area/crew_quarters/recreation_area) "Mq" = ( @@ -17664,7 +17578,6 @@ dir = 1; pixel_y = 24 }, -/obj/structure/sign/christmas/wreath, /turf/simulated/floor/tiled/eris/steel/brown_platform, /area/crew_quarters/bar) "Nl" = ( @@ -18226,13 +18139,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/tiled/eris/white/bluecorner, /area/stellardelight/deck2/triage) -"Oy" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/sign/christmas/lights{ - dir = 4 - }, -/turf/simulated/floor/tiled/eris/dark/cargo, -/area/crew_quarters/recreation_area) "Oz" = ( /obj/machinery/atmospherics/unary/vent_pump/on, /obj/effect/floor_decal/steeldecal/steel_decals5{ @@ -19282,9 +19188,6 @@ pixel_y = -32 }, /obj/structure/table/bench/steel, -/obj/structure/sign/christmas/lights{ - dir = 8 - }, /turf/simulated/floor/tiled/eris/dark/cargo, /area/crew_quarters/recreation_area) "QK" = ( @@ -19439,9 +19342,6 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/sign/christmas/lights{ - dir = 8 - }, /turf/simulated/floor/tiled/eris/dark/cargo, /area/crew_quarters/recreation_area) "Ra" = ( @@ -20085,10 +19985,7 @@ /turf/simulated/wall/bay/r_wall/steel, /area/maintenance/stellardelight/deck2/portfore) "SF" = ( -/obj/machinery/computer/arcade/battle, -/obj/structure/sign/christmas/lights{ - dir = 1 - }, +/obj/machinery/slot_machine, /turf/simulated/floor/tiled/eris/dark/cargo, /area/crew_quarters/recreation_area) "SG" = ( @@ -20117,7 +20014,6 @@ /obj/item/weapon/stool/padded{ dir = 8 }, -/obj/structure/sign/christmas/lights, /turf/simulated/floor/tiled/eris/dark/cargo, /area/crew_quarters/recreation_area) "SK" = ( @@ -21114,9 +21010,6 @@ /obj/structure/sign/poster{ dir = 1 }, -/obj/structure/sign/christmas/lights{ - dir = 1 - }, /turf/simulated/floor/tiled/eris/dark/cargo, /area/crew_quarters/recreation_area) "UX" = ( @@ -21808,9 +21701,6 @@ /area/medical/reception) "WC" = ( /obj/machinery/alarm/angled, -/obj/structure/sign/christmas/lights{ - dir = 1 - }, /turf/simulated/floor/tiled/eris/dark/cargo, /area/crew_quarters/recreation_area) "WE" = ( @@ -21939,10 +21829,6 @@ "WR" = ( /obj/structure/table/wooden_reinforced, /obj/item/device/paicard, -/obj/structure/sign/christmas/lights, -/obj/structure/sign/christmas/lights{ - dir = 8 - }, /turf/simulated/floor/tiled/eris/dark/cargo, /area/crew_quarters/recreation_area) "WS" = ( @@ -22349,9 +22235,6 @@ pixel_y = 32 }, /obj/machinery/recharge_station, -/obj/structure/sign/christmas/lights{ - dir = 1 - }, /turf/simulated/floor/tiled/eris/dark/cargo, /area/crew_quarters/recreation_area) "XQ" = ( @@ -22480,7 +22363,6 @@ /obj/structure/musician/piano{ dir = 4 }, -/obj/structure/sign/christmas/lights, /turf/simulated/floor/tiled/eris/dark/cargo, /area/crew_quarters/recreation_area) "Yd" = ( @@ -22537,9 +22419,6 @@ /area/stellardelight/deck2/port) "Yl" = ( /obj/machinery/firealarm/angled, -/obj/structure/sign/christmas/lights{ - dir = 1 - }, /turf/simulated/floor/tiled/eris/dark/cargo, /area/crew_quarters/recreation_area) "Ym" = ( @@ -22808,9 +22687,6 @@ /obj/machinery/camera/network/civilian{ dir = 5 }, -/obj/structure/sign/christmas/lights{ - dir = 8 - }, /turf/simulated/floor/tiled/eris/dark/cargo, /area/crew_quarters/recreation_area) "YO" = ( @@ -23348,10 +23224,6 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 1 }, -/obj/structure/sign/christmas/lights, -/obj/structure/sign/christmas/lights{ - dir = 4 - }, /turf/simulated/floor/carpet/turcarpet, /area/crew_quarters/recreation_area) @@ -32637,7 +32509,7 @@ mt jv ct Lq -vv +ct HE xE yG @@ -33773,7 +33645,7 @@ mt hm VM uJ -Oy +VM BC lG ZZ @@ -33909,12 +33781,12 @@ HO nt XP mt -mt +SF mt mt lO mt -DU +mt nt nt nt @@ -34198,7 +34070,7 @@ kp GA fK ij -rS +sH nt Rq Rq