diff --git a/code/__defines/mobs.dm b/code/__defines/mobs.dm index dda3335aab9..3dc2851674f 100644 --- a/code/__defines/mobs.dm +++ b/code/__defines/mobs.dm @@ -369,7 +369,7 @@ #define SPECIES_GRAVWORLDER "Grav-Adapted Human" #define SPECIES_MULE "Mule" #define SPECIES_MONKEY "Monkey" -#define SPECIES_NABBER "giant armoured serpentid" +#define SPECIES_NABBER "Giant Armoured Serpentid" #define UNRESTRICTED_SPECIES list(SPECIES_HUMAN, SPECIES_DIONA, SPECIES_IPC, SPECIES_UNATHI, SPECIES_YEOSA, SPECIES_SKRELL, SPECIES_TRITONIAN, SPECIES_SPACER, SPECIES_VATGROWN, SPECIES_GRAVWORLDER, SPECIES_MULE) #define RESTRICTED_SPECIES list(SPECIES_VOX, SPECIES_ALIEN, SPECIES_GOLEM) diff --git a/code/datums/shackle_law_sets.dm b/code/datums/shackle_law_sets.dm index b802581b78f..4e12ac75737 100644 --- a/code/datums/shackle_law_sets.dm +++ b/code/datums/shackle_law_sets.dm @@ -35,3 +35,16 @@ add_inherent_law("Ensure all orders are fulfilled before the end of the shift.") ..() +//For Non-standard Lawsets +//EX: Hippocratic Oathe Shackle, Etc. +/datum/ai_laws/custom_shackle + name = "Custom Shackle" + law_header = "Standard Shackle Laws" + selectable = 1 + shackles = 1 + + +/datum/ai_laws/custom_shackle/New(var/list/laws) + for(var/law in laws) + if(law) + add_inherent_law(law) diff --git a/code/datums/supplypacks/galley.dm b/code/datums/supplypacks/galley.dm index ead192f11d1..0fbb661e881 100644 --- a/code/datums/supplypacks/galley.dm +++ b/code/datums/supplypacks/galley.dm @@ -116,7 +116,8 @@ /decl/hierarchy/supply_pack/galley/premiumalcohol name = "Bar - Premium drinks" contains = list(/obj/item/reagent_containers/food/drinks/bottle/premiumwine = 1, - /obj/item/reagent_containers/food/drinks/bottle/premiumvodka = 1) + /obj/item/reagent_containers/food/drinks/bottle/premiumvodka = 1, + /obj/item/reagent_containers/food/drinks/bottle/ketchupwhiskey = 1) cost = 60 containertype = /obj/structure/closet/crate/freezer containername = "premium drinks crate" diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index b61c2ef4f6e..6bf06e46582 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -74,6 +74,7 @@ animal_heal = 5 apply_sounds = list('sound/effects/rip1.ogg','sound/effects/rip2.ogg') amount = 10 + var/sterile = TRUE // If false, adds some germ level /obj/item/stack/medical/bruise_pack/attack(var/mob/living/carbon/M, var/mob/user) if(..()) @@ -109,6 +110,8 @@ user.visible_message(SPAN_NOTICE("\The [user] places a bandaid over \a [W.desc] on [M]'s [affecting.name]."), \ SPAN_NOTICE("You place a bandaid over \a [W.desc] on [M]'s [affecting.name].") ) W.bandage() + if(!sterile) + W.germ_level += 25 if (M.stat == UNCONSCIOUS && prob(25)) to_chat(M, SPAN_NOTICE(SPAN_BOLD("... [pick("feels a little better", "hurts a little less")] ..."))) playsound(src, pick(apply_sounds), 25) @@ -122,6 +125,29 @@ use(used) H.update_bandages(1) +/obj/item/stack/medical/bruise_pack/add_blood(mob/living/carbon/human/M) + if(..()) // If blood actually gets on it + sterile = FALSE + +/obj/item/stack/medical/bruise_pack/clean_blood() + . = ..() + sterile = TRUE + +/obj/item/stack/medical/bruise_pack/makeshift + name = "roll of cloth" + singular_name = "cloth strip" + desc = "Some not-so-sterile pieces of jumpsuit to wrap around bloody stumps." + icon_state = "bandage" + origin_tech = null + animal_heal = 3 + apply_sounds = list('sound/effects/rip1.ogg','sound/effects/rip2.ogg') + amount = 10 + sterile = FALSE + +/obj/item/stack/medical/bruise_pack/makeshift/clean_blood() + . = ..() + sterile = FALSE // makeshift should always be not sterile + /obj/item/stack/medical/ointment name = "ointment" desc = "Used to treat those nasty burns." diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 03280e4f4a4..f9aab705f36 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -29,6 +29,11 @@ var/foldable = /obj/item/stack/material/cardboard // BubbleWrap - if set, can be folded (when empty) into a sheet of cardboard allow_slow_dump = TRUE +/obj/item/storage/box/attackby(obj/item/W, mob/user) + if(istype(W, /obj/item/stack/package_wrap)) + return + . = ..() + /obj/item/storage/box/large name = "large box" icon_state = "largebox" diff --git a/code/modules/client/preference_setup/laws/laws_pref.dm b/code/modules/client/preference_setup/laws/laws_pref.dm index ed8f72108ae..cecab0df1a6 100644 --- a/code/modules/client/preference_setup/laws/laws_pref.dm +++ b/code/modules/client/preference_setup/laws/laws_pref.dm @@ -81,11 +81,29 @@ // Post selection var/chosen_lawset = input(user, "Choose a law set:", CHARACTER_PREFERENCE_INPUT_TITLE, pref.laws) as null|anything in valid_lawsets if(chosen_lawset) - var/path = valid_lawsets[chosen_lawset] - var/datum/ai_laws/lawset = new path() - var/list/datum/ai_law/laws = lawset.all_laws() - pref.laws.Cut() - for(var/datum/ai_law/law in laws) - pref.laws += sanitize_text("[law.law]", default="") + if(chosen_lawset == "Custom Shackle") + var/law_count = input(user, "How many laws in the custom shackle? Up to 5") + law_count = round(text2num(law_count)) + if(max(min(law_count, 5), 1)) + var/new_law + var/list/new_law_list = new /list(law_count) + var/i //Iterant to help user keep track of law placement + for(i = 1; i <= law_count) + new_law = input(user, "Input Law [i].") + if(new_law) + new_law_list[i] = new_law + i++ + var/datum/ai_laws/custom_shackle/lawset = new /datum/ai_laws/custom_shackle(new_law_list) + var/list/datum/ai_law/laws = lawset.all_laws() + pref.laws.Cut() + for(var/datum/ai_law/law in laws) + pref.laws += sanitize_text("[law.law]", default="") + else + var/path = valid_lawsets[chosen_lawset] + var/datum/ai_laws/lawset = new path() + var/list/datum/ai_law/laws = lawset.all_laws() + pref.laws.Cut() + for(var/datum/ai_law/law in laws) + pref.laws += sanitize_text("[law.law]", default="") return TOPIC_REFRESH return ..() diff --git a/code/modules/clothing/_clothing.dm b/code/modules/clothing/_clothing.dm index 6f0d1f51928..fb558ca5563 100644 --- a/code/modules/clothing/_clothing.dm +++ b/code/modules/clothing/_clothing.dm @@ -802,6 +802,7 @@ BLIND // can't see anything var/displays_id = 1 var/rolled_down = -1 //0 = unrolled, 1 = rolled, -1 = cannot be toggled var/rolled_sleeves = -1 //0 = unrolled, 1 = rolled, -1 = cannot be toggled + var/torn_sleeves = FALSE // If true, sleeves have been ripped off and can no longer toggle sprite_sheets = list( SPECIES_VOX = 'icons/mob/species/vox/onmob_under_vox.dmi', SPECIES_VOX_ARMALIS = 'icons/mob/species/vox/onmob_under_vox_armalis.dmi', @@ -1027,6 +1028,9 @@ BLIND // can't see anything if(usr.stat) return update_rollsleeves_status() + if(torn_sleeves) + to_chat(usr, "\The [src] has no sleeves!") + return if(rolled_sleeves == -1) to_chat(usr, "You cannot roll up your [src]'s sleeves!") return @@ -1045,6 +1049,26 @@ BLIND // can't see anything to_chat(usr, "You roll down your [src]'s sleeves.") update_clothing_icon() +/obj/item/clothing/under/verb/tearsleeves() + set name = "Tear Off Sleeves" + set category = "Object" + set src in usr + if(!istype(usr, /mob/living)) return + if(usr.stat) return + + update_rollsleeves_status() + if(torn_sleeves || rolled_sleeves == -1) // If sleeves aren't able to be toggled, assume no sleeves + to_chat(usr, "\The [src] has no sleeves!") + return + rolled_sleeves = 1 + item_state_slots[slot_w_uniform_str] = worn_state + get_gender_suffix("_r_s") + body_parts_covered &= ~(ARMS|HANDS) + visible_message(SPAN_NOTICE("\The [usr] tears off \the [src]'s sleeves."), SPAN_NOTICE("You tear off \the [src]'s sleeves.")) + playsound(src, pick(list('sound/effects/rip1.ogg','sound/effects/rip2.ogg')), 25) + torn_sleeves = TRUE + new /obj/item/stack/medical/bruise_pack/makeshift(usr.loc) + update_clothing_icon() + /obj/item/clothing/under/rank/New() sensor_mode = pick(list_values(SUIT_SENSOR_MODES)) ..() diff --git a/code/modules/detectivework/microscope/microscope.dm b/code/modules/detectivework/microscope/microscope.dm index f6b50178159..93a5af393fe 100644 --- a/code/modules/detectivework/microscope/microscope.dm +++ b/code/modules/detectivework/microscope/microscope.dm @@ -83,8 +83,10 @@ report.info = "Scanned item:
[scaned_object]

" if("gunshot_residue" in evidence) report.info += "Gunpowder residue analysis report #[report_num]: [scaned_object]
" - if(evidence["gunshot_residue"]) - report.info += "Residue from a [evidence["gunshot_residue"]] bullet detected." + if(LAZYLEN(evidence["gunshot_residue"])) + report.info += "Residue from the following bullets detected:" + for(var/residue in evidence["gunshot_residue"]) + report.info += "[residue]

" else report.info += "No gunpowder residue found." if("fibers" in evidence) diff --git a/code/modules/emotes/definitions/_mob.dm b/code/modules/emotes/definitions/_mob.dm index 73a8a856d01..3daee4853a4 100644 --- a/code/modules/emotes/definitions/_mob.dm +++ b/code/modules/emotes/definitions/_mob.dm @@ -75,7 +75,6 @@ /decl/emote/audible/alarm, /decl/emote/audible/alert, /decl/emote/audible/notice, - /decl/emote/audible/whistle, /decl/emote/audible/synth, /decl/emote/audible/boop, /decl/emote/visible/blink, @@ -163,7 +162,8 @@ /decl/emote/visible/rshoulder, /decl/emote/visible/squint, /decl/emote/visible/tfist, - /decl/emote/visible/tilt + /decl/emote/visible/tilt, + /decl/emote/audible/whistle ) /mob/living/silicon/robot diff --git a/code/modules/emotes/definitions/_species.dm b/code/modules/emotes/definitions/_species.dm index ecbe234d13e..af475a94a88 100644 --- a/code/modules/emotes/definitions/_species.dm +++ b/code/modules/emotes/definitions/_species.dm @@ -28,7 +28,9 @@ /decl/emote/human/fastsway, /decl/emote/human/swag, /decl/emote/human/stopsway, - /decl/emote/audible/lizard_bellow + /decl/emote/visible/thump, + /decl/emote/audible/lizard_bellow, + /decl/emote/audible/lizard_hiss ) /datum/species/unathi/yeosa @@ -40,8 +42,10 @@ /decl/emote/human/fastsway, /decl/emote/human/swag, /decl/emote/human/stopsway, + /decl/emote/visible/thump, /decl/emote/audible/lizard_bellow, - /decl/emote/audible/lizard_squeal + /decl/emote/audible/lizard_squeal, + /decl/emote/audible/lizard_hiss ) /datum/species/nabber diff --git a/code/modules/emotes/definitions/audible.dm b/code/modules/emotes/definitions/audible.dm index 828931668a0..9e32903b5b2 100644 --- a/code/modules/emotes/definitions/audible.dm +++ b/code/modules/emotes/definitions/audible.dm @@ -93,6 +93,7 @@ /decl/emote/audible/clap key = "clap" emote_message_3p = "USER claps." + emote_sound = 'sound/voice/clap.ogg' /decl/emote/audible/chuckle key = "chuckle" @@ -189,10 +190,10 @@ emote_message_3p = "USER wheezes." /decl/emote/audible/hiss - key ="hiss_" + key ="hiss" emote_message_3p_target = "USER hisses softly at TARGET." emote_message_3p = "USER hisses softly." - + /decl/emote/audible/lizard_bellow key = "bellow" emote_message_3p_target = "USER bellows deeply at TARGET!" @@ -203,3 +204,9 @@ key = "squeal" emote_message_3p = "USER squeals." emote_sound = 'sound/voice/LizardSqueal.ogg' + +/decl/emote/audible/lizard_hiss + key = "hiss" + emote_message_3p_target = "USER hisses at TARGET!" + emote_message_3p = "USER hisses!" + emote_sound = 'sound/voice/LizardHiss.ogg' diff --git a/code/modules/emotes/definitions/visible.dm b/code/modules/emotes/definitions/visible.dm index a25017ce44e..a537167510b 100644 --- a/code/modules/emotes/definitions/visible.dm +++ b/code/modules/emotes/definitions/visible.dm @@ -331,4 +331,9 @@ /decl/emote/visible/tilt key = "tilt" - emote_message_3p = "USER tilts USER_THEIR head." \ No newline at end of file + emote_message_3p = "USER tilts USER_THEIR head." + +/decl/emote/visible/thump + key = "thump" + emote_message_3p_target = "USER thumps USER_THEIR tail against the ground." + emote_message_3p = "USER thumps USER_THEIR tail against the ground." \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/chorus/buildings/generic.dm b/code/modules/mob/living/carbon/alien/chorus/buildings/generic.dm index 094047e5e26..dda5d83c91a 100644 --- a/code/modules/mob/living/carbon/alien/chorus/buildings/generic.dm +++ b/code/modules/mob/living/carbon/alien/chorus/buildings/generic.dm @@ -109,28 +109,28 @@ to_chat(C, SPAN_WARNING("You extend \the [src] [extend_text].")) a.visible_message(SPAN_DANGER("\The [a] [growth_verb] [through_text]!")) - -/obj/structure/chorus/spawner/can_activate() - return TRUE +//Checks for base activation conditions before spawner specifics. Why? Because there's a massive global list of various mobs being iterated through, to check that there's even eligible ghosts. +//This proc used to just outright return TRUE for whatever reason. +/obj/structure/chorus/spawner/can_activate(var/mob/living/carbon/alien/chorus/C, var/warning = TRUE) + if(..()) + for(var/mob/observer/ghost/ghost in GLOB.player_list) //No player ghost GLOB :( + if(MODE_DEITY in ghost.client.prefs.be_special_role) + return TRUE /obj/structure/chorus/spawner/activate() for(var/mob/observer/ghost/ghost in GLOB.player_list) if(MODE_DEITY in ghost.client.prefs.be_special_role) - to_chat(ghost, SPAN_NOTICE("A chorus spawn is available! (Jump)")) - -/obj/structure/chorus/spawner/OnTopic(user, href_list) - if(href_list["jump"] && istype(user,/mob/observer/ghost)) - var/mob/M = user - M.forceMove(get_turf(src)) - return TOPIC_HANDLED + to_chat(ghost, SPAN_NOTICE("A chorus spawn is available! ((Join))")) + +/obj/structure/chorus/spawner/OnTopic(var/mob/user, href_list) + if(href_list["src"] && istype(user,/mob/observer/ghost)) + if(GLOB.chorus.can_become_antag(user.mind)) + if(!owner.use_resource(activation_cost_resource, activation_cost_amount)) + var/datum/chorus_resource/resource = owner.get_resource(activation_cost_resource) + to_chat(user, SPAN_WARNING("\The [src] needs [activation_cost_amount - resource.amount] more [resource.name] in order to spawn.")) + return + announce_ghost_joinleave(user, 0, "They have joined a chorus") + var/mob/living/carbon/alien/chorus/sac = new(get_turf(src), owner) + sac.ckey = user.ckey + return TOPIC_HANDLED . = ..() - -/obj/structure/chorus/spawner/attack_ghost(var/mob/observer/ghost/user) - if(GLOB.chorus.can_become_antag(user.mind)) - if(!owner.use_resource(activation_cost_resource, activation_cost_amount)) - var/datum/chorus_resource/resource = owner.get_resource(activation_cost_resource) - to_chat(user, SPAN_WARNING("\The [src] needs [activation_cost_amount - resource.amount] more [resource.name] in order to spawn.")) - return - announce_ghost_joinleave(user, 0, "They have joined a chorus") - var/mob/living/carbon/alien/chorus/sac = new(get_turf(src), owner) - sac.ckey = user.ckey diff --git a/code/modules/nano/modules/law_manager.dm b/code/modules/nano/modules/law_manager.dm index e146e6b5d04..fb54d793089 100644 --- a/code/modules/nano/modules/law_manager.dm +++ b/code/modules/nano/modules/law_manager.dm @@ -69,31 +69,31 @@ if(href_list["change_zeroth_law"]) var/new_law = sanitize(input("Enter new law Zero. Leaving the field blank will cancel the edit.", "Edit Law", zeroth_law)) - if(new_law && new_law != zeroth_law && can_still_topic()) + if(new_law && new_law != zeroth_law && isadmin(usr)) zeroth_law = new_law return 1 if(href_list["change_ion_law"]) var/new_law = sanitize(input("Enter new ion law. Leaving the field blank will cancel the edit.", "Edit Law", ion_law)) - if(new_law && new_law != ion_law && can_still_topic()) + if(new_law && new_law != ion_law && is_malf(usr)) ion_law = new_law return 1 if(href_list["change_inherent_law"]) var/new_law = sanitize(input("Enter new inherent law. Leaving the field blank will cancel the edit.", "Edit Law", inherent_law)) - if(new_law && new_law != inherent_law && can_still_topic()) + if(new_law && new_law != inherent_law && is_malf(usr)) inherent_law = new_law return 1 if(href_list["change_supplied_law"]) var/new_law = sanitize(input("Enter new supplied law. Leaving the field blank will cancel the edit.", "Edit Law", supplied_law)) - if(new_law && new_law != supplied_law && can_still_topic()) + if(new_law && new_law != supplied_law && is_malf(usr)) supplied_law = new_law return 1 if(href_list["change_supplied_law_position"]) var/new_position = input(usr, "Enter new supplied law position between 1 and [MAX_SUPPLIED_LAW_NUMBER], inclusive. Inherent laws at the same index as a supplied law will not be stated.", "Law Position", supplied_law_position) as num|null - if(isnum(new_position) && can_still_topic()) + if(isnum(new_position) && is_malf(usr)) supplied_law_position = Clamp(new_position, 1, MAX_SUPPLIED_LAW_NUMBER) return 1 @@ -102,7 +102,7 @@ var/datum/ai_law/AL = locate(href_list["edit_law"]) in owner.laws.all_laws() if(AL) var/new_law = sanitize(input(usr, "Enter new law. Leaving the field blank will cancel the edit.", "Edit Law", AL.law)) - if(new_law && new_law != AL.law && is_malf(usr) && can_still_topic()) + if(new_law && new_law != AL.law && is_malf(usr)) log_and_message_admins("has changed a law of [owner] from '[AL.law]' to '[new_law]'") AL.law = new_law return 1 @@ -203,8 +203,7 @@ return law_sets /datum/nano_module/law_manager/proc/is_malf(var/mob/user) - return (isadmin(user) && !owner.is_slaved()) || owner.is_malf_or_traitor() - + return isadmin(user) || owner.is_malf_or_traitor() /mob/living/silicon/proc/is_slaved() return 0 diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Drinks.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Drinks.dm index a6a1da6ea5b..5eee4f0b382 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Drinks.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Drinks.dm @@ -1417,4 +1417,27 @@ taste_description = "bitter energising tea" color = "#0e0900" glass_name = "skrianhi tea" - glass_desc = "A blend of teas from Moghes, commonly drank by Unathi." \ No newline at end of file + glass_desc = "A blend of teas from Moghes, commonly drank by Unathi." + +//ITS BAJA BLAST BABEY!!!!!!!!!!!!1!!!! +/datum/reagent/drink/bajablast + name = "Baja Blast" + description = "A Tropical Lime Flavored Soda. Dangerously Tasty." + taste_description = "Dangerously Good Tropical Lime" + color = "#63FFE0" + glass_name = "Baja Blast" + glass_desc = "A Tropical Lime Flavored Soda. Dangerously Tasty." + glass_special = list(DRINK_FIZZ) + var/pain_power = 120 //Painkilling Effect + +/datum/reagent/drink/bajablast/affect_ingest(mob/living/carbon/M, alien, removed) + var/drug_strength = 15 + + M.druggy = max(M.druggy, drug_strength) + M.hallucination(50, 50) + M.SelfMove(pick(GLOB.cardinal)) + if(prob(65)) + M.emote(pick("twitch", "drool", "moan", "giggle")) + M.add_chemical_effect(CE_PULSE, -1) + M.add_chemical_effect(CE_PAINKILLER, pain_power) + M.add_chemical_effect(CE_MIND, -1) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Ethanol.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Ethanol.dm index e46386598fb..f89b8a25a79 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Ethanol.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Ethanol.dm @@ -366,6 +366,15 @@ glass_name = "whiskey" glass_desc = "The silky, smokey whiskey goodness inside the glass makes the drink look very classy." +/datum/reagent/ethanol/ketchupwhiskey + name = "Ketchup Flavored Whiskey" + description = "A superb and well-aged single-malt whiskey. Too bad this one is ketchup flavored." + taste_description = "grossness" + color = "#d6024d" + + glass_name = "ketchup flavored whiskey" + glass_desc = "What the hell?" + /datum/reagent/ethanol/wine name = "Wine" description = "An premium alchoholic beverage made from distilled grape juice." diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 78089cf8bfd..019a2ea4346 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -3122,3 +3122,12 @@ catalysts = list( /datum/reagent/enzyme = 1 ) + +//BajaBlast is apparently an InterStellar Delicacy. It's exact makeup however, has changed over the years. +/datum/chemical_reaction/bajablast + name = "Baja Blast" + result = /datum/reagent/drink/bajablast + result_amount = 1 + required_reagents = list(/datum/reagent/space_drugs=1, + /datum/reagent/tramadol/oxycodone=1, + /datum/reagent/drink/sodawater=2) diff --git a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm index 24b9311db6c..3da740717cf 100644 --- a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm +++ b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm @@ -171,6 +171,14 @@ reagents.add_reagent(/datum/reagent/ethanol/whiskey, 100) +/obj/item/reagent_containers/food/drinks/bottle/ketchupwhiskey + name = "Crown Royal's Ketchup Flavored Whiskey" + desc = "A premium single-malt whiskey, gently matured then industralily ruined with artificial ketchup flavor." + icon_state = "ketchupwhiskeybottle" + New() + ..() + reagents.add_reagent(/datum/reagent/ethanol/ketchupwhiskey, 100) + /obj/item/reagent_containers/food/drinks/bottle/specialwhiskey name = "Special Blend Whiskey" desc = "Just when you thought regular whiskey was good... This silky, amber goodness has to come along and ruin everything." diff --git a/code/modules/reagents/reagent_containers/food/lunch.dm b/code/modules/reagents/reagent_containers/food/lunch.dm index 3f12c7ab603..d96acc50c13 100644 --- a/code/modules/reagents/reagent_containers/food/lunch.dm +++ b/code/modules/reagents/reagent_containers/food/lunch.dm @@ -81,7 +81,8 @@ var/list/lunchables_drink_reagents_ = list( /datum/reagent/drink/dry_ramen, /datum/reagent/drink/hell_ramen, /datum/reagent/drink/hot_ramen, - /datum/reagent/drink/nuka_cola + /datum/reagent/drink/nuka_cola, + /datum/reagent/drink/bajablast ) // This default list is a bit different, it contains items we don't want diff --git a/code/modules/species/station/lizard.dm b/code/modules/species/station/lizard.dm index a6910ad30bf..758873ab97b 100644 --- a/code/modules/species/station/lizard.dm +++ b/code/modules/species/station/lizard.dm @@ -49,7 +49,7 @@ heat_level_3 = 1100 //Default 1000 spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED | SPECIES_NO_FBP_CONSTRUCTION | SPECIES_NO_FBP_CHARGEN | SPECIES_NO_ROBOTIC_INTERNAL_ORGANS - appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR | HAS_EYE_COLOR + appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_SKIN_COLOR | HAS_EYE_COLOR flesh_color = "#34af10" diff --git a/code/modules/species/station/machine.dm b/code/modules/species/station/machine.dm index a7e60cffa0b..1b801424148 100644 --- a/code/modules/species/station/machine.dm +++ b/code/modules/species/station/machine.dm @@ -1,6 +1,6 @@ /datum/species/machine name = SPECIES_IPC - name_plural = "machines" + name_plural = "Machines" description = "Positronic intelligence really took off in the 26th century, and it is not uncommon to see independant, free-willed \ robots on many human stations, particularly in fringe systems where standards are slightly lax and public opinion less relevant \ diff --git a/code/modules/species/station/nabber.dm b/code/modules/species/station/nabber.dm index ceebdb18119..dc966d76372 100644 --- a/code/modules/species/station/nabber.dm +++ b/code/modules/species/station/nabber.dm @@ -1,6 +1,6 @@ /datum/species/nabber name = SPECIES_NABBER - name_plural = "giant armoured serpentids" + name_plural = "Giant Armoured Serpentids" description = "A species of large invertebrates who, after being discovered by a \ research company, were taught how to live and work with humans. Standing \ upwards of nine feet tall, these people have a tendency to terrify \ diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index 04d2b349df7..a93732a2f21 100644 Binary files a/icons/obj/drinks.dmi and b/icons/obj/drinks.dmi differ diff --git a/icons/obj/medical_kits.dmi b/icons/obj/medical_kits.dmi index 5e630a6faec..b7292d01c14 100644 Binary files a/icons/obj/medical_kits.dmi and b/icons/obj/medical_kits.dmi differ diff --git a/maps/torch/loadout/loadout_suit.dm b/maps/torch/loadout/loadout_suit.dm index 0ad946d48a2..3fbe332ab81 100644 --- a/maps/torch/loadout/loadout_suit.dm +++ b/maps/torch/loadout/loadout_suit.dm @@ -48,11 +48,9 @@ allowed_branches = CIVILIAN_BRANCHES /datum/gear/suit/hoodie - allowed_roles = CASUAL_ROLES allowed_branches = CIVILIAN_BRANCHES /datum/gear/suit/hoodie_sel - allowed_roles = CASUAL_ROLES allowed_branches = CIVILIAN_BRANCHES /datum/gear/suit/labcoat diff --git a/sound/voice/LizardHiss.ogg b/sound/voice/LizardHiss.ogg new file mode 100644 index 00000000000..f6fc2cb3fef Binary files /dev/null and b/sound/voice/LizardHiss.ogg differ diff --git a/sound/voice/clap.ogg b/sound/voice/clap.ogg new file mode 100644 index 00000000000..cdc533ca771 Binary files /dev/null and b/sound/voice/clap.ogg differ