diff --git a/code/__defines/chemistry_vr.dm b/code/__defines/chemistry_vr.dm index 7c29bced618..094bfc2139f 100644 --- a/code/__defines/chemistry_vr.dm +++ b/code/__defines/chemistry_vr.dm @@ -1,4 +1,2 @@ // More for our custom races -#define IS_SERGAL 10 -#define IS_AKULA 11 -#define IS_NEVREAN 12 \ No newline at end of file +#define IS_CHIMERA 12 \ No newline at end of file diff --git a/code/game/machinery/computer/timeclock_vr.dm b/code/game/machinery/computer/timeclock_vr.dm index 3f2d44ce0ba..caeecb2e27b 100644 --- a/code/game/machinery/computer/timeclock_vr.dm +++ b/code/game/machinery/computer/timeclock_vr.dm @@ -15,6 +15,7 @@ layer = ABOVE_WINDOW_LAYER density = FALSE circuit = /obj/item/weapon/circuitboard/timeclock + clicksound = null var/obj/item/weapon/card/id/card // Inserted Id card diff --git a/code/game/objects/items/weapons/storage/briefcase.dm b/code/game/objects/items/weapons/storage/briefcase.dm index 285461d9379..4c8a631fa30 100644 --- a/code/game/objects/items/weapons/storage/briefcase.dm +++ b/code/game/objects/items/weapons/storage/briefcase.dm @@ -12,6 +12,7 @@ /obj/item/weapon/storage/briefcase/clutch name = "clutch purse" desc = "A fashionable handheld bag typically used by women." + icon = 'icons/obj/clothing/backpack.dmi' //VOREStation Edit - Wrong sprite location icon_state = "clutch" item_state_slots = list(slot_r_hand_str = "smpurse", slot_l_hand_str = "smpurse") force = 0 diff --git a/code/modules/client/preference_setup/loadout/loadout_accessories.dm b/code/modules/client/preference_setup/loadout/loadout_accessories.dm index a2138023eee..4c6066c2404 100644 --- a/code/modules/client/preference_setup/loadout/loadout_accessories.dm +++ b/code/modules/client/preference_setup/loadout/loadout_accessories.dm @@ -135,17 +135,17 @@ /datum/gear/accessory/brown_vest display_name = "webbing, brown" path = /obj/item/clothing/accessory/storage/brown_vest - allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer","Security Officer","Detective","Head of Security","Warden","Paramedic","Chief Medical Officer","Medical Doctor") + allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer","Security Officer","Detective","Head of Security","Warden","Paramedic","Chief Medical Officer","Medical Doctor", "Search and Rescue") /datum/gear/accessory/black_vest display_name = "webbing, black" path = /obj/item/clothing/accessory/storage/black_vest - allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer","Security Officer","Detective","Head of Security","Warden","Paramedic","Chief Medical Officer","Medical Doctor") + allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer","Security Officer","Detective","Head of Security","Warden","Paramedic","Chief Medical Officer","Medical Doctor", "Search and Rescue") /datum/gear/accessory/white_vest display_name = "webbing, white" path = /obj/item/clothing/accessory/storage/white_vest - allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer","Security Officer","Detective","Head of Security","Warden","Paramedic","Chief Medical Officer","Medical Doctor") + allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer","Security Officer","Detective","Head of Security","Warden","Paramedic","Chief Medical Officer","Medical Doctor", "Search and Rescue") /datum/gear/accessory/brown_drop_pouches display_name = "drop pouches, brown" diff --git a/code/modules/client/preference_setup/loadout/loadout_eyes.dm b/code/modules/client/preference_setup/loadout/loadout_eyes.dm index 8dcb6a61e2f..ee7bd4cc200 100644 --- a/code/modules/client/preference_setup/loadout/loadout_eyes.dm +++ b/code/modules/client/preference_setup/loadout/loadout_eyes.dm @@ -36,7 +36,7 @@ /datum/gear/eyes/security display_name = "Security HUD (Security)" path = /obj/item/clothing/glasses/hud/security - allowed_roles = list("Security Officer","Head of Security","Warden") + allowed_roles = list("Security Officer","Head of Security","Warden", "Detective") /datum/gear/eyes/security/prescriptionsec display_name = "Security HUD, prescription (Security)" @@ -72,12 +72,12 @@ path = /obj/item/clothing/glasses/hud/health/aviator/prescription /datum/gear/eyes/meson - display_name = "Optical Meson Scanners (Engineering, Science)" + display_name = "Optical Meson Scanners (Engineering, Science, Mining)" path = /obj/item/clothing/glasses/meson - allowed_roles = list("Station Engineer","Chief Engineer","Atmospheric Technician", "Scientist", "Research Director") + allowed_roles = list("Station Engineer","Chief Engineer","Atmospheric Technician", "Scientist", "Research Director", "Shaft Miner") /datum/gear/eyes/meson/prescription - display_name = "Optical Meson Scanners, prescription (Engineering, Science)" + display_name = "Optical Meson Scanners, prescription (Engineering, Science, Mining)" path = /obj/item/clothing/glasses/meson/prescription /datum/gear/eyes/material @@ -90,11 +90,11 @@ path = /obj/item/clothing/glasses/material/prescription /datum/gear/eyes/meson/aviator - display_name = "Optical Meson Aviators, (Engineering, Science)" + display_name = "Optical Meson Aviators, (Engineering, Science, Mining)" path = /obj/item/clothing/glasses/meson/aviator /datum/gear/eyes/meson/aviator/prescription - display_name = "Optical Meson Aviators, prescription (Engineering, Science)" + display_name = "Optical Meson Aviators, prescription (Engineering, Science, Mining)" path = /obj/item/clothing/glasses/meson/aviator/prescription /datum/gear/eyes/glasses/fakesun diff --git a/code/modules/client/preference_setup/loadout/loadout_head.dm b/code/modules/client/preference_setup/loadout/loadout_head.dm index 5901d232d8a..412105f3823 100644 --- a/code/modules/client/preference_setup/loadout/loadout_head.dm +++ b/code/modules/client/preference_setup/loadout/loadout_head.dm @@ -34,7 +34,7 @@ /datum/gear/head/beret/csec display_name = "beret, corporate (officer)" path = /obj/item/clothing/head/beret/sec/corporate/officer - allowed_roles = list("Security Officer","Head of Security","Warden") + allowed_roles = list("Security Officer","Head of Security","Warden", "Detective") /datum/gear/head/beret/csec_warden display_name = "beret, corporate (warden)" @@ -57,7 +57,7 @@ /datum/gear/head/beret/sec display_name = "beret, red (security)" path = /obj/item/clothing/head/beret/sec - allowed_roles = list("Security Officer","Head of Security","Warden") + allowed_roles = list("Security Officer","Head of Security","Warden", "Detective") /datum/gear/head/cap display_name = "cap, black" @@ -324,22 +324,18 @@ /datum/gear/head/welding/demon display_name = "welding, demon (engineering/robotics)" path = /obj/item/clothing/head/welding/demon - allowed_roles = list("Chief Engineer","Station Engineer","Atmospheric Technician","Research Director","Roboticist") /datum/gear/head/welding/knight display_name = "welding, knight (engineering/robotics)" path = /obj/item/clothing/head/welding/knight - allowed_roles = list("Chief Engineer","Station Engineer","Atmospheric Technician","Research Director","Roboticist") /datum/gear/head/welding/fancy display_name = "welding, fancy (engineering/robotics)" path = /obj/item/clothing/head/welding/fancy - allowed_roles = list("Chief Engineer","Station Engineer","Atmospheric Technician","Research Director","Roboticist") /datum/gear/head/welding/engie display_name = "welding, engie (engineering/robotics)" path = /obj/item/clothing/head/welding/engie - allowed_roles = list("Chief Engineer","Station Engineer","Atmospheric Technician","Research Director","Roboticist") /*/datum/gear/head/beret/sol display_name = "beret sol, selection" diff --git a/code/modules/client/preference_setup/loadout/loadout_shoes.dm b/code/modules/client/preference_setup/loadout/loadout_shoes.dm index d3ad2b05d8f..7d5b7f860ec 100644 --- a/code/modules/client/preference_setup/loadout/loadout_shoes.dm +++ b/code/modules/client/preference_setup/loadout/loadout_shoes.dm @@ -191,7 +191,6 @@ /datum/gear/shoes/boots/winter/science display_name = "science winter boots" path = /obj/item/clothing/shoes/boots/winter/science - allowed_roles = list("Research Director","Scientist", "Roboticist", "Xenobiologist") /datum/gear/shoes/boots/winter/command display_name = "colony director's winter boots" @@ -201,32 +200,26 @@ /datum/gear/shoes/boots/winter/engineering display_name = "engineering winter boots" path = /obj/item/clothing/shoes/boots/winter/engineering - allowed_roles = list("Chief Engineer","Atmospheric Technician", "Station Engineer") /datum/gear/shoes/boots/winter/atmos display_name = "atmospherics winter boots" path = /obj/item/clothing/shoes/boots/winter/atmos - allowed_roles = list("Chief Engineer", "Atmospheric Technician") /datum/gear/shoes/boots/winter/medical display_name = "medical winter boots" path = /obj/item/clothing/shoes/boots/winter/medical - allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist", "Psychiatrist") /datum/gear/shoes/boots/winter/mining display_name = "mining winter boots" path = /obj/item/clothing/shoes/boots/winter/mining - allowed_roles = list("Shaft Miner") /datum/gear/shoes/boots/winter/supply display_name = "supply winter boots" path = /obj/item/clothing/shoes/boots/winter/supply - allowed_roles = list("Quartermaster","Cargo Technician") /datum/gear/shoes/boots/winter/hydro display_name = "hydroponics winter boots" path = /obj/item/clothing/shoes/boots/winter/hydro - allowed_roles = list("Botanist", "Xenobiologist") /datum/gear/shoes/circuitry display_name = "boots, circuitry (empty)" diff --git a/code/modules/client/preference_setup/loadout/loadout_suit.dm b/code/modules/client/preference_setup/loadout/loadout_suit.dm index 0470d85566b..2dbdcde1d3f 100644 --- a/code/modules/client/preference_setup/loadout/loadout_suit.dm +++ b/code/modules/client/preference_setup/loadout/loadout_suit.dm @@ -331,37 +331,30 @@ datum/gear/suit/duster /datum/gear/suit/wintercoat/medical display_name = "winter coat, medical" path = /obj/item/clothing/suit/storage/hooded/wintercoat/medical - allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist", "Psychiatrist") /datum/gear/suit/wintercoat/science display_name = "winter coat, science" path = /obj/item/clothing/suit/storage/hooded/wintercoat/science - allowed_roles = list("Research Director","Scientist", "Roboticist", "Xenobiologist") /datum/gear/suit/wintercoat/engineering display_name = "winter coat, engineering" path = /obj/item/clothing/suit/storage/hooded/wintercoat/engineering - allowed_roles = list("Chief Engineer","Atmospheric Technician", "Station Engineer") /datum/gear/suit/wintercoat/atmos display_name = "winter coat, atmospherics" path = /obj/item/clothing/suit/storage/hooded/wintercoat/engineering/atmos - allowed_roles = list("Chief Engineer", "Atmospheric Technician") /datum/gear/suit/wintercoat/hydro display_name = "winter coat, hydroponics" path = /obj/item/clothing/suit/storage/hooded/wintercoat/hydro - allowed_roles = list("Botanist", "Xenobiologist") /datum/gear/suit/wintercoat/cargo display_name = "winter coat, cargo" path = /obj/item/clothing/suit/storage/hooded/wintercoat/cargo - allowed_roles = list("Quartermaster","Cargo Technician") /datum/gear/suit/wintercoat/miner display_name = "winter coat, mining" path = /obj/item/clothing/suit/storage/hooded/wintercoat/miner - allowed_roles = list("Shaft Miner") /datum/gear/suit/varsity display_name = "varsity jacket selection" diff --git a/code/modules/client/preference_setup/loadout/loadout_uniform.dm b/code/modules/client/preference_setup/loadout/loadout_uniform.dm index 8b1e1772b4e..868145b33f5 100644 --- a/code/modules/client/preference_setup/loadout/loadout_uniform.dm +++ b/code/modules/client/preference_setup/loadout/loadout_uniform.dm @@ -422,14 +422,12 @@ path = /obj/item/clothing/under/focal /datum/gear/uniform/mbill - display_name = "outfit, major bill's (Cargo)" + display_name = "outfit, major bill's" path = /obj/item/clothing/under/mbill - allowed_roles = list("Quartermaster","Cargo Technician") /datum/gear/uniform/pcrc display_name = "uniform, PCRC (Security)" path = /obj/item/clothing/under/pcrc - cost = 2 allowed_roles = list("Security Officer","Head of Security","Warden") /datum/gear/uniform/brandsuit/grayson diff --git a/code/modules/client/preference_setup/vore/07_traits.dm b/code/modules/client/preference_setup/vore/07_traits.dm index 4276a41163e..fe87d35fbe5 100644 --- a/code/modules/client/preference_setup/vore/07_traits.dm +++ b/code/modules/client/preference_setup/vore/07_traits.dm @@ -87,13 +87,14 @@ var/S = pref.custom_base ? pref.custom_base : "Human" var/datum/species/custom/new_CS = CS.produceCopy(S, pref.pos_traits + pref.neu_traits + pref.neg_traits, character) - //Statistics for this would be nice - var/english_traits = english_list(new_CS.traits, and_text = ";", comma_text = ";") - log_game("TRAITS [pref.client_ckey]/([character]) with: [english_traits]") //Terrible 'fake' key_name()... but they aren't in the same entity yet - //Any additional non-trait settings can be applied here new_CS.blood_color = pref.blood_color + if(pref.species == SPECIES_CUSTOM) + //Statistics for this would be nice + var/english_traits = english_list(new_CS.traits, and_text = ";", comma_text = ";") + log_game("TRAITS [pref.client_ckey]/([character]) with: [english_traits]") //Terrible 'fake' key_name()... but they aren't in the same entity yet + /datum/category_item/player_setup_item/vore/traits/content(var/mob/user) . += "Custom Species " . += "[pref.custom_species ? pref.custom_species : "-Input Name-"]
" diff --git a/code/modules/clothing/spacesuits/rig/modules/modules.dm b/code/modules/clothing/spacesuits/rig/modules/modules.dm index 108738be9ed..0e0e366d82b 100644 --- a/code/modules/clothing/spacesuits/rig/modules/modules.dm +++ b/code/modules/clothing/spacesuits/rig/modules/modules.dm @@ -235,6 +235,10 @@ var/obj/item/weapon/rig/R = back SetupStat(R) + else if(. && istype(belt,/obj/item/weapon/rig)) + var/obj/item/weapon/rig/R = belt + SetupStat(R) + /mob/proc/SetupStat(var/obj/item/weapon/rig/R) if(R && !R.canremove && R.installed_modules.len && statpanel("Hardsuit Modules")) var/cell_status = R.cell ? "[R.cell.charge]/[R.cell.maxcharge]" : "ERROR" diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm index 57cbaa68682..a7c32871338 100644 --- a/code/modules/clothing/spacesuits/rig/rig.dm +++ b/code/modules/clothing/spacesuits/rig/rig.dm @@ -186,7 +186,7 @@ return ..() /obj/item/weapon/rig/get_worn_icon_file(var/body_type,var/slot_name,var/default_icon,var/inhands) - if(!inhands && slot_name == slot_back_str) + if(!inhands && (slot_name == slot_back_str || slot_name == slot_belt_str)) if(icon_override) return icon_override else if(mob_icon) @@ -195,7 +195,7 @@ return ..() /obj/item/weapon/rig/proc/suit_is_deployed() - if(!istype(wearer) || src.loc != wearer || wearer.back != src) + if(!istype(wearer) || src.loc != wearer || (wearer.back != src && wearer.belt != src)) return 0 if(helm_type && !(helmet && wearer.head == helmet)) return 0 @@ -289,7 +289,7 @@ failed_to_seal = 1 break - if(!failed_to_seal && M.back == src && piece == compare_piece) + if(!failed_to_seal && (M.back == src || M.belt == src) && piece == compare_piece) if(seal_delay && !instant && !do_after(M,seal_delay,needhand=0)) failed_to_seal = 1 @@ -320,7 +320,7 @@ else failed_to_seal = 1 - if((M && !(istype(M) && M.back == src) && !istype(M,/mob/living/silicon)) || (!seal_target && !suit_is_deployed())) + if((M && !(istype(M) && (M.back == src || M.belt == src)) && !istype(M,/mob/living/silicon)) || (!seal_target && !suit_is_deployed())) failed_to_seal = 1 sealing = null @@ -413,13 +413,13 @@ return environment.temperature -/obj/item/weapon/rig/proc/attached_to_back(mob/M) +/obj/item/weapon/rig/proc/attached_to_user(mob/M) if (!ishuman(M)) return 0 var/mob/living/carbon/human/H = M - if (!H.wear_suit || H.back != src) + if (!H.wear_suit || (H.back != src && H.belt != src)) return 0 return 1 @@ -431,7 +431,7 @@ if (!ismob(loc)) return - if (!attached_to_back(loc)) //make sure the rig's not just in their hands + if (!attached_to_user(loc)) //make sure the rig's not just in their hands return if (!suit_is_deployed()) //inbuilt systems only work on the suit they're designed to work on @@ -469,7 +469,7 @@ // Run through cooling coolingProcess() - if(!istype(wearer) || loc != wearer || wearer.back != src || canremove || !cell || cell.charge <= 0) + if(!istype(wearer) || loc != wearer || (wearer.back != src && wearer.belt != src) || canremove || !cell || cell.charge <= 0) if(!cell || cell.charge <= 0) if(electrified > 0) electrified = 0 @@ -522,7 +522,7 @@ if(!user_is_ai) var/mob/living/carbon/human/H = user - if(istype(H) && H.back != src) + if(istype(H) && (H.back != src && H.belt != src)) fail_msg = "You must be wearing \the [src] to do this." else if(user.incorporeal_move) fail_msg = "You must be solid to do this." @@ -658,7 +658,7 @@ return 1 if(malfunction_check(user)) return 0 - if(user.back != src) + if(user.back != src && user.belt != src) return 0 else if(!src.allowed(user)) user << "Unauthorized user. Access denied." @@ -717,16 +717,24 @@ /obj/item/weapon/rig/equipped(mob/living/carbon/human/M) ..() - if(seal_delay > 0 && istype(M) && M.back == src) + if(istype(M.back, /obj/item/weapon/rig) && istype(M.belt, /obj/item/weapon/rig)) + to_chat(M, "You try to put on the [src], but it won't fit.") + if(M && (M.back == src || M.belt == src)) + if(!M.unEquip(src)) + return + src.forceMove(get_turf(src)) + return + + if(seal_delay > 0 && istype(M) && (M.back == src || M.belt == src)) M.visible_message("[M] starts putting on \the [src]...", "You start putting on \the [src]...") if(!do_after(M,seal_delay)) - if(M && M.back == src) + if(M && (M.back == src || M.belt == src)) if(!M.unEquip(src)) return src.forceMove(get_turf(src)) return - if(istype(M) && M.back == src) + if(istype(M) && (M.back == src || M.belt == src)) M.visible_message("[M] struggles into \the [src].", "You struggle into \the [src].") wearer = M wearer.wearing_rig = src @@ -737,7 +745,7 @@ if(sealing || !cell || !cell.charge) return - if(!istype(wearer) || !wearer.back == src) + if(!istype(wearer) || (!wearer.back == src && !wearer.belt == src)) return if(usr == wearer && (usr.stat||usr.paralysis||usr.stunned)) // If the usr isn't wearing the suit it's probably an AI. @@ -806,7 +814,7 @@ if(!H || !istype(H)) return - if(H.back != src) + if(H.back != src && H.belt != src) return if(sealed) @@ -950,7 +958,7 @@ if(offline || !cell || !cell.charge || locked_down) if(user) user << "Your host rig is unpowered and unresponsive." return 0 - if(!wearer || wearer.back != src) + if(!wearer || (wearer.back != src && wearer.belt != src)) if(user) user << "Your host rig is not being worn." return 0 if(!wearer.stat && !control_overridden && !ai_override_enabled) @@ -1051,7 +1059,12 @@ return src /mob/living/carbon/human/get_rig() - return back + if(istype(back, /obj/item/weapon/rig)) + return back + else if(istype(belt, /obj/item/weapon/rig)) + return belt + else + return null //Boot animation screen objects /obj/screen/rig_booting diff --git a/code/modules/clothing/spacesuits/rig/rig_attackby.dm b/code/modules/clothing/spacesuits/rig/rig_attackby.dm index 39b23827d86..3d5fc130047 100644 --- a/code/modules/clothing/spacesuits/rig/rig_attackby.dm +++ b/code/modules/clothing/spacesuits/rig/rig_attackby.dm @@ -66,7 +66,7 @@ else if(istype(W,/obj/item/rig_module)) if(istype(src.loc,/mob/living/carbon/human)) var/mob/living/carbon/human/H = src.loc - if(H.back == src) + if(H.back == src || H.belt == src) to_chat(user, "You can't install a hardsuit module while the suit is being worn.") return 1 @@ -128,7 +128,7 @@ if(istype(src.loc,/mob/living/carbon/human) && to_remove != "cell") var/mob/living/carbon/human/H = src.loc - if(H.back == src) + if(H.back == src || H.belt == src) to_chat(user, "You can't remove an installed device while the hardsuit is being worn.") return diff --git a/code/modules/clothing/spacesuits/rig/rig_pieces.dm b/code/modules/clothing/spacesuits/rig/rig_pieces.dm index 158d8937889..c402b85914e 100644 --- a/code/modules/clothing/spacesuits/rig/rig_pieces.dm +++ b/code/modules/clothing/spacesuits/rig/rig_pieces.dm @@ -97,7 +97,7 @@ return 0 var/mob/living/carbon/human/H = loc - if(!istype(H) || !H.back) + if(!istype(H) || (!H.back && !H.belt)) return 0 var/obj/item/weapon/rig/suit = H.back diff --git a/code/modules/clothing/spacesuits/rig/rig_verbs.dm b/code/modules/clothing/spacesuits/rig/rig_verbs.dm index 09db9b03252..fc0b8bee43b 100644 --- a/code/modules/clothing/spacesuits/rig/rig_verbs.dm +++ b/code/modules/clothing/spacesuits/rig/rig_verbs.dm @@ -6,7 +6,7 @@ set category = "Hardsuit" set src = usr.contents - if(wearer && wearer.back == src) + if(wearer && (wearer.back == src || wearer.belt == src)) ui_interact(usr) /obj/item/weapon/rig/verb/toggle_vision() @@ -16,7 +16,7 @@ set category = "Hardsuit" set src = usr.contents - if(!istype(wearer) || !wearer.back == src) + if(!istype(wearer) || (!wearer.back == src && !wearer.belt == src)) usr << "The hardsuit is not being worn." return @@ -46,7 +46,7 @@ set category = "Hardsuit" set src = usr.contents - if(!istype(wearer) || !wearer.back == src) + if(!istype(wearer) || (!wearer.back == src && !wearer.belt == src)) usr << "The hardsuit is not being worn." return @@ -74,7 +74,7 @@ set category = "Hardsuit" set src = usr.contents - if(!istype(wearer) || !wearer.back == src) + if(!istype(wearer) || (!wearer.back == src && !wearer.belt == src)) usr << "The hardsuit is not being worn." return @@ -90,7 +90,7 @@ set category = "Hardsuit" set src = usr.contents - if(!istype(wearer) || !wearer.back == src) + if(!istype(wearer) || (!wearer.back == src && !wearer.belt == src)) usr << "The hardsuit is not being worn." return @@ -106,7 +106,7 @@ set category = "Hardsuit" set src = usr.contents - if(!istype(wearer) || !wearer.back == src) + if(!istype(wearer) || (!wearer.back == src && !wearer.belt == src)) usr << "The hardsuit is not being worn." return @@ -125,7 +125,7 @@ set category = "Hardsuit" set src = usr.contents - if(!istype(wearer) || !wearer.back == src) + if(!istype(wearer) || (!wearer.back == src && !wearer.belt == src)) usr << "The hardsuit is not being worn." return @@ -178,7 +178,7 @@ usr << "The suit is not active." return - if(!istype(wearer) || !wearer.back == src) + if(!istype(wearer) || (!wearer.back == src && !wearer.belt == src)) usr << "The hardsuit is not being worn." return @@ -197,7 +197,7 @@ if(malfunction_check(usr)) return - + if(!check_power_cost(usr, 0, 0, 0, 0)) return @@ -205,7 +205,7 @@ usr << "The suit is not active." return - if(!istype(wearer) || !wearer.back == src) + if(!istype(wearer) || (!wearer.back == src && !wearer.belt == src)) usr << "The hardsuit is not being worn." return @@ -241,7 +241,7 @@ usr << "The suit is not active." return - if(!istype(wearer) || !wearer.back == src) + if(!istype(wearer) || (!wearer.back == src && !wearer.belt == src)) usr << "The hardsuit is not being worn." return @@ -276,7 +276,7 @@ usr << "The suit is not active." return - if(!istype(wearer) || !wearer.back == src) + if(!istype(wearer) || (!wearer.back == src && !wearer.belt == src)) usr << "The hardsuit is not being worn." return diff --git a/code/modules/clothing/suits/hooded.dm b/code/modules/clothing/suits/hooded.dm index 5c861da38d9..14bb843c9a8 100644 --- a/code/modules/clothing/suits/hooded.dm +++ b/code/modules/clothing/suits/hooded.dm @@ -96,7 +96,8 @@ min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) hoodtype = /obj/item/clothing/head/hood/winter - allowed = list (/obj/item/weapon/pen, /obj/item/weapon/paper, /obj/item/device/flashlight,/obj/item/weapon/tank/emergency/oxygen, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/storage/box/matches, /obj/item/weapon/reagent_containers/food/drinks/flask) + allowed = list (/obj/item/weapon/pen, /obj/item/weapon/paper, /obj/item/device/flashlight,/obj/item/weapon/tank/emergency/oxygen, /obj/item/weapon/storage/fancy/cigarettes, + /obj/item/weapon/storage/box/matches, /obj/item/weapon/reagent_containers/food/drinks/flask, /obj/item/device/suit_cooling_unit) /obj/item/clothing/suit/storage/hooded/wintercoat/captain name = "colony director's winter coat" @@ -104,6 +105,10 @@ item_state_slots = list(slot_r_hand_str = "coatcaptain", slot_l_hand_str = "coatcaptain") armor = list(melee = 20, bullet = 15, laser = 20, energy = 10, bomb = 15, bio = 0, rad = 0) hoodtype = /obj/item/clothing/head/hood/winter/captain + allowed = list (/obj/item/weapon/pen, /obj/item/weapon/paper, /obj/item/device/flashlight,/obj/item/weapon/tank/emergency/oxygen, /obj/item/weapon/storage/fancy/cigarettes, + /obj/item/weapon/storage/box/matches, /obj/item/weapon/reagent_containers/food/drinks/flask, /obj/item/device/suit_cooling_unit, /obj/item/weapon/gun/energy, + /obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton, + /obj/item/weapon/handcuffs,/obj/item/clothing/head/helmet) /obj/item/clothing/suit/storage/hooded/wintercoat/security name = "security winter coat" @@ -111,6 +116,10 @@ item_state_slots = list(slot_r_hand_str = "coatsecurity", slot_l_hand_str = "coatsecurity") armor = list(melee = 25, bullet = 20, laser = 20, energy = 15, bomb = 20, bio = 0, rad = 0) hoodtype = /obj/item/clothing/head/hood/winter/security + allowed = list (/obj/item/weapon/pen, /obj/item/weapon/paper, /obj/item/device/flashlight,/obj/item/weapon/tank/emergency/oxygen, /obj/item/weapon/storage/fancy/cigarettes, + /obj/item/weapon/storage/box/matches, /obj/item/weapon/reagent_containers/food/drinks/flask, /obj/item/device/suit_cooling_unit, /obj/item/weapon/gun/energy, + /obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton, + /obj/item/weapon/handcuffs,/obj/item/clothing/head/helmet) /obj/item/clothing/suit/storage/hooded/wintercoat/medical name = "medical winter coat" @@ -118,6 +127,11 @@ item_state_slots = list(slot_r_hand_str = "coatmedical", slot_l_hand_str = "coatmedical") armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0) hoodtype = /obj/item/clothing/head/hood/winter/medical + allowed = list (/obj/item/weapon/pen, /obj/item/weapon/paper, /obj/item/device/flashlight,/obj/item/weapon/tank/emergency/oxygen, /obj/item/weapon/storage/fancy/cigarettes, + /obj/item/weapon/storage/box/matches, /obj/item/weapon/reagent_containers/food/drinks/flask, /obj/item/device/suit_cooling_unit, /obj/item/device/analyzer,/obj/item/stack/medical, + /obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray, + /obj/item/device/healthanalyzer,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker, + /obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle) /obj/item/clothing/suit/storage/hooded/wintercoat/science name = "science winter coat" @@ -125,6 +139,11 @@ item_state_slots = list(slot_r_hand_str = "coatscience", slot_l_hand_str = "coatscience") armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0) hoodtype = /obj/item/clothing/head/hood/winter/science + allowed = list (/obj/item/weapon/pen, /obj/item/weapon/paper, /obj/item/device/flashlight,/obj/item/weapon/tank/emergency/oxygen, /obj/item/weapon/storage/fancy/cigarettes, + /obj/item/weapon/storage/box/matches, /obj/item/weapon/reagent_containers/food/drinks/flask, /obj/item/device/suit_cooling_unit, /obj/item/device/analyzer,/obj/item/stack/medical, + /obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray, + /obj/item/device/healthanalyzer,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker, + /obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle) /obj/item/clothing/suit/storage/hooded/wintercoat/engineering name = "engineering winter coat" @@ -132,6 +151,10 @@ item_state_slots = list(slot_r_hand_str = "coatengineer", slot_l_hand_str = "coatengineer") armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 20) hoodtype = /obj/item/clothing/head/hood/winter/engineering + allowed = list (/obj/item/weapon/pen, /obj/item/weapon/paper, /obj/item/device/flashlight,/obj/item/weapon/tank/emergency/oxygen, /obj/item/weapon/storage/fancy/cigarettes, + /obj/item/weapon/storage/box/matches, /obj/item/weapon/reagent_containers/food/drinks/flask, /obj/item/device/suit_cooling_unit, /obj/item/device/analyzer, /obj/item/device/flashlight, + /obj/item/device/multitool, /obj/item/device/pipe_painter, /obj/item/device/radio, /obj/item/device/t_scanner, /obj/item/weapon/tool/crowbar, /obj/item/weapon/tool/screwdriver, + /obj/item/weapon/weldingtool, /obj/item/weapon/tool/wirecutters, /obj/item/weapon/tool/wrench, /obj/item/weapon/tank/emergency/oxygen, /obj/item/clothing/mask/gas, /obj/item/taperoll/engineering) /obj/item/clothing/suit/storage/hooded/wintercoat/engineering/atmos name = "atmospherics winter coat" @@ -144,6 +167,9 @@ icon_state = "coathydro" item_state_slots = list(slot_r_hand_str = "coathydro", slot_l_hand_str = "coathydro") hoodtype = /obj/item/clothing/head/hood/winter/hydro + allowed = list (/obj/item/weapon/pen, /obj/item/weapon/paper, /obj/item/device/flashlight,/obj/item/weapon/tank/emergency/oxygen, /obj/item/weapon/storage/fancy/cigarettes, + /obj/item/weapon/storage/box/matches, /obj/item/weapon/reagent_containers/food/drinks/flask, /obj/item/device/suit_cooling_unit, /obj/item/weapon/reagent_containers/spray/plantbgone, + /obj/item/device/analyzer/plant_analyzer, /obj/item/seeds, /obj/item/weapon/reagent_containers/glass/bottle, /obj/item/weapon/material/minihoe) /obj/item/clothing/suit/storage/hooded/wintercoat/cargo name = "cargo winter coat" @@ -157,6 +183,8 @@ item_state_slots = list(slot_r_hand_str = "coatminer", slot_l_hand_str = "coatminer") armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) hoodtype = /obj/item/clothing/head/hood/winter/miner + allowed = list (/obj/item/weapon/pen, /obj/item/weapon/paper, /obj/item/device/flashlight, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/storage/box/matches, + /obj/item/weapon/reagent_containers/food/drinks/flask, /obj/item/device/suit_cooling_unit, /obj/item/weapon/tank, /obj/item/device/radio, /obj/item/weapon/pickaxe, /obj/item/weapon/storage/bag/ore) /obj/item/clothing/suit/storage/hooded/explorer name = "explorer suit" diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 559649e90f0..a51e04b5359 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -82,6 +82,8 @@ This saves us from having to call add_fingerprint() any time something is put in if(slot_tie) return 1 +/obj/item/var/suitlink = 1 //makes belt items require a jumpsuit- set individual items to suitlink = 0 to allow wearing on belt slot without suit + /mob/living/carbon/human/u_equip(obj/W as obj) if(!W) return 0 @@ -98,7 +100,7 @@ This saves us from having to call add_fingerprint() any time something is put in drop_from_inventory(l_store) if (wear_id) drop_from_inventory(wear_id) - if (belt) + if (belt && belt.suitlink == 1) worn_clothing -= belt drop_from_inventory(belt) worn_clothing -= w_uniform diff --git a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm index 1857e59bcdd..cdc6f46165d 100644 --- a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm @@ -66,6 +66,7 @@ base_color = "#333333" blood_color = "#14AD8B" + reagent_tag = IS_CHIMERA /datum/species/xenochimera/handle_environment_special(var/mob/living/carbon/human/H) //If they're KO'd/dead, they're probably not thinking a lot about much of anything. diff --git a/code/modules/mob/living/carbon/human/species/station/station_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_vr.dm index b9a5d85e9dd..33ae79dea78 100644 --- a/code/modules/mob/living/carbon/human/species/station/station_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/station_vr.dm @@ -37,8 +37,6 @@ flesh_color = "#AFA59E" base_color = "#777777" - reagent_tag = IS_SERGAL - heat_discomfort_strings = list( "Your fur prickles in the heat.", "You feel uncomfortably warm.", @@ -99,8 +97,6 @@ base_color = "#777777" blood_color = "#1D2CBF" - reagent_tag = IS_AKULA - /datum/species/akula/can_breathe_water() return TRUE // Surprise, SHERKS. @@ -140,8 +136,6 @@ flesh_color = "#AFA59E" base_color = "#333333" - reagent_tag = IS_SERGAL - heat_discomfort_strings = list( "Your fur prickles in the heat.", "You feel uncomfortably warm.", @@ -320,8 +314,8 @@ color_mult = 1 min_age = 18 gluttonous = 0 //Moving this here so I don't have to fix this conflict every time polaris glances at station.dm - inherent_verbs = list(/mob/living/proc/shred_limb, /mob/living/carbon/human/proc/lick_wounds) - heat_discomfort_level = 294 //Prevents heat discomfort spam at 20c + inherent_verbs = list(/mob/living/proc/shred_limb) + heat_discomfort_level = 295 //Prevents heat discomfort spam at 20c /datum/species/skrell spawn_flags = SPECIES_CAN_JOIN diff --git a/code/modules/mob/new_player/sprite_accessories_vr.dm b/code/modules/mob/new_player/sprite_accessories_vr.dm index 262275fdeae..e00e06ea52f 100644 --- a/code/modules/mob/new_player/sprite_accessories_vr.dm +++ b/code/modules/mob/new_player/sprite_accessories_vr.dm @@ -209,6 +209,31 @@ icon_state = "hair_messy" species_allowed = list(SPECIES_TAJ, SPECIES_XENOCHIMERA, SPECIES_PROTEAN) + taj_ears_curls + name = "Tajaran Curly" + icon_state = "hair_curly" + species_allowed = list(SPECIES_TAJ, SPECIES_XENOCHIMERA, SPECIES_PROTEAN) + + taj_ears_wife + name = "Tajaran Housewife" + icon_state = "hair_wife" + species_allowed = list(SPECIES_TAJ, SPECIES_XENOCHIMERA, SPECIES_PROTEAN) + + taj_ears_victory + name = "Tajaran Victory Curls" + icon_state = "hair_victory" + species_allowed = list(SPECIES_TAJ, SPECIES_XENOCHIMERA, SPECIES_PROTEAN) + + taj_ears_bob + name = "Tajaran Bob" + icon_state = "hair_tbob" + species_allowed = list(SPECIES_TAJ, SPECIES_XENOCHIMERA, SPECIES_PROTEAN) + + taj_ears_fingercurl + name = "Tajaran Finger Curls" + icon_state = "hair_fingerwave" + species_allowed = list(SPECIES_TAJ, SPECIES_XENOCHIMERA, SPECIES_PROTEAN) + teshari_fluffymohawk name = "Teshari Fluffy Mohawk" icon = 'icons/mob/human_face_vr.dmi' diff --git a/code/modules/planet/sif.dm b/code/modules/planet/sif.dm index a9c6d7570a2..3ee2fdd9769 100644 --- a/code/modules/planet/sif.dm +++ b/code/modules/planet/sif.dm @@ -564,5 +564,3 @@ var/datum/planet/sif/planet_sif = null return if(T.outdoors) radiation_repository.radiate(T, rand(fallout_rad_low, fallout_rad_high)) ->>>>>>> 5fb77b3... Merge pull request #5791 from Neerti/looping_sounds ->>>>>>> Adds Various Sounds, Looping Sound System diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm index 30f09aaf024..6528826ac73 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm @@ -34,19 +34,16 @@ data -= taste /datum/reagent/nutriment/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) - /* VOREStation Removal - if(!injectable && alien != IS_SLIME) + if(!injectable && alien != IS_SLIME && alien != IS_CHIMERA) //VOREStation Edit M.adjustToxLoss(0.1 * removed) return - affect_ingest(M, alien, removed) - */ //VOREStation Removal End - if(injectable) //vorestation addition/replacement - affect_ingest(M, alien, removed) + affect_ingest(M, alien, removed) /datum/reagent/nutriment/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) switch(alien) if(IS_DIONA) return if(IS_UNATHI) removed *= 0.5 + if(IS_CHIMERA) removed *= 0.25 //VOREStation Edit if(issmall(M)) removed *= 2 // Small bodymass, more effect from lower volume. M.heal_organ_damage(0.5 * removed, 0) if(M.species.gets_food_nutrition) //VOREStation edit. If this is set to 0, they don't get nutrition from food. @@ -77,6 +74,10 @@ return if(IS_UNATHI) ..(M, alien, removed*2.25) //Unathi get most of their nutrition from meat. + //VOREStation Edit Start + if(IS_CHIMERA) + ..(M, alien, removed*4) //Xenochimera are obligate carnivores. + //VOREStation Edit End ..() /datum/reagent/nutriment/protein/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) diff --git a/code/modules/research/designs/weapons.dm b/code/modules/research/designs/weapons.dm index 6f5bf1e7b49..d696b14b29a 100644 --- a/code/modules/research/designs/weapons.dm +++ b/code/modules/research/designs/weapons.dm @@ -164,6 +164,7 @@ build_path = /obj/item/weapon/gun/energy/taser/xeno sort_string = "TBAAC" +/* //VOREStation Edit // Phase Weapons /datum/design/item/weapon/phase_pistol id = "phasepistol" @@ -192,3 +193,4 @@ materials = list(DEFAULT_WALL_MATERIAL = 10000, "glass" = 2000, "silver" = 1000, "diamond" = 750) build_path = /obj/item/weapon/gun/energy/phasegun/cannon sort_string = "TPAAD" +*/ \ No newline at end of file diff --git a/code/modules/surgery/other.dm b/code/modules/surgery/other.dm index 56c6731b9a3..782074b2ad8 100644 --- a/code/modules/surgery/other.dm +++ b/code/modules/surgery/other.dm @@ -201,21 +201,28 @@ var/obj/item/weapon/weldingtool/welder = tool if(!welder.isOn() || !welder.remove_fuel(1,user)) return 0 - return (target_zone == BP_TORSO) && istype(target.back, /obj/item/weapon/rig) && !(target.back.canremove) + return (target_zone == BP_TORSO) && ((istype(target.back, /obj/item/weapon/rig) && !(target.back.canremove)) || (istype(target.belt, /obj/item/weapon/rig) && !(target.belt.canremove))) /datum/surgery_step/hardsuit/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) - user.visible_message("[user] starts cutting through the support systems of [target]'s [target.back] with \the [tool]." , \ - "You start cutting through the support systems of [target]'s [target.back] with \the [tool].") + var/obj/item/weapon/rig/rig = target.back + if(!istype(rig)) + rig = target.belt + if(!istype(rig)) + return + user.visible_message("[user] starts cutting through the support systems of \the [rig] on [target] with \the [tool]." , \ + "You start cutting through the support systems of \the [rig] on [target] with \the [tool].") ..() /datum/surgery_step/hardsuit/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/weapon/rig/rig = target.back if(!istype(rig)) - return + rig = target.belt + if(!istype(rig)) + return rig.reset() - user.visible_message("[user] has cut through the support systems of [target]'s [rig] with \the [tool].", \ - "You have cut through the support systems of [target]'s [rig] with \the [tool].") + user.visible_message("[user] has cut through the support systems of \the [rig] on [target] with \the [tool].", \ + "You have cut through the support systems of \the [rig] on [target] with \the [tool].") /datum/surgery_step/hardsuit/fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) user.visible_message("[user]'s [tool] can't quite seem to get through the metal...", \ - "Your [tool] can't quite seem to get through the metal. It's weakening, though - try again.") + "\The [tool] can't quite seem to get through the metal. It's weakening, though - try again.") diff --git a/html/changelogs/mistyLuminescence - beltrigs.yml b/html/changelogs/mistyLuminescence - beltrigs.yml new file mode 100644 index 00000000000..702a9dd6d2e --- /dev/null +++ b/html/changelogs/mistyLuminescence - beltrigs.yml @@ -0,0 +1,36 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: mistyLuminescence + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Lays the foundation for RIGs to be worn on the belt slot. Doesn't apply to any RIGs currently, unless VV'd, but stay tuned!" diff --git a/html/changelogs/mistyLuminescence - loadoutroles.yml b/html/changelogs/mistyLuminescence - loadoutroles.yml new file mode 100644 index 00000000000..6bffb499f9d --- /dev/null +++ b/html/changelogs/mistyLuminescence - loadoutroles.yml @@ -0,0 +1,36 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: mistyLuminescence + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - tweak: "More jobs can now take certain items in the loadout." diff --git a/html/changelogs/mistyLuminescence - wintercoats.yml b/html/changelogs/mistyLuminescence - wintercoats.yml new file mode 100644 index 00000000000..c4d86eb1e83 --- /dev/null +++ b/html/changelogs/mistyLuminescence - wintercoats.yml @@ -0,0 +1,36 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: N3X15 + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - tweak: "Departmental winter coats can now hold the same items as their standard departmental suit items - labcoats, hazard vests, body armor, aprons, etc." diff --git a/maps/southern_cross/items/clothing/sc_suit.dm b/maps/southern_cross/items/clothing/sc_suit.dm index e4487c177e6..204db3afd19 100644 --- a/maps/southern_cross/items/clothing/sc_suit.dm +++ b/maps/southern_cross/items/clothing/sc_suit.dm @@ -21,4 +21,9 @@ item_icons = list(slot_wear_suit_str = 'maps/southern_cross/icons/mob/sc_suit.dmi') icon = 'maps/southern_cross/icons/obj/sc_suit.dmi' armor = list(melee = 15, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 5) - valid_accessory_slots = (ACCESSORY_SLOT_INSIGNIA) \ No newline at end of file + valid_accessory_slots = (ACCESSORY_SLOT_INSIGNIA) + allowed = list (/obj/item/weapon/gun,/obj/item/weapon/pen, /obj/item/weapon/paper, /obj/item/device/flashlight,/obj/item/weapon/tank/emergency/oxygen, /obj/item/weapon/storage/fancy/cigarettes, + /obj/item/weapon/storage/box/matches, /obj/item/weapon/reagent_containers/food/drinks/flask, /obj/item/device/suit_cooling_unit, /obj/item/device/analyzer,/obj/item/stack/medical, + /obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray, + /obj/item/device/healthanalyzer,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker, + /obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle) \ No newline at end of file diff --git a/maps/tether/submaps/beach/_beach.dm b/maps/tether/submaps/beach/_beach.dm index 8336c6b23ad..eb2e8c56338 100644 --- a/maps/tether/submaps/beach/_beach.dm +++ b/maps/tether/submaps/beach/_beach.dm @@ -95,7 +95,7 @@ prob_fall = 25 //Chance goes down by this much each time it spawns one (not defining and prob_spawn 100 means they spawn as soon as one dies) guard = 40 //They'll stay within this range (not defining this disables them staying nearby and they will wander the map (and through step teleports)) mobs_to_pick_from = list( - /mob/living/simple_mob/vore/giant_snake + /mob/living/simple_mob/animal/space/snake ) /obj/tether_away_spawner/beach_outside_friendly @@ -164,6 +164,7 @@ //Not going to do sunlight simulations here like virgo3b //So we just make the whole beach fullbright all the time dynamic_lighting = 0 + requires_power = 0 /area/tether_away/beach/powershed name = "\improper Away Mission - Virgo 4 Coast PS" diff --git a/maps/tether/tether-05-station1.dmm b/maps/tether/tether-05-station1.dmm index 8ee0c1b9eac..a5685c6d392 100644 --- a/maps/tether/tether-05-station1.dmm +++ b/maps/tether/tether-05-station1.dmm @@ -3130,7 +3130,6 @@ /turf/simulated/floor/tiled/steel_grid, /area/engineering/engine_monitoring) "afT" = ( -/obj/structure/table/woodentable, /obj/effect/floor_decal/borderfloor{ dir = 4 }, @@ -3138,7 +3137,7 @@ icon_state = "bordercolor"; dir = 4 }, -/obj/item/device/camera, +/obj/machinery/chemical_analyzer, /turf/simulated/floor/tiled, /area/tether/station/explorer_meeting) "afU" = ( @@ -21923,6 +21922,7 @@ /obj/effect/floor_decal/borderfloor, /obj/effect/floor_decal/corner/purple/border, /obj/item/weapon/paper_bin, +/obj/item/device/camera, /turf/simulated/floor/tiled, /area/tether/station/explorer_meeting) "jDS" = ( diff --git a/maps/tether/tether_shuttles.dm b/maps/tether/tether_shuttles.dm index 00dc6442e71..c13de89ec69 100644 --- a/maps/tether/tether_shuttles.dm +++ b/maps/tether/tether_shuttles.dm @@ -63,6 +63,7 @@ // // The backup tether shuttle uses experimental engines and can degrade and/or crash! // +/* //Disabling the crash mechanics per request /datum/shuttle/ferry/tether_backup crash_message = "Tether shuttle distress signal received. Shuttle location is approximately 200 meters from tether base." category = /datum/shuttle/ferry/tether_backup // So shuttle_controller.dm doesn't try and instantiate this type as an acutal mapped in shuttle. @@ -166,7 +167,7 @@ wear = 20 update_icon() return 1 - +*/ //////////////////////////////////////// //////// Excursion Shuttle ///////////// //////////////////////////////////////// diff --git a/maps/tether/tether_virgo3b.dm b/maps/tether/tether_virgo3b.dm index 51b811d4879..7f9f2f12dab 100644 --- a/maps/tether/tether_virgo3b.dm +++ b/maps/tether/tether_virgo3b.dm @@ -114,7 +114,10 @@ var/datum/planet/virgo3b/planet_virgo3b = null WEATHER_RAIN = new /datum/weather/virgo3b/rain(), WEATHER_STORM = new /datum/weather/virgo3b/storm(), WEATHER_HAIL = new /datum/weather/virgo3b/hail(), - WEATHER_BLOOD_MOON = new /datum/weather/virgo3b/blood_moon() + WEATHER_BLOOD_MOON = new /datum/weather/virgo3b/blood_moon(), + WEATHER_EMBERFALL = new /datum/weather/virgo3b/emberfall(), + WEATHER_ASH_STORM = new /datum/weather/virgo3b/ash_storm(), + WEATHER_FALLOUT = new /datum/weather/virgo3b/fallout() ) roundstart_weather_chances = list( WEATHER_CLEAR = 30, @@ -201,6 +204,8 @@ var/datum/planet/virgo3b/planet_virgo3b = null "It's starting to snow.", "The air feels much colder as snowflakes fall from above." ) + outdoor_sounds_type = /datum/looping_sound/weather/outside_snow + indoor_sounds_type = /datum/looping_sound/weather/inside_snow /datum/weather/virgo3b/snow/process_effects() ..() @@ -230,6 +235,8 @@ var/datum/planet/virgo3b/planet_virgo3b = null "Strong winds howl around you as a blizzard appears.", "It starts snowing heavily, and it feels extremly cold now." ) + outdoor_sounds_type = /datum/looping_sound/weather/outside_blizzard + indoor_sounds_type = /datum/looping_sound/weather/inside_blizzard /datum/weather/virgo3b/blizzard/process_effects() ..() @@ -436,3 +443,106 @@ var/datum/planet/virgo3b/planet_virgo3b = null transition_messages = list( "The sky turns blood red!" ) + outdoor_sounds_type = /datum/looping_sound/weather/wind + indoor_sounds_type = /datum/looping_sound/weather/wind/indoors + +// Ash and embers fall forever, such as from a volcano or something. +/datum/weather/virgo3b/emberfall + name = "emberfall" + icon_state = "ashfall_light" + light_modifier = 0.7 + light_color = "#880000" + temp_high = 293.15 // 20c + temp_low = 283.15 // 10c + flight_failure_modifier = 20 + transition_chances = list( + WEATHER_EMBERFALL = 100 + ) + observed_message = "Soot, ash, and embers float down from above." + transition_messages = list( + "Gentle embers waft down around you like grotesque snow." + ) + outdoor_sounds_type = /datum/looping_sound/weather/wind + indoor_sounds_type = /datum/looping_sound/weather/wind/indoors + +// Like the above but a lot more harmful. +/datum/weather/virgo3b/ash_storm + name = "ash storm" + icon_state = "ashfall_heavy" + light_modifier = 0.1 + light_color = "#FF0000" + temp_high = 323.15 // 50c + temp_low = 313.15 // 40c + flight_failure_modifier = 50 + transition_chances = list( + WEATHER_ASH_STORM = 100 + ) + observed_message = "All that can be seen is black smoldering ash." + transition_messages = list( + "Smoldering clouds of scorching ash billow down around you!" + ) + // Lets recycle. + outdoor_sounds_type = /datum/looping_sound/weather/outside_blizzard + indoor_sounds_type = /datum/looping_sound/weather/inside_blizzard + +/datum/weather/virgo3b/ash_storm/process_effects() + ..() + for(var/thing in living_mob_list) + var/mob/living/L = thing + if(L.z in holder.our_planet.expected_z_levels) + var/turf/T = get_turf(L) + if(!T.outdoors) + continue // They're indoors, so no need to burn them with ash. + + L.inflict_heat_damage(rand(1, 3)) + + +// Totally radical. +/datum/weather/virgo3b/fallout + name = "fallout" + icon_state = "fallout" + light_modifier = 0.7 + light_color = "#CCFFCC" + flight_failure_modifier = 30 + transition_chances = list( + WEATHER_FALLOUT = 100 + ) + observed_message = "Radioactive soot and ash rains down from the heavens." + transition_messages = list( + "Radioactive soot and ash start to float down around you, contaminating whatever they touch." + ) + outdoor_sounds_type = /datum/looping_sound/weather/wind + indoor_sounds_type = /datum/looping_sound/weather/wind/indoors + + // How much radiation a mob gets while on an outside tile. + var/direct_rad_low = RAD_LEVEL_LOW + var/direct_rad_high = RAD_LEVEL_MODERATE + + // How much radiation is bursted onto a random tile near a mob. + var/fallout_rad_low = RAD_LEVEL_HIGH + var/fallout_rad_high = RAD_LEVEL_VERY_HIGH + +/datum/weather/virgo3b/fallout/process_effects() + ..() + for(var/thing in living_mob_list) + var/mob/living/L = thing + if(L.z in holder.our_planet.expected_z_levels) + irradiate_nearby_turf(L) + var/turf/T = get_turf(L) + if(!T.outdoors) + continue // They're indoors, so no need to irradiate them with fallout. + + L.rad_act(rand(direct_rad_low, direct_rad_high)) + +// This makes random tiles near people radioactive for awhile. +// Tiles far away from people are left alone, for performance. +/datum/weather/virgo3b/fallout/proc/irradiate_nearby_turf(mob/living/L) + if(!istype(L)) + return + var/list/turfs = RANGE_TURFS(world.view, L) + var/turf/T = pick(turfs) // We get one try per tick. + if(!istype(T)) + return + if(T.outdoors) + radiation_repository.radiate(T, rand(fallout_rad_low, fallout_rad_high)) +