diff --git a/_maps/shuttles/roumain/srm_glaive.dmm b/_maps/shuttles/roumain/srm_glaive.dmm index 6ac9e480222e..8b5cb2a3fdc8 100644 --- a/_maps/shuttles/roumain/srm_glaive.dmm +++ b/_maps/shuttles/roumain/srm_glaive.dmm @@ -208,9 +208,7 @@ /obj/structure/flora/ausbushes/brflowers, /obj/structure/flora/ausbushes/sparsegrass, /obj/item/book/manual/trickwines_4_brewers, -/turf/open/floor/grass{ - icon_state = "junglegrass" - }, +/turf/open/floor/grass/ship/jungle, /area/ship/roumain) "cJ" = ( /obj/structure/cable/orange{ @@ -255,6 +253,7 @@ "ds" = ( /obj/structure/flora/ausbushes/sparsegrass, /obj/structure/flora/ausbushes/brflowers, +/obj/item/reagent_containers/food/drinks/breakawayflask, /turf/open/floor/grass/ship/jungle, /area/ship/roumain) "dt" = ( @@ -726,15 +725,7 @@ /area/ship/engineering/engine) "jG" = ( /obj/structure/flora/ausbushes/ppflowers, -/obj/structure/flora/tree/jungle{ - icon_state = "churchtree"; - icon = 'icons/obj/flora/chapeltree.dmi'; - randomize_icon = 0; - pixel_x = -16; - pixel_y = 0; - desc = "A sturdy oak tree imported directly from the homeworld of the Montagne who runs the ship it resides on. It is planted in soil from the same place."; - name = "Montagne's Oak" - }, +/obj/structure/flora/tree/srm, /turf/open/floor/grass/ship/jungle, /area/ship/roumain) "ko" = ( @@ -753,6 +744,12 @@ }, /turf/open/floor/wood/maple, /area/ship/construction) +"lb" = ( +/obj/structure/flora/ausbushes/brflowers, +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/fermenting_barrel, +/turf/open/floor/grass/ship/jungle, +/area/ship/roumain) "lf" = ( /obj/structure/cable/orange{ icon_state = "2-8" @@ -1680,7 +1677,7 @@ /area/ship/medical) "At" = ( /obj/effect/decal/cleanable/dirt/dust, -/obj/item/reagent_containers/food/drinks/drinkingglass/breakawayflask/vintageash, +/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/ashwine, /turf/open/floor/plating{ icon_state = "greenerdirt" }, @@ -1776,7 +1773,7 @@ /obj/structure/railing{ dir = 1 }, -/obj/item/reagent_containers/food/drinks/drinkingglass/breakawayflask/vintageash, +/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/ashwine, /turf/open/floor/ship/dirt/dark, /area/ship/roumain) "BB" = ( @@ -2106,6 +2103,7 @@ name = "Body Holofield Switch"; id = "glaive_body_holo" }, +/obj/structure/fermenting_barrel, /turf/open/floor/grass/ship/jungle, /area/ship/roumain) "FA" = ( @@ -2889,8 +2887,10 @@ /turf/open/floor/plating, /area/ship/engineering) "Sl" = ( -/obj/structure/fermenting_barrel, -/turf/open/floor/ship/dirt/dark, +/obj/structure/flora/ausbushes/brflowers, +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/fermenting_barrel/distiller, +/turf/open/floor/grass/ship/jungle, /area/ship/roumain) "Sx" = ( /obj/structure/window/reinforced/spawner{ @@ -3951,8 +3951,8 @@ Lk cz YP ds -aM -aM +lb +Sl Fu wp wp @@ -4177,7 +4177,7 @@ ZE MZ qN NL -Sl +NL NL NL NL diff --git a/_maps/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm b/_maps/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm index d6b4fcd4a79a..a1b9eb028e72 100644 --- a/_maps/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm +++ b/_maps/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm @@ -892,12 +892,25 @@ /obj/effect/landmark/observer_start, /turf/open/floor/plasteel/white, /area/ship/hallway/central) +"tV" = ( +/obj/machinery/porta_turret/ship/syndicate/weak{ + dir = 4; + pixel_x = 8 + }, +/turf/closed/wall/mineral/plastitanium, +/area/ship/bridge) "uq" = ( /obj/effect/turf_decal/spline/fancy/opaque/syndiered{ dir = 10 }, /turf/open/floor/plasteel/dark, /area/ship/bridge) +"uR" = ( +/obj/machinery/porta_turret/ship/syndicate/weak{ + dir = 9 + }, +/turf/closed/wall/mineral/plastitanium, +/area/ship/bridge) "vk" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 @@ -1125,6 +1138,12 @@ }, /turf/open/floor/plasteel/tech/techmaint, /area/ship/cargo) +"Ah" = ( +/obj/machinery/porta_turret/ship/syndicate/weak{ + dir = 6 + }, +/turf/closed/wall/mineral/plastitanium, +/area/ship/bridge) "AM" = ( /obj/effect/turf_decal/trimline/opaque/syndiered/filled/warning, /obj/effect/turf_decal/trimline/opaque/syndiered/filled/warning{ @@ -1176,7 +1195,9 @@ /turf/open/floor/plasteel/tech/grid, /area/ship/crew/dorm) "CR" = ( -/obj/machinery/porta_turret/ship, +/obj/machinery/porta_turret/ship/syndicate/weak{ + dir = 10 + }, /turf/closed/wall/mineral/plastitanium, /area/ship/bridge) "CU" = ( @@ -1293,7 +1314,11 @@ /turf/open/floor/plasteel/tech/grid, /area/ship/bridge) "GV" = ( -/obj/machinery/porta_turret/ship/weak, +/obj/machinery/porta_turret/ship/syndicate/weak{ + dir = 4; + pixel_x = 8; + pixel_y = 4 + }, /turf/closed/wall/mineral/plastitanium, /area/ship/bridge) "Hd" = ( @@ -1396,6 +1421,12 @@ }, /turf/open/floor/plasteel/dark, /area/ship/bridge) +"KA" = ( +/obj/machinery/porta_turret/ship/syndicate/weak{ + dir = 5 + }, +/turf/closed/wall/mineral/plastitanium, +/area/ship/bridge) "KP" = ( /obj/structure/closet/wall{ name = "emergency rum cabinet"; @@ -1966,7 +1997,7 @@ /area/ship/engineering) (1,1,1) = {" -CR +uR YQ YQ ru @@ -2069,7 +2100,7 @@ nO "} (7,1,1) = {" YQ -CR +KA kM kM kM @@ -2081,7 +2112,7 @@ cZ jj jj jj -CR +Ah YQ "} (8,1,1) = {" @@ -2276,7 +2307,7 @@ YQ YQ YQ YQ -GV +tV bO bO dA diff --git a/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm b/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm index 5d1d70d59fec..3dce772a1d1f 100644 --- a/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm +++ b/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm @@ -1693,6 +1693,12 @@ /obj/machinery/porta_turret/ship/ballistic, /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/bridge) +"BR" = ( +/obj/machinery/porta_turret/ship/syndicate{ + dir = 1 + }, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/ship/bridge) "BZ" = ( /obj/structure/window/reinforced/tinted/frosted, /obj/machinery/suit_storage_unit/inherit{ @@ -2336,6 +2342,10 @@ }, /turf/open/floor/carpet/red_gold, /area/ship/bridge) +"NA" = ( +/obj/machinery/porta_turret/ship/syndicate, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/ship/bridge) "NF" = ( /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/cargo) @@ -2500,7 +2510,9 @@ /turf/open/floor/plasteel/mono/dark, /area/ship/cargo) "Qz" = ( -/obj/machinery/porta_turret/ship/ballistic, +/obj/machinery/porta_turret/ship/syndicate{ + dir = 6 + }, /turf/closed/wall/mineral/plastitanium, /area/ship/bridge) "QW" = ( @@ -2876,6 +2888,12 @@ }, /turf/open/floor/carpet/red_gold, /area/ship/bridge) +"Up" = ( +/obj/machinery/porta_turret/ship/syndicate/heavy{ + dir = 4 + }, +/turf/closed/wall/mineral/plastitanium, +/area/ship/bridge) "UI" = ( /obj/structure/cable{ icon_state = "4-8" @@ -2886,6 +2904,12 @@ }, /turf/open/floor/plasteel/dark, /area/ship/crew) +"UN" = ( +/obj/machinery/porta_turret/ship/syndicate{ + dir = 1 + }, +/turf/closed/wall/mineral/plastitanium, +/area/ship/bridge) "UX" = ( /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/crew) @@ -3311,7 +3335,7 @@ sE "} (2,1,1) = {" nn -BG +BR ir PL SP @@ -3328,7 +3352,7 @@ sE nX dU pi -BG +NA "} (3,1,1) = {" nn @@ -3578,13 +3602,13 @@ UX GV GV GV -BG +NA nn Zb "} (15,1,1) = {" nn -Qz +UN cs cs XU @@ -3836,13 +3860,13 @@ mL "} (27,1,1) = {" nn -Qz +Up Ap Jv oQ VC Ap -Qz +Up nn nn nn diff --git a/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm b/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm index 2ec2677dde07..9859de87adf7 100644 --- a/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm +++ b/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm @@ -460,6 +460,12 @@ }, /turf/open/floor/plasteel/dark, /area/ship/bridge) +"ea" = ( +/obj/machinery/porta_turret/ship/syndicate/heavy{ + dir = 6 + }, +/turf/closed/wall/mineral/plastitanium, +/area/ship/bridge) "em" = ( /obj/machinery/light/directional/north, /obj/effect/turf_decal/industrial/warning{ @@ -1771,6 +1777,12 @@ }, /turf/open/floor/plasteel/tech, /area/ship/engineering) +"rh" = ( +/obj/machinery/porta_turret/ship/syndicate/heavy{ + dir = 10 + }, +/turf/closed/wall/mineral/plastitanium, +/area/ship/bridge) "rj" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/industrial/fire{ @@ -1858,7 +1870,7 @@ /turf/open/floor/mineral/plastitanium/red, /area/ship/hallway/central) "rS" = ( -/obj/machinery/porta_turret/ship/ballistic{ +/obj/machinery/porta_turret/ship/syndicate/heavy{ dir = 5 }, /turf/closed/wall/mineral/plastitanium, @@ -1965,7 +1977,7 @@ /turf/open/floor/plasteel/dark, /area/ship/bridge) "td" = ( -/obj/machinery/porta_turret/ship/ballistic{ +/obj/machinery/porta_turret/ship/syndicate/heavy{ dir = 9 }, /turf/closed/wall/mineral/plastitanium, @@ -2483,6 +2495,12 @@ }, /turf/open/floor/mineral/plastitanium/red, /area/ship/hallway/central) +"yw" = ( +/obj/machinery/porta_turret/ship/syndicate{ + dir = 8 + }, +/turf/closed/wall/mineral/plastitanium, +/area/ship/bridge) "yJ" = ( /obj/structure/frame/machine, /obj/structure/grille/broken, @@ -3321,7 +3339,7 @@ /turf/open/floor/plating, /area/ship/maintenance/port) "FY" = ( -/obj/machinery/porta_turret/ship/ballistic{ +/obj/machinery/porta_turret/ship/syndicate{ dir = 4 }, /turf/closed/wall/mineral/plastitanium, @@ -4231,7 +4249,7 @@ /turf/open/floor/mineral/plastitanium/red, /area/ship/hallway/central) "OP" = ( -/obj/machinery/porta_turret/ship/ballistic{ +/obj/machinery/porta_turret/ship/syndicate{ dir = 10 }, /turf/closed/wall/mineral/plastitanium, @@ -4440,7 +4458,7 @@ /turf/open/floor/pod/dark, /area/ship/medical) "Rp" = ( -/obj/machinery/porta_turret/ship/ballistic{ +/obj/machinery/porta_turret/ship/syndicate{ dir = 6 }, /turf/closed/wall/mineral/plastitanium, @@ -5174,7 +5192,7 @@ /turf/open/floor/mineral/plastitanium, /area/ship/medical) "XE" = ( -/obj/machinery/porta_turret/ship/ballistic{ +/obj/machinery/porta_turret/ship/syndicate/heavy{ dir = 8 }, /turf/closed/wall/mineral/plastitanium, @@ -5431,7 +5449,7 @@ gN gN gN gN -OP +rh CM CM CM @@ -5484,7 +5502,7 @@ Aj Aj ti ti -XE +yw lu lu Ep @@ -6135,7 +6153,7 @@ OQ OQ OQ OQ -Rp +ea CM CM CM diff --git a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm index 6390f43501cd..9200c091f618 100644 --- a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm +++ b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm @@ -2033,9 +2033,8 @@ /turf/open/floor/engine, /area/ship/engineering/engine) "ms" = ( -/obj/machinery/porta_turret/syndicate/energy{ - dir = 9; - faction = list("PlayerSyndicate") +/obj/machinery/porta_turret/ship/syndicate/heavy{ + dir = 9 }, /turf/closed/wall/r_wall/syndicate/nodiagonal{ rad_insulation = 0 @@ -3434,9 +3433,8 @@ /turf/open/floor/plating, /area/ship/engineering/atmospherics) "vd" = ( -/obj/machinery/porta_turret/syndicate/energy{ - dir = 5; - faction = list("PlayerSyndicate") +/obj/machinery/porta_turret/ship/syndicate/heavy{ + dir = 5 }, /turf/closed/wall/r_wall/syndicate/nodiagonal{ rad_insulation = 0 @@ -6469,9 +6467,8 @@ /turf/open/floor/engine, /area/ship/engineering/engine) "Mr" = ( -/obj/machinery/porta_turret/syndicate/energy{ - dir = 6; - faction = list("PlayerSyndicate") +/obj/machinery/porta_turret/ship/syndicate/heavy{ + dir = 6 }, /turf/closed/wall/r_wall/syndicate/nodiagonal{ rad_insulation = 0 @@ -8074,9 +8071,8 @@ }, /area/ship/crew/cryo) "We" = ( -/obj/machinery/porta_turret/syndicate/energy{ - dir = 10; - faction = list("PlayerSyndicate") +/obj/machinery/porta_turret/ship/syndicate/heavy{ + dir = 10 }, /turf/closed/wall/r_wall/syndicate/nodiagonal{ rad_insulation = 0 diff --git a/code/__DEFINES/reagents.dm b/code/__DEFINES/reagents.dm index 8e2f1e52758d..c66d3f34c1ad 100644 --- a/code/__DEFINES/reagents.dm +++ b/code/__DEFINES/reagents.dm @@ -22,7 +22,7 @@ #define VAPOR 3 // foam, spray, blob attack #define PATCH 4 // patches #define INJECT 5 // injection - +#define SMOKE 6 //smoking //defines passed through to the on_reagent_change proc #define DEL_REAGENT 1 // reagent deleted (fully cleared) diff --git a/code/__DEFINES/say.dm b/code/__DEFINES/say.dm index b349387832ea..a470b9087b2e 100644 --- a/code/__DEFINES/say.dm +++ b/code/__DEFINES/say.dm @@ -71,10 +71,7 @@ #define SPAN_COMMAND "command_headset" #define SPAN_CLOWN "clown" #define SPAN_SINGING "singing" - -//WS Spans - Begin #define SPAN_SGA "sga" -//WS Spans - End //bitflag #defines for return value of the radio() proc. #define ITALICS (1<<0) diff --git a/code/_onclick/hud/radial.dm b/code/_onclick/hud/radial.dm index ff65665f95c1..6bc47aa6bcb8 100644 --- a/code/_onclick/hud/radial.dm +++ b/code/_onclick/hud/radial.dm @@ -62,9 +62,18 @@ GLOBAL_LIST_EMPTY(radial_menus) parent.finished = TRUE /datum/radial_menu - var/list/choices = list() //List of choice id's - var/list/choices_icons = list() //choice_id -> icon - var/list/choices_values = list() //choice_id -> choice + /// List of choice IDs + var/list/choices = list() + + /// choice_id -> icon + var/list/choices_icons = list() + + /// choice_id -> choice + var/list/choices_values = list() + + /// choice_id -> /datum/radial_menu_choice + var/list/choice_datums = list() + var/list/page_data = list() //list of choices per page @@ -199,6 +208,7 @@ GLOBAL_LIST_EMPTY(radial_menus) E.alpha = 255 E.mouse_opacity = MOUSE_OPACITY_ICON E.cut_overlays() + E.vis_contents.Cut() if(choice_id == NEXT_PAGE_ID) E.name = "Next Page" E.next_page = TRUE @@ -245,11 +255,17 @@ GLOBAL_LIST_EMPTY(radial_menus) var/I = extract_image(new_choices[E]) if(I) choices_icons[id] = I + if (istype(new_choices[E], /datum/radial_menu_choice)) + choice_datums[id] = new_choices[E] setup_menu(use_tooltips) -/datum/radial_menu/proc/extract_image(E) - var/mutable_appearance/MA = new /mutable_appearance(E) +/datum/radial_menu/proc/extract_image(to_extract_from) + if (istype(to_extract_from, /datum/radial_menu_choice)) + var/datum/radial_menu_choice/choice = to_extract_from + to_extract_from = choice.image + + var/mutable_appearance/MA = new /mutable_appearance(to_extract_from) if(MA) MA.layer = ABOVE_HUD_LAYER MA.appearance_flags |= RESET_TRANSFORM @@ -332,3 +348,15 @@ GLOBAL_LIST_EMPTY(radial_menus) if(!custom_check.Invoke()) return return answer + +/// Can be provided to choices in radial menus if you want to provide more information +/datum/radial_menu_choice + /// Required -- what to display for this button + var/image + + /// If provided, will display an info button that will put this text in your chat + var/info + +/datum/radial_menu_choice/Destroy(force, ...) + . = ..() + QDEL_NULL(image) diff --git a/code/datums/components/crafting/recipes.dm b/code/datums/components/crafting/recipes.dm index 96a013df406a..fed83f681242 100644 --- a/code/datums/components/crafting/recipes.dm +++ b/code/datums/components/crafting/recipes.dm @@ -1164,9 +1164,23 @@ /datum/crafting_recipe/breakawayflask name = "Breakaway Flask" - result = /obj/item/reagent_containers/food/drinks/drinkingglass/breakawayflask + result = /obj/item/reagent_containers/food/drinks/breakawayflask time = 5 SECONDS reqs = list(/obj/item/stack/sheet/glass = 5, /obj/item/stack/sheet/mineral/plasma = 1) tools = list(TOOL_WELDER) category = CAT_MISC + +/datum/crafting_recipe/fermenting_barrel + name = "Wooden Barrel" + result = /obj/structure/fermenting_barrel + reqs = list(/obj/item/stack/sheet/mineral/wood = 8) + time = 50 + category = CAT_PRIMAL + +/datum/crafting_recipe/distiller + name = "Distiller" + result = /obj/structure/fermenting_barrel/distiller + reqs = list(/obj/item/stack/sheet/mineral/wood = 8, /obj/item/stack/sheet/metal = 5, /datum/reagent/srm_bacteria = 30) + time = 50 + category = CAT_PRIMAL diff --git a/code/datums/components/edit_complainer.dm b/code/datums/components/edit_complainer.dm index aaac9aed2d4d..fb69b67a5e9d 100644 --- a/code/datums/components/edit_complainer.dm +++ b/code/datums/components/edit_complainer.dm @@ -22,4 +22,4 @@ SIGNAL_HANDLER var/atom/movable/master = parent - master.say(pick(say_lines)) + master.visible_message(pick(say_lines)) diff --git a/code/game/MapData/shuttles/srm_glaive.dm b/code/game/MapData/shuttles/srm_glaive.dm index 738bebeda36b..a40e9bd426c1 100644 --- a/code/game/MapData/shuttles/srm_glaive.dm +++ b/code/game/MapData/shuttles/srm_glaive.dm @@ -91,10 +91,6 @@ ) generate_items_inside(items_inside, src) -/obj/structure/flora/tree/chapel/srm - name = "Montagne's Oak" - desc = "A sturdy oak tree imported directly from the homeworld of the Montagne who runs the ship it resides on. It is planted in soil from the same place." - /obj/item/book/manual/srmlore name = "Notes on the SRM" icon_state = "book5" diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index 693ff2af3329..75498600b007 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -839,6 +839,27 @@ DEFINE_BITFIELD(turret_flags, list( /obj/machinery/porta_turret/ship/solgov faction = list("playerSolgov", "turret") +/obj/machinery/porta_turret/ship/syndicate + faction = list(FACTION_PLAYER_SYNDICATE, "turret") + icon_state = "standard_lethal" + base_icon_state = "standard" + +/obj/machinery/porta_turret/ship/syndicate/weak + name = "Light Laser Turret" + desc = "A low powered turret designed by the Gorlex Maurauders during the ICW. Effectively weaponizes mining equipment." + stun_projectile = /obj/projectile/beam/disabler/weak + lethal_projectile = /obj/projectile/beam/weak/penetrator + icon_state = "syndie_off" + base_icon_state = "syndie" + +/obj/machinery/porta_turret/ship/syndicate/heavy + name = "Heavy Laser Turret" + desc = "Produced by Cybersun, this turret is a duel mount of a propietary heavy laser, and crowd control taser system." + stun_projectile = /obj/projectile/energy/electrode + stun_projectile_sound = 'sound/weapons/taser.ogg' + lethal_projectile = /obj/projectile/beam/laser/heavylaser + lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg' + //////////////////////// //Turret Control Panel// //////////////////////// diff --git a/code/game/objects/effects/anomalies/anomalies_static.dm b/code/game/objects/effects/anomalies/anomalies_static.dm index 07107cd5a332..205a8778d394 100644 --- a/code/game/objects/effects/anomalies/anomalies_static.dm +++ b/code/game/objects/effects/anomalies/anomalies_static.dm @@ -6,6 +6,12 @@ aSignal = /obj/item/assembly/signaler/anomaly/tvstatic effectrange = 4 pulse_delay = 4 SECONDS + verb_say = "pleads" + verb_ask = "begs" + verb_exclaim = "screams" + verb_whisper = "whimpers" + verb_yell = "screams" + speech_span = SPAN_ITALICS var/mob/living/carbon/stored_mob = null /obj/effect/anomaly/tvstatic/examine(mob/user) @@ -13,9 +19,9 @@ if(!iscarbon(user)) return if(iscarbon(user) && !user.research_scanner) //this'll probably cause some weirdness when I start using research scanner in more places / on more items. Oh well. - var/mob/living/carbon/bah = user - to_chat(bah, span_userdanger("Your head aches as you stare into the [src]!")) - bah.adjustOrganLoss(ORGAN_SLOT_BRAIN, 5, 100) + var/mob/living/carbon/victim = user + to_chat(victim, span_userdanger("Your head aches as you stare into [src]!")) + victim.adjustOrganLoss(ORGAN_SLOT_BRAIN, 5, 100) /obj/effect/anomaly/tvstatic/anomalyEffect() ..() @@ -29,11 +35,13 @@ COOLDOWN_START(src, pulse_cooldown, pulse_delay) - for(var/mob/living/carbon/looking in range(effectrange, src)) - playsound(src, 'sound/effects/walkietalkie.ogg', 100) - if (!HAS_TRAIT(looking, TRAIT_MINDSHIELD) && looking.stat != DEAD || !looking.research_scanner && looking.stat != DEAD) + for(var/mob/living/carbon/human/looking in range(effectrange, src)) + playsound(src, 'sound/effects/walkietalkie.ogg', 75) + if(stored_mob && looking.stat != DEAD && prob(25)) + say_fucky_things() + if (!HAS_TRAIT(looking, TRAIT_MINDSHIELD) && looking.stat != DEAD || !looking.research_scanner && looking.stat != DEAD || !HAS_TRAIT(looking, TRAIT_DEAF)) looking.adjustOrganLoss(ORGAN_SLOT_BRAIN, 10, 200) - playsound(src, 'sound/effects/stall.ogg', 100) + playsound(src, 'sound/effects/stall.ogg', 50) if(looking.getOrganLoss(ORGAN_SLOT_BRAIN) >= 150 && looking.stat != DEAD) if(prob(20)) var/mob/living/carbon/victim = looking @@ -49,15 +57,55 @@ /obj/effect/anomaly/tvstatic/Bumped(atom/movable/AM) anomalyEffect() +/obj/effect/anomaly/tvstatic/proc/say_fucky_things() + switch(rand(1, 13)) + if(1) + say("... Help me...") + if(2) + say("... I need to get out ...") + if(3) + say("...No hope....") + if(4) + say("....Let me loose...") + if(5) + say("...stay with me...") + if(6) + say("...I hope I live...") + if(7) + say("...please don't go...") + if(8) + say("...don't forget me...") + if(9) + say("...Are you there...?") + if(10) + say("...it hurts...") + if(11) + say("...the eyes...") + if(12) + say("...need to run...") + if(13) + say("...don't become like me...") + return + /obj/effect/anomaly/tvstatic/detonate() - for(var/mob/living/carbon/looking in range(effectrange, src)) + for(var/mob/living/carbon/human/looking in range(effectrange, src)) visible_message(" The static lashes out, agony filling your mind as its tendrils scrape your thoughts!") if (!HAS_TRAIT(looking, TRAIT_MINDSHIELD) && looking.stat != DEAD) looking.adjustOrganLoss(ORGAN_SLOT_BRAIN, 100, 200) playsound(src, 'sound/effects/stall.ogg', 100) + if(stored_mob) + mangle_corpse() + visible_message("The static sputters out [stored_mob], their body coming out in a burst of blood and gore!") + new /obj/effect/gibspawner/human(loc) + stored_mob.forceMove(get_turf(src)) + stored_mob = null anomalyEffect() . = ..() +/obj/effect/anomaly/tvstatic/proc/mangle_corpse() + if(!stored_mob) + return + stored_mob.adjustBruteLoss(400) /obj/effect/anomaly/tvstatic/anomalyNeutralize() var/turf/T = get_turf(src) @@ -73,6 +121,11 @@ immortal = TRUE immobile = TRUE +/obj/effect/anomaly/tvstatic/planetary/Initialize(mapload) + if(prob(25)) + stored_mob = /obj/effect/mob_spawn/human/corpse/damaged + . = ..() + /obj/effect/particle_effect/staticball name = "static blob" desc = "An unsettling mass of free floating static" diff --git a/code/game/objects/effects/effect_system/effects_smoke.dm b/code/game/objects/effects/effect_system/effects_smoke.dm index 29edfe40d4fd..7fc59d075356 100644 --- a/code/game/objects/effects/effect_system/effects_smoke.dm +++ b/code/game/objects/effects/effect_system/effects_smoke.dm @@ -223,9 +223,9 @@ for(var/atom/movable/AM in T) if(AM.type == src.type) continue - reagents.expose(AM, TOUCH, fraction) + reagents.expose(AM, SMOKE, fraction) - reagents.expose(T, TOUCH, fraction) + reagents.expose(T, SMOKE, fraction) return 1 /obj/effect/particle_effect/smoke/chem/smoke_mob(mob/living/carbon/M) diff --git a/code/game/objects/effects/forcefields.dm b/code/game/objects/effects/forcefields.dm index 751025e7b49c..e46d8d92e82a 100644 --- a/code/game/objects/effects/forcefields.dm +++ b/code/game/objects/effects/forcefields.dm @@ -8,8 +8,11 @@ CanAtmosPass = ATMOS_PASS_DENSITY var/timeleft = 300 //Set to 0 for permanent forcefields (ugh) -/obj/effect/forcefield/Initialize() +/obj/effect/forcefield/Initialize(mapload, new_timeleft) . = ..() + //used to change the time for forcewine + if(new_timeleft) + timeleft = new_timeleft if(timeleft) QDEL_IN(src, timeleft) @@ -36,3 +39,10 @@ name = "invisible blockade" desc = "You're gonna be here awhile." timeleft = 600 + +/obj/effect/forcefield/resin + desc = "It's rapidly decaying!" + name = "resin" + icon_state = "atmos_resin" + CanAtmosPass = ATMOS_PASS_NO + timeleft = 1 diff --git a/code/game/objects/items/manuals.dm b/code/game/objects/items/manuals.dm index c0773b2032cf..da1906143abc 100644 --- a/code/game/objects/items/manuals.dm +++ b/code/game/objects/items/manuals.dm @@ -242,7 +242,7 @@ /obj/item/book/manual/trickwines_4_brewers name = "Trickwines for brewers" icon_state = "book2" - author = "Baxter Baxter" + author = "Bridget Saint-Baskett" title = "Trickwines for brewers" dat = {"
@@ -262,7 +262,16 @@