diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index c616d1ee5b0..673e3663132 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -112,7 +112,7 @@ Class Procs: var/panel_open = 0 var/global/gl_uid = 1 var/interact_offline = 0 // Can the machine be interacted with while de-powered. - var/circuit = null + var/obj/item/weapon/circuitboard/circuit = null /obj/machinery/New(l, d=0) ..(l) @@ -402,7 +402,7 @@ Class Procs: if(A.frame_type.circuit) A.need_circuit = 0 - if(A.frame_type.frame_class == "machine") + if(A.frame_type.frame_class == FRAME_CLASS_MACHINE) for(var/obj/D in component_parts) D.forceMove(src.loc) if(A.components) @@ -412,15 +412,15 @@ Class Procs: component_parts = list() A.check_components() - if(A.frame_type.frame_class == "alarm") - A.state = 2 - else if(A.frame_type.frame_class == "computer" || A.frame_type.frame_class == "display") + if(A.frame_type.frame_class == FRAME_CLASS_ALARM) + A.state = FRAME_FASTENED + else if(A.frame_type.frame_class == FRAME_CLASS_COMPUTER || A.frame_type.frame_class == FRAME_CLASS_DISPLAY) if(stat & BROKEN) - A.state = 3 + A.state = FRAME_WIRED else - A.state = 4 + A.state = FRAME_PANELED else - A.state = 3 + A.state = FRAME_WIRED A.set_dir(dir) A.pixel_x = pixel_x @@ -430,4 +430,4 @@ Class Procs: M.loc = null M.deconstruct(src) qdel(src) - return 1 \ No newline at end of file + return 1 diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm index e858100e637..47fa55be1a3 100644 --- a/code/game/objects/effects/mines.dm +++ b/code/game/objects/effects/mines.dm @@ -1,6 +1,6 @@ /obj/effect/mine - name = "mine" - desc = "A small explosive mine with 'HE' and a grenade symbol on the side." + name = "land mine" //The name and description are deliberately NOT modified, so you can't game the mines you find. + desc = "A small explosive land mine." density = 0 anchored = 1 icon = 'icons/obj/weapons.dmi' @@ -21,6 +21,7 @@ s.set_up(3, 1, src) s.start() explosion(loc, 0, 2, 3, 4) //land mines are dangerous, folks. + visible_message("\The [src.name] detonates!") qdel(s) qdel(src) @@ -38,10 +39,12 @@ /obj/effect/mine/Bumped(mob/M as mob|obj) - if(triggered) return + if(triggered) + return if(istype(M, /mob/living/)) - explode(M) + if(!M.hovering) + explode(M) /obj/effect/mine/attackby(obj/item/W as obj, mob/living/user as mob) if(isscrewdriver(W)) @@ -62,8 +65,6 @@ wires.Interact(user) /obj/effect/mine/dnascramble - name = "radiation mine" - desc = "A small explosive mine with a radiation symbol on the side." mineitemtype = /obj/item/weapon/mine/dnascramble /obj/effect/mine/dnascramble/explode(var/mob/living/M) @@ -71,31 +72,31 @@ triggered = 1 s.set_up(3, 1, src) s.start() - M.radiation += 50 - randmutb(M) - domutcheck(M,null) + if(M) + M.radiation += 50 + randmutb(M) + domutcheck(M,null) + visible_message("\The [src.name] flashes violently before disintegrating!") spawn(0) qdel(s) qdel(src) /obj/effect/mine/stun - name = "stun mine" - desc = "A small explosive mine with a lightning bolt symbol on the side." mineitemtype = /obj/item/weapon/mine/stun /obj/effect/mine/stun/explode(var/mob/living/M) triggered = 1 - M.Stun(30) var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread() s.set_up(3, 1, src) s.start() + if(M) + M.Stun(30) + visible_message("\The [src.name] flashes violently before disintegrating!") spawn(0) qdel(s) qdel(src) /obj/effect/mine/n2o - name = "nitrous oxide mine" - desc = "A small explosive mine with three Z's on the side." mineitemtype = /obj/item/weapon/mine/n2o /obj/effect/mine/n2o/explode(var/mob/living/M) @@ -103,12 +104,11 @@ for (var/turf/simulated/floor/target in range(1,src)) if(!target.blocks_air) target.assume_gas("sleeping_agent", 30) + visible_message("\The [src.name] detonates!") spawn(0) qdel(src) /obj/effect/mine/phoron - name = "incendiary mine" - desc = "A small explosive mine with a fire symbol on the side." mineitemtype = /obj/item/weapon/mine/phoron /obj/effect/mine/phoron/explode(var/mob/living/M) @@ -117,12 +117,11 @@ if(!target.blocks_air) target.assume_gas("phoron", 30) target.hotspot_expose(1000, CELL_VOLUME) + visible_message("\The [src.name] detonates!") spawn(0) qdel(src) /obj/effect/mine/kick - name = "kick mine" - desc = "Concentrated war crimes. Handle with care." mineitemtype = /obj/item/weapon/mine/kick /obj/effect/mine/kick/explode(var/mob/living/M) @@ -130,14 +129,13 @@ triggered = 1 s.set_up(3, 1, src) s.start() - qdel(M.client) + if(M) + qdel(M.client) spawn(0) qdel(s) qdel(src) /obj/effect/mine/frag - name = "fragmentation mine" - desc = "A small explosive mine with 'FRAG' and a grenade symbol on the side." mineitemtype = /obj/item/weapon/mine/frag var/fragment_types = list(/obj/item/projectile/bullet/pellet/fragment) var/num_fragments = 20 //total number of fragments produced by the grenade @@ -153,13 +151,14 @@ if(!O) return src.fragmentate(O, 20, 7, list(/obj/item/projectile/bullet/pellet/fragment)) //only 20 weak fragments because you're stepping directly on it + visible_message("\The [src.name] detonates!") spawn(0) qdel(s) qdel(src) -/obj/effect/mine/training - name = "training mine" - desc = "A mine with its payload removed, for EOD training and demonstrations." +/obj/effect/mine/training //Name and Desc commented out so it's possible to trick people with the training mines +// name = "training mine" +// desc = "A mine with its payload removed, for EOD training and demonstrations." mineitemtype = /obj/item/weapon/mine/training /obj/effect/mine/training/explode(var/mob/living/M) @@ -170,56 +169,62 @@ qdel(src) /obj/effect/mine/emp - name = "EMP Mine" - desc = "A small explosive mine with a lightning bolt symbol on the side." mineitemtype = /obj/item/weapon/mine/emp /obj/effect/mine/emp/explode(var/mob/living/M) var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread() s.set_up(3, 1, src) s.start() + visible_message("\The [src.name] flashes violently before disintegrating!") empulse(loc, 2, 4, 7, 10, 1) // As strong as an EMP grenade spawn(0) qdel(src) +/obj/effect/mine/incendiary + mineitemtype = /obj/item/weapon/mine/incendiary + +/obj/effect/mine/incendiary/explode(var/mob/living/M) + triggered = 1 + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread() + s.set_up(3, 1, src) + s.start() + if(M) + M.adjust_fire_stacks(5) + M.fire_act() + visible_message("\The [src.name] bursts into flames!") + spawn(0) + qdel(src) + +///////////////////////////////////////////// +// The held item version of the above mines +///////////////////////////////////////////// /obj/item/weapon/mine name = "mine" desc = "A small explosive mine with 'HE' and a grenade symbol on the side." icon = 'icons/obj/weapons.dmi' icon_state = "uglymine" - var/arming = 0 var/countdown = 10 - var/minetype = /obj/effect/mine + var/minetype = /obj/effect/mine //This MUST be an /obj/effect/mine type, or it'll runtime. -/obj/item/weapon/mine/attack_self(mob/user as mob) - if(!arming) - to_chat(user, "You prime \the [name]! [countdown] seconds!") - icon_state = initial(icon_state) + "armed" - arming = 1 +/obj/item/weapon/mine/attack_self(mob/user as mob) // You do not want to move or throw a land mine while priming it... Explosives + Sudden Movement = Bad Times + add_fingerprint(user) + msg_admin_attack("[user.name] ([user.ckey]) primed \a [src] (JMP)") + user.visible_message("[user] starts priming \the [src.name].", "You start priming \the [src.name]. Hold still!") + if(do_after(user, 10 SECONDS)) playsound(loc, 'sound/weapons/armbomb.ogg', 75, 1, -3) - add_fingerprint(user) - if(iscarbon(user)) - var/mob/living/carbon/C = user - C.throw_mode_on() - spawn(countdown*10) - if(arming) - prime() - if(user) - msg_admin_attack("[user.name] ([user.ckey]) primed \a [src] (JMP)") - return + prime(user) else - to_chat(user, "You cancel \the [name]'s priming sequence.") - arming = 0 - countdown = initial(countdown) - icon_state = initial(icon_state) - add_fingerprint(user) + visible_message("[user] triggers \the [src.name]!", "You accidentally trigger \the [src.name]!") + prime(user, TRUE) return -/obj/item/weapon/mine/proc/prime(mob/user as mob) +/obj/item/weapon/mine/proc/prime(mob/user as mob, var/explode_now = FALSE) visible_message("\The [src.name] beeps as the priming sequence completes.") - var/atom/R = new minetype(get_turf(src)) + var/obj/effect/mine/R = new minetype(get_turf(src)) src.transfer_fingerprints_to(R) R.add_fingerprint(user) + if(explode_now) + R.explode(user) spawn(0) qdel(src) @@ -262,3 +267,8 @@ name = "emp mine" desc = "A small explosive mine with a lightning bolt symbol on the side." minetype = /obj/effect/mine/emp + +/obj/item/weapon/mine/incendiary + name = "incendiary mine" + desc = "A small explosive mine with a fire symbol on the side." + minetype = /obj/effect/mine/incendiary \ No newline at end of file diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm index 16e9daf9cc3..6c1afb2c834 100644 --- a/code/game/objects/items/robot/robot_items.dm +++ b/code/game/objects/items/robot/robot_items.dm @@ -54,6 +54,8 @@ /obj/item/borg/sight/material name = "\proper material scanner vision" sight_mode = BORGMATERIAL + icon_state = "material" + icon = 'icons/obj/clothing/glasses.dmi' /obj/item/borg/sight/hud name = "hud" diff --git a/code/game/objects/random/random.dm b/code/game/objects/random/random.dm index 18674db086d..05ba702853c 100644 --- a/code/game/objects/random/random.dm +++ b/code/game/objects/random/random.dm @@ -1123,4 +1123,18 @@ var/list/multi_point_spawns /obj/item/clothing/suit/space/void/mining/alt, /obj/item/clothing/head/helmet/space/void/mining/alt ) - ) \ No newline at end of file + ) + +/obj/random/landmine + name = "Random Land Mine" + desc = "This is a random land mine." + icon = 'icons/obj/weapons.dmi' + icon_state = "uglymine" + spawn_nothing_percentage = 25 + +/obj/random/landmine/item_to_spawn() + return pick(prob(30);/obj/effect/mine, + prob(25);/obj/effect/mine/frag, + prob(25);/obj/effect/mine/emp, + prob(10);/obj/effect/mine/stun, + prob(10);/obj/effect/mine/incendiary,) \ No newline at end of file diff --git a/code/game/objects/structures/snowman.dm b/code/game/objects/structures/snowman.dm new file mode 100644 index 00000000000..b3947621b9a --- /dev/null +++ b/code/game/objects/structures/snowman.dm @@ -0,0 +1,24 @@ +/obj/structure/snowman + name = "snowman" + icon = 'icons/obj/snowman.dmi' + icon_state = "snowman" + desc = "A happy little snowman smiles back at you!" + anchored = 1 + +/obj/structure/snowman/attack_hand(mob/user as mob) + if(user.a_intent == I_HURT) + user << "In one hit, [src] easily crumples into a pile of snow. You monster." + var/turf/simulated/floor/F = get_turf(src) + if (istype(F)) + new /obj/item/stack/material/snow(F) + qdel(src) + +/obj/structure/snowman/borg + name = "snowborg" + icon_state = "snowborg" + desc = "A snowy little robot. It even has a monitor for a head." + +/obj/structure/snowman/spider + name = "snow spider" + icon_state = "snowspider" + desc = "An impressively crafted snow spider. Not nearly as creepy as the real thing." \ No newline at end of file diff --git a/code/game/turfs/simulated/wall_types.dm b/code/game/turfs/simulated/wall_types.dm index 699125e0b30..f187a54c8f2 100644 --- a/code/game/turfs/simulated/wall_types.dm +++ b/code/game/turfs/simulated/wall_types.dm @@ -39,6 +39,8 @@ ..(newloc,"silver","gold") /turf/simulated/wall/sandstonediamond/New(var/newloc) ..(newloc,"sandstone","diamond") +/turf/simulated/wall/snowbrick/New(var/newloc) + ..(newloc,"packed snow") // Kind of wondering if this is going to bite me in the butt. /turf/simulated/wall/skipjack/New(var/newloc) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 7258b265a2d..04740237f11 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -59,7 +59,6 @@ var/list/admin_verbs_admin = list( /client/proc/check_antagonists, /client/proc/admin_memo, //admin memo system. show/delete/write. +SERVER needed to delete admin memos of others, /client/proc/dsay, //talk in deadchat using our ckey/fakekey, - /client/proc/ghost_view, //let us see ghosts WHENEVERRRR // /client/proc/toggle_hear_deadcast, //toggles whether we hear deadchat, /client/proc/investigate_show, //various admintools for investigation. Such as a singulo grief-log, /client/proc/secrets, @@ -213,7 +212,6 @@ var/list/admin_verbs_debug = list( /client/proc/jumptomob, /client/proc/jumptocoord, /client/proc/dsay, - /client/proc/ghost_view, /client/proc/toggle_debug_logs, /client/proc/admin_ghost, //allows us to ghost/reenter body at will, /datum/admins/proc/view_runtimes, @@ -326,7 +324,6 @@ var/list/admin_verbs_mod = list( /datum/admins/proc/show_player_info, /client/proc/player_panel_new, /client/proc/dsay, - /client/proc/ghost_view, /datum/admins/proc/show_skills, /datum/admins/proc/show_player_panel, /client/proc/check_antagonists, @@ -351,7 +348,6 @@ var/list/admin_verbs_event_manager = list( /client/proc/admin_ghost, /datum/admins/proc/show_player_info, /client/proc/dsay, - /client/proc/ghost_view, /client/proc/cmd_admin_subtle_message, /client/proc/debug_variables, /client/proc/check_antagonists, @@ -491,26 +487,6 @@ var/list/admin_verbs_event_manager = list( body.key = "@[key]" //Haaaaaaaack. But the people have spoken. If it breaks; blame adminbus feedback_add_details("admin_verb","O") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -/client/proc/ghost_view() - set category = "Admin" - set name = "Ghost View" - set desc = "Toggles ability to see ghosts, even while in a mob." - if(!holder) return - if(!mob.plane_holder) return - - var/choice = alert(src,"Do you want to see ghosts, or not?","Ghost viewing","Show 'em!","Cancel","Hide 'em!") - if(choice == "Cancel") - return - - if(choice == "Show 'em!" && mob.plane_holder) - mob.plane_holder.set_vis(VIS_GHOSTS,TRUE) - usr.see_invisible = SEE_INVISIBLE_CULT - to_chat(src,"Ghosts are now visible (while in this mob).") - else if(mob.plane_holder) - mob.plane_holder.set_vis(VIS_GHOSTS,FALSE) - usr.see_invisible = initial(mob.see_invisible) - to_chat(src,"Ghosts are now hidden (while in this mob).") - /client/proc/invisimin() set name = "Invisimin" set category = "Admin" @@ -1046,7 +1022,7 @@ var/list/admin_verbs_event_manager = list( set category = "Fun" set name = "Man Up" set desc = "Tells mob to man up and deal with it." - + if(alert("Are you sure you want to tell them to man up?","Confirmation","Deal with it","No")=="No") return T << "Man up and deal with it." @@ -1059,7 +1035,7 @@ var/list/admin_verbs_event_manager = list( set category = "Fun" set name = "Man Up Global" set desc = "Tells everyone to man up and deal with it." - + if(alert("Are you sure you want to tell the whole server up?","Confirmation","Deal with it","No")=="No") return for (var/mob/T as mob in mob_list) diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm index 370306539ae..ef9d0e713db 100644 --- a/code/modules/clothing/gloves/color.dm +++ b/code/modules/clothing/gloves/color.dm @@ -9,10 +9,11 @@ desc = "These gloves are cheap copies of proper insulated gloves. No way this can end badly." name = "budget insulated gloves" icon_state = "yellow" - siemens_coefficient = 1 //Set to a default of 1, gets overridden in New() + siemens_coefficient = 1 //Set to a default of 1, gets overridden in initialize() permeability_coefficient = 0.05 -/obj/item/clothing/gloves/fyellow/New() +/obj/item/clothing/gloves/fyellow/initialize() + . = ..() //Picks a value between 0 and 1, in 5% increments var/shock_pick = rand(0,20) siemens_coefficient = shock_pick * 0.05 diff --git a/code/modules/materials/material_recipes.dm b/code/modules/materials/material_recipes.dm index 6a10383f76b..bb5a4674f44 100644 --- a/code/modules/materials/material_recipes.dm +++ b/code/modules/materials/material_recipes.dm @@ -167,4 +167,19 @@ /material/snow/generate_recipes() recipes = list() - recipes += new/datum/stack_recipe("snowball", /obj/item/weapon/material/snow/snowball, 1, time = 10) \ No newline at end of file + recipes += new/datum/stack_recipe("snowball", /obj/item/weapon/material/snow/snowball, 1, time = 10) + recipes += new/datum/stack_recipe("snow brick", /obj/item/stack/material/snowbrick, 2, time = 10) + recipes += new/datum/stack_recipe("snowman", /obj/structure/snowman, 2, time = 15) + recipes += new/datum/stack_recipe("snow robot", /obj/structure/snowman/borg, 2, time = 10) + recipes += new/datum/stack_recipe("snow spider", /obj/structure/snowman/spider, 3, time = 20) + +/material/snowbrick/generate_recipes() + recipes = list() + recipes += new/datum/stack_recipe("[display_name] door", /obj/structure/simple_door, 10, one_per_turf = 1, on_floor = 1, supplied_material = "[name]") + recipes += new/datum/stack_recipe("[display_name] barricade", /obj/structure/barricade, 5, time = 50, one_per_turf = 1, on_floor = 1, supplied_material = "[name]") + recipes += new/datum/stack_recipe("[display_name] stool", /obj/item/weapon/stool, one_per_turf = 1, on_floor = 1, supplied_material = "[name]") + recipes += new/datum/stack_recipe("[display_name] chair", /obj/structure/bed/chair, one_per_turf = 1, on_floor = 1, supplied_material = "[name]") + recipes += new/datum/stack_recipe("[display_name] bed", /obj/structure/bed, 2, one_per_turf = 1, on_floor = 1, supplied_material = "[name]") + recipes += new/datum/stack_recipe("[display_name] double bed", /obj/structure/bed/double, 4, one_per_turf = 1, on_floor = 1, supplied_material = "[name]") + recipes += new/datum/stack_recipe("[display_name] wall girders", /obj/structure/girder, 2, time = 50, one_per_turf = 1, on_floor = 1, supplied_material = "[name]") + recipes += new/datum/stack_recipe("[display_name] ashtray", /obj/item/weapon/material/ashtray, 2, one_per_turf = 1, on_floor = 1, supplied_material = "[name]") \ No newline at end of file diff --git a/code/modules/materials/material_sheets.dm b/code/modules/materials/material_sheets.dm index d212851071e..54d56fd7731 100644 --- a/code/modules/materials/material_sheets.dm +++ b/code/modules/materials/material_sheets.dm @@ -269,10 +269,16 @@ /obj/item/stack/material/snow name = "snow" - desc = "The temptation to build a snowfort rises." + desc = "The temptation to build a snowman rises." icon_state = "sheet-snow" default_type = "snow" +/obj/item/stack/material/snowbrick + name = "snow brick" + desc = "For all of your igloo building needs." + icon_state = "sheet-snowbrick" + default_type = "packed snow" + /obj/item/stack/material/leather name = "leather" desc = "The by-product of mob grinding." diff --git a/code/modules/materials/materials.dm b/code/modules/materials/materials.dm index 2aad17f1804..9137fb416c9 100644 --- a/code/modules/materials/materials.dm +++ b/code/modules/materials/materials.dm @@ -752,6 +752,7 @@ var/list/name_to_material stack_origin_tech = list(TECH_MATERIAL = 1) door_icon_base = "wood" destruction_desc = "crumples" + radiation_resistance = 1 /material/snow name = MAT_SNOW @@ -769,6 +770,25 @@ var/list/name_to_material destruction_desc = "crumples" sheet_singular_name = "pile" sheet_plural_name = "pile" //Just a bigger pile + radiation_resistance = 1 + +/material/snowbrick //only slightly stronger than snow, used to make igloos mostly + name = "packed snow" + flags = MATERIAL_BRITTLE + stack_type = /obj/item/stack/material/snowbrick + icon_base = "stone" + icon_reinf = "reinf_stone" + icon_colour = "#D8FDFF" + integrity = 50 + weight = 2 + hardness = 2 + protectiveness = 0 // 0% + stack_origin_tech = list(TECH_MATERIAL = 1) + melting_point = T0C+1 + destruction_desc = "crumbles" + sheet_singular_name = "brick" + sheet_plural_name = "bricks" + radiation_resistance = 1 /material/cloth //todo name = "cloth" diff --git a/code/modules/mob/_modifiers/traits_phobias.dm b/code/modules/mob/_modifiers/traits_phobias.dm index c96c6890e64..0fbe099c22e 100644 --- a/code/modules/mob/_modifiers/traits_phobias.dm +++ b/code/modules/mob/_modifiers/traits_phobias.dm @@ -204,6 +204,9 @@ if(istype(thing, /obj/item/toy/plushie/spider)) // Plushies are spooky so people can be assholes with them. fear_amount += 1 + if(istype(thing, /obj/structure/snowman/spider)) //Snow spiders are also spooky so people can be assholes with those too. + fear_amount += 1 + if(istype(thing, /mob/living/simple_animal/hostile/giant_spider)) // Actual giant spiders are the scariest of them all. var/mob/living/simple_animal/hostile/giant_spider/S = thing if(S.stat == DEAD) // Dead giant spiders are less scary than alive ones. @@ -437,7 +440,7 @@ fear_amount += 1 if(istype(S.species, /datum/species/shapeshifter/promethean)) fear_amount += 4 - + return fear_amount /datum/modifier/trait/phobia/trypanophobe diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index c8250088377..5faa78f10d4 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -214,6 +214,10 @@ return FALSE /mob/living/proc/handle_darksight() + if(!seedarkness) //Cheap 'always darksight' var + dsoverlay.alpha = 255 + return + var/darksightedness = min(see_in_dark/world.view,1.0) //A ratio of how good your darksight is, from 'nada' to 'really darn good' var/current = dsoverlay.alpha/255 //Our current adjustedness diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm index 82992581846..349432e3d2f 100644 --- a/code/modules/mob/living/silicon/robot/life.dm +++ b/code/modules/mob/living/silicon/robot/life.dm @@ -151,7 +151,7 @@ return 1 /mob/living/silicon/robot/handle_regular_hud_updates() - + var/fullbright = FALSE if (src.stat == 2 || (XRAY in mutations) || (src.sight_mode & BORGXRAY)) src.sight |= SEE_TURFS src.sight |= SEE_MOBS @@ -163,18 +163,22 @@ src.sight |= SEE_MOBS src.see_in_dark = 8 see_invisible = SEE_INVISIBLE_MINIMUM + fullbright = TRUE else if (src.sight_mode & BORGMESON) src.sight |= SEE_TURFS src.see_in_dark = 8 see_invisible = SEE_INVISIBLE_MINIMUM + fullbright = TRUE else if (src.sight_mode & BORGMATERIAL) src.sight |= SEE_OBJS src.see_in_dark = 8 see_invisible = SEE_INVISIBLE_MINIMUM + fullbright = TRUE else if (src.sight_mode & BORGTHERM) src.sight |= SEE_MOBS src.see_in_dark = 8 src.see_invisible = SEE_INVISIBLE_LEVEL_TWO + fullbright = TRUE else if (!seedarkness) src.sight &= ~SEE_MOBS src.sight &= ~SEE_TURFS @@ -188,7 +192,7 @@ src.see_in_dark = 8 // see_in_dark means you can FAINTLY see in the dark, humans have a range of 3 or so, tajaran have it at 8 src.see_invisible = SEE_INVISIBLE_LIVING // This is normal vision (25), setting it lower for normal vision means you don't "see" things like darkness since darkness // has a "invisible" value of 15 - + plane_holder.set_vis(VIS_FULLBRIGHT,fullbright) ..() if (src.healths) diff --git a/code/modules/mob/living/simple_animal/aliens/alien.dm b/code/modules/mob/living/simple_animal/aliens/alien.dm index 62a3b5e767f..0f7cc35c778 100644 --- a/code/modules/mob/living/simple_animal/aliens/alien.dm +++ b/code/modules/mob/living/simple_animal/aliens/alien.dm @@ -25,7 +25,7 @@ melee_damage_lower = 25 melee_damage_upper = 25 - attacktext = "slashed" + attacktext = list("slashed") attack_sound = 'sound/weapons/bladeslice.ogg' a_intent = I_HURT diff --git a/code/modules/mob/living/simple_animal/aliens/creature.dm b/code/modules/mob/living/simple_animal/aliens/creature.dm index 3de6d687af0..980623c0174 100644 --- a/code/modules/mob/living/simple_animal/aliens/creature.dm +++ b/code/modules/mob/living/simple_animal/aliens/creature.dm @@ -16,7 +16,7 @@ melee_damage_lower = 5 melee_damage_upper = 5 - attacktext = "chomped" + attacktext = list("chomped") attack_sound = 'sound/weapons/bite.ogg' speak_emote = list("gibbers") diff --git a/code/modules/mob/living/simple_animal/aliens/drone.dm b/code/modules/mob/living/simple_animal/aliens/drone.dm index c3ae697448b..35e09030ddb 100644 --- a/code/modules/mob/living/simple_animal/aliens/drone.dm +++ b/code/modules/mob/living/simple_animal/aliens/drone.dm @@ -25,6 +25,7 @@ projectiletype = /obj/item/projectile/beam/drone projectilesound = 'sound/weapons/laser3.ogg' destroy_surroundings = 0 + hovering = TRUE //Drones aren't affected by atmos. min_oxy = 0 diff --git a/code/modules/mob/living/simple_animal/aliens/faithless.dm b/code/modules/mob/living/simple_animal/aliens/faithless.dm index 24eacae40e9..09de8a24fbf 100644 --- a/code/modules/mob/living/simple_animal/aliens/faithless.dm +++ b/code/modules/mob/living/simple_animal/aliens/faithless.dm @@ -20,7 +20,7 @@ melee_damage_lower = 5 melee_damage_upper = 5 - attacktext = "gripped" + attacktext = list("gripped") attack_sound = 'sound/hallucinations/growl1.ogg' min_oxy = 0 diff --git a/code/modules/mob/living/simple_animal/aliens/hivebot.dm b/code/modules/mob/living/simple_animal/aliens/hivebot.dm index 0a7fcd76130..03776d7178c 100644 --- a/code/modules/mob/living/simple_animal/aliens/hivebot.dm +++ b/code/modules/mob/living/simple_animal/aliens/hivebot.dm @@ -20,7 +20,7 @@ melee_damage_lower = 15 melee_damage_upper = 15 - attacktext = "clawed" + attacktext = list("clawed") projectilesound = 'sound/weapons/Gunshot.ogg' projectiletype = /obj/item/projectile/bullet/hivebot diff --git a/code/modules/mob/living/simple_animal/aliens/mimic.dm b/code/modules/mob/living/simple_animal/aliens/mimic.dm index 77ba92ff6a6..8230256086f 100644 --- a/code/modules/mob/living/simple_animal/aliens/mimic.dm +++ b/code/modules/mob/living/simple_animal/aliens/mimic.dm @@ -24,7 +24,7 @@ harm_intent_damage = 5 melee_damage_lower = 8 melee_damage_upper = 12 - attacktext = "attacked" + attacktext = list("attacked") attack_sound = 'sound/weapons/bite.ogg' min_oxy = 0 @@ -55,7 +55,7 @@ // Aggro when you try to open them. Will also pickup loot when spawns and drop it when dies. /mob/living/simple_animal/hostile/mimic/crate - attacktext = "bitten" + attacktext = list("bitten") stop_automated_movement = 1 wander = 0 diff --git a/code/modules/mob/living/simple_animal/aliens/shade.dm b/code/modules/mob/living/simple_animal/aliens/shade.dm index 2d502bc10a6..e8da069e1dd 100644 --- a/code/modules/mob/living/simple_animal/aliens/shade.dm +++ b/code/modules/mob/living/simple_animal/aliens/shade.dm @@ -20,7 +20,7 @@ melee_damage_lower = 5 melee_damage_upper = 15 - attacktext = "drained the life from" + attacktext = list("drained the life from") minbodytemp = 0 maxbodytemp = 4000 diff --git a/code/modules/mob/living/simple_animal/animals/bat.dm b/code/modules/mob/living/simple_animal/animals/bat.dm index a429b2ca7fa..726c94f1431 100644 --- a/code/modules/mob/living/simple_animal/animals/bat.dm +++ b/code/modules/mob/living/simple_animal/animals/bat.dm @@ -24,7 +24,7 @@ melee_damage_upper = 3 environment_smash = 1 - attacktext = "bites" + attacktext = list("bites") attack_sound = 'sound/weapons/bite.ogg' min_oxy = 0 diff --git a/code/modules/mob/living/simple_animal/animals/carp.dm b/code/modules/mob/living/simple_animal/animals/carp.dm index 91266421979..4dc4daffdaf 100644 --- a/code/modules/mob/living/simple_animal/animals/carp.dm +++ b/code/modules/mob/living/simple_animal/animals/carp.dm @@ -8,6 +8,7 @@ faction = "carp" intelligence_level = SA_ANIMAL + hovering = TRUE maxHealth = 25 health = 25 speed = 4 @@ -20,7 +21,7 @@ harm_intent_damage = 8 melee_damage_lower = 15 melee_damage_upper = 15 - attacktext = "bitten" + attacktext = list("bitten") attack_sound = 'sound/weapons/bite.ogg' //Space carp aren't affected by atmos. diff --git a/code/modules/mob/living/simple_animal/animals/cat.dm b/code/modules/mob/living/simple_animal/animals/cat.dm index 039540ed309..81cd043ce0b 100644 --- a/code/modules/mob/living/simple_animal/animals/cat.dm +++ b/code/modules/mob/living/simple_animal/animals/cat.dm @@ -9,7 +9,6 @@ icon_dead = "cat2_dead" icon_rest = "cat2_rest" - hostile = 1 //To mice, anyway. investigates = 1 specific_targets = 1 //Only targets with Found() run_at_them = 0 //DOMESTICATED diff --git a/code/modules/mob/living/simple_animal/animals/farm_animals.dm b/code/modules/mob/living/simple_animal/animals/farm_animals.dm index 2fe58dc76fb..213aff73bfc 100644 --- a/code/modules/mob/living/simple_animal/animals/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/animals/farm_animals.dm @@ -19,7 +19,7 @@ melee_damage_lower = 1 melee_damage_upper = 5 - attacktext = "kicked" + attacktext = list("kicked") speak_chance = 1 speak = list("EHEHEHEHEH","eh?") @@ -98,7 +98,7 @@ response_help = "pets" response_disarm = "gently pushes aside" response_harm = "kicks" - attacktext = "kicked" + attacktext = list("kicked") speak_chance = 1 speak = list("moo?","moo","MOOOOOO") @@ -168,7 +168,7 @@ response_help = "pets" response_disarm = "gently pushes aside" response_harm = "kicks" - attacktext = "kicked" + attacktext = list("kicked") has_langs = list("Bird") speak_chance = 2 @@ -216,7 +216,7 @@ var/global/chicken_count = 0 response_help = "pets" response_disarm = "gently pushes aside" response_harm = "kicks" - attacktext = "kicked" + attacktext = list("kicked") has_langs = list("Bird") speak_chance = 2 diff --git a/code/modules/mob/living/simple_animal/animals/goose.dm b/code/modules/mob/living/simple_animal/animals/goose.dm index a2ac8515b87..dd3b93c4795 100644 --- a/code/modules/mob/living/simple_animal/animals/goose.dm +++ b/code/modules/mob/living/simple_animal/animals/goose.dm @@ -21,7 +21,7 @@ harm_intent_damage = 5 melee_damage_lower = 5 //they're meant to be annoying, not threatening. melee_damage_upper = 5 //unless there's like a dozen of them, then you're screwed. - attacktext = "pecked" + attacktext = list("pecked") attack_sound = 'sound/weapons/bite.ogg' //SPACE geese aren't affected by atmos. diff --git a/code/modules/mob/living/simple_animal/animals/lizard.dm b/code/modules/mob/living/simple_animal/animals/lizard.dm index e9032a96ef1..38822faf0df 100644 --- a/code/modules/mob/living/simple_animal/animals/lizard.dm +++ b/code/modules/mob/living/simple_animal/animals/lizard.dm @@ -15,7 +15,7 @@ response_disarm = "shoos" response_harm = "stomps on" - attacktext = "bitten" + attacktext = list("bitten") melee_damage_lower = 1 melee_damage_upper = 2 diff --git a/code/modules/mob/living/simple_animal/animals/penguin.dm b/code/modules/mob/living/simple_animal/animals/penguin.dm index 13ecb0d0cad..4bb985d1acb 100644 --- a/code/modules/mob/living/simple_animal/animals/penguin.dm +++ b/code/modules/mob/living/simple_animal/animals/penguin.dm @@ -18,7 +18,7 @@ harm_intent_damage = 5 melee_damage_lower = 10 melee_damage_upper = 15 - attacktext = "pecked" + attacktext = list("pecked") has_langs = list("Bird") speak_chance = 0 diff --git a/code/modules/mob/living/simple_animal/animals/spiderbot.dm b/code/modules/mob/living/simple_animal/animals/spiderbot.dm index ff3f03bf57c..7ae8edfb7a3 100644 --- a/code/modules/mob/living/simple_animal/animals/spiderbot.dm +++ b/code/modules/mob/living/simple_animal/animals/spiderbot.dm @@ -21,7 +21,7 @@ melee_damage_lower = 1 melee_damage_upper = 3 - attacktext = "shocked" + attacktext = list("shocked") min_oxy = 0 max_tox = 0 diff --git a/code/modules/mob/living/simple_animal/animals/tomato.dm b/code/modules/mob/living/simple_animal/animals/tomato.dm index d1bffc6fe13..48882fea57c 100644 --- a/code/modules/mob/living/simple_animal/animals/tomato.dm +++ b/code/modules/mob/living/simple_animal/animals/tomato.dm @@ -18,6 +18,6 @@ harm_intent_damage = 5 melee_damage_upper = 15 melee_damage_lower = 10 - attacktext = "mauled" + attacktext = list("mauled") meat_type = /obj/item/weapon/reagent_containers/food/snacks/tomatomeat diff --git a/code/modules/mob/living/simple_animal/animals/tree.dm b/code/modules/mob/living/simple_animal/animals/tree.dm index 3db514345f3..37169d42a18 100644 --- a/code/modules/mob/living/simple_animal/animals/tree.dm +++ b/code/modules/mob/living/simple_animal/animals/tree.dm @@ -22,7 +22,7 @@ harm_intent_damage = 5 melee_damage_lower = 8 melee_damage_upper = 12 - attacktext = "bitten" + attacktext = list("bitten") attack_sound = 'sound/weapons/bite.ogg' min_oxy = 0 diff --git a/code/modules/mob/living/simple_animal/animals/worm.dm b/code/modules/mob/living/simple_animal/animals/worm.dm index 48ed6039c55..da30dbf8fd1 100644 --- a/code/modules/mob/living/simple_animal/animals/worm.dm +++ b/code/modules/mob/living/simple_animal/animals/worm.dm @@ -56,7 +56,7 @@ melee_damage_lower = 10 melee_damage_upper = 15 - attacktext = "bitten" + attacktext = list("bitten") animate_movement = SLIDE_STEPS diff --git a/code/modules/mob/living/simple_animal/borer/borer.dm b/code/modules/mob/living/simple_animal/borer/borer.dm index e18a3450662..b89e2f2af67 100644 --- a/code/modules/mob/living/simple_animal/borer/borer.dm +++ b/code/modules/mob/living/simple_animal/borer/borer.dm @@ -16,7 +16,7 @@ a_intent = I_HURT stop_automated_movement = 1 status_flags = CANPUSH - attacktext = "nipped" + attacktext = list("nipped") friendly = "prods" wander = 0 pass_flags = PASSTABLE diff --git a/code/modules/mob/living/simple_animal/constructs/constructs.dm b/code/modules/mob/living/simple_animal/constructs/constructs.dm index 412f37f1727..c0034b19080 100644 --- a/code/modules/mob/living/simple_animal/constructs/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs/constructs.dm @@ -8,6 +8,7 @@ response_disarm = "flailed at" response_harm = "punched" intelligence_level = SA_HUMANOID // Player controlled. + hovering = TRUE icon_dead = "shade_dead" speed = -1 a_intent = I_HURT @@ -100,7 +101,7 @@ harm_intent_damage = 0 melee_damage_lower = 30 melee_damage_upper = 30 - attacktext = "smashed their armoured gauntlet into" + attacktext = list("smashed their armoured gauntlet into") mob_size = MOB_HUGE speed = 3 environment_smash = 2 @@ -152,7 +153,7 @@ health = 75 melee_damage_lower = 25 melee_damage_upper = 25 - attacktext = "slashed" + attacktext = list("slashed") speed = -1 environment_smash = 1 see_in_dark = 7 @@ -177,7 +178,7 @@ harm_intent_damage = 5 melee_damage_lower = 5 melee_damage_upper = 5 - attacktext = "rammed" + attacktext = list("rammed") speed = 0 environment_smash = 1 attack_sound = 'sound/weapons/rapidslice.ogg' @@ -206,7 +207,7 @@ harm_intent_damage = 0 melee_damage_lower = 50 melee_damage_upper = 50 - attacktext = "brutally crushed" + attacktext = list("brutally crushed") speed = 5 environment_smash = 2 attack_sound = 'sound/weapons/heavysmash.ogg' @@ -230,7 +231,7 @@ health = 150 melee_damage_lower = 25 melee_damage_upper = 25 - attacktext = "violently stabbed" + attacktext = list("violently stabbed") speed = -1 environment_smash = 1 see_in_dark = 7 diff --git a/code/modules/mob/living/simple_animal/humanoids/clown.dm b/code/modules/mob/living/simple_animal/humanoids/clown.dm index ee1341ff38a..5751a058c48 100644 --- a/code/modules/mob/living/simple_animal/humanoids/clown.dm +++ b/code/modules/mob/living/simple_animal/humanoids/clown.dm @@ -26,7 +26,7 @@ harm_intent_damage = 8 melee_damage_lower = 10 melee_damage_upper = 10 - attacktext = "attacked" + attacktext = list("attacked") attack_sound = 'sound/items/bikehorn.ogg' min_oxy = 5 diff --git a/code/modules/mob/living/simple_animal/humanoids/mechamobs.dm b/code/modules/mob/living/simple_animal/humanoids/mechamobs.dm index 975d938ea9b..c7645d2352a 100644 --- a/code/modules/mob/living/simple_animal/humanoids/mechamobs.dm +++ b/code/modules/mob/living/simple_animal/humanoids/mechamobs.dm @@ -28,7 +28,7 @@ harm_intent_damage = 0 melee_damage_lower = 35 melee_damage_upper = 35 - attacktext = "slashed" + attacktext = list("slashed") attack_sound = 'sound/weapons/bladeslice.ogg' min_oxy = 0 diff --git a/code/modules/mob/living/simple_animal/humanoids/pirate.dm b/code/modules/mob/living/simple_animal/humanoids/pirate.dm index f0c7c05ddc0..8921f3c519a 100644 --- a/code/modules/mob/living/simple_animal/humanoids/pirate.dm +++ b/code/modules/mob/living/simple_animal/humanoids/pirate.dm @@ -28,7 +28,7 @@ harm_intent_damage = 5 melee_damage_lower = 30 melee_damage_upper = 30 - attacktext = "slashed" + attacktext = list("slashed") attack_sound = 'sound/weapons/bladeslice.ogg' min_oxy = 5 diff --git a/code/modules/mob/living/simple_animal/humanoids/russian.dm b/code/modules/mob/living/simple_animal/humanoids/russian.dm index 1589fe2a7da..2c3fc68c713 100644 --- a/code/modules/mob/living/simple_animal/humanoids/russian.dm +++ b/code/modules/mob/living/simple_animal/humanoids/russian.dm @@ -30,7 +30,7 @@ harm_intent_damage = 5 melee_damage_lower = 15 melee_damage_upper = 15 - attacktext = "punched" + attacktext = list("punched") min_oxy = 5 max_oxy = 0 diff --git a/code/modules/mob/living/simple_animal/humanoids/syndicate.dm b/code/modules/mob/living/simple_animal/humanoids/syndicate.dm index b053094663b..b525cf6141f 100644 --- a/code/modules/mob/living/simple_animal/humanoids/syndicate.dm +++ b/code/modules/mob/living/simple_animal/humanoids/syndicate.dm @@ -31,7 +31,7 @@ melee_damage_lower = 10 melee_damage_upper = 15 environment_smash = 1 - attacktext = "punched" + attacktext = list("punched") min_oxy = 5 max_oxy = 0 @@ -75,7 +75,7 @@ melee_damage_lower = 20 melee_damage_upper = 25 - attacktext = "slashed" + attacktext = list("slashed") status_flags = 0 @@ -167,6 +167,7 @@ icon_state = "viscerator_attack" icon_living = "viscerator_attack" intelligence_level = SA_ROBOTIC + hovering = TRUE faction = "syndicate" maxHealth = 15 @@ -177,7 +178,7 @@ melee_damage_lower = 15 melee_damage_upper = 15 attack_sound = 'sound/weapons/bladeslice.ogg' - attacktext = "cut" + attacktext = list("cut") min_oxy = 0 max_oxy = 0 diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 12aaa9a2d0a..696688ab427 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -110,8 +110,8 @@ //Mob melee settings var/melee_damage_lower = 2 // Lower bound of randomized melee damage var/melee_damage_upper = 6 // Upper bound of randomized melee damage - var/attacktext = "attacked" // "You are [attacktext] by the mob!" - var/friendly = "nuzzles" // What mobs do to people when they aren't really hostile + var/list/attacktext = list("attacked") // "You are [attacktext] by the mob!" + var/list/friendly = list("nuzzles") // "The mob [friendly] the person." var/attack_sound = null // Sound to play when I attack var/environment_smash = 0 // How much environment damage do I do when I hit stuff? var/melee_miss_chance = 15 // percent chance to miss a melee attack. @@ -131,14 +131,14 @@ //Damage resistances var/resistance = 0 // Damage reduction for all types - var/list/resistances = list( - HALLOSS = 0, - BRUTE = 1, - BURN = 1, - TOX = 1, - OXY = 0, - CLONE = 0 - ) + var/list/armor = list( // Values for normal getarmor() checks + "melee" = 0, + "bullet" = 0, + "laser" = 0, + "energy" = 0, + "bomb" = 0, + "bio" = 100, + "rad" = 100) //Scary debug things var/debug_ai = 0 // Logging level for this mob (1,2,3) @@ -523,7 +523,7 @@ stop_automated_movement = 0 //Search for targets while idle - if(hostile) + if(hostile || specific_targets) FindTarget() if(STANCE_FOLLOW) annoyed = 15 @@ -531,7 +531,7 @@ if(follow_until_time && world.time > follow_until_time) LoseFollow() return - if(hostile) + if(hostile || specific_targets) FindTarget() if(STANCE_ATTACK) annoyed = 50 @@ -611,7 +611,8 @@ react_to_attack(M) if(I_HURT) - adjustBruteLoss(harm_intent_damage) + var/armor = run_armor_check(def_zone = null, attack_flag = "melee") + apply_damage(damage = harm_intent_damage, damagetype = BURN, def_zone = null, blocked = armor, blocked = resistance, used_weapon = null, sharp = FALSE, edge = FALSE) M.visible_message("[M] [response_harm] \the [src]!") M.do_attack_animation(src) ai_log("attack_hand() I was hit by: [M]",2) @@ -735,18 +736,20 @@ /mob/living/simple_animal/ex_act(severity) if(!blinded) flash_eyes() + var/armor = run_armor_check(def_zone = null, attack_flag = "bomb") + var/bombdam = 500 switch (severity) if (1.0) - adjustBruteLoss(500) - gib() - return - + bombdam = 500 if (2.0) - adjustBruteLoss(60) + bombdam = 60 + if (3.0) + bombdam = 30 + apply_damage(damage = bombdam, damagetype = BRUTE, def_zone = null, blocked = armor, blocked = resistance, used_weapon = null, sharp = FALSE, edge = FALSE) - if(3.0) - adjustBruteLoss(30) + if(bombdam > maxHealth) + gib() // Check target_mob if worthy of attack (i.e. check if they are dead or empty mecha) /mob/living/simple_animal/proc/SA_attackable(target_mob) @@ -1273,6 +1276,7 @@ if(A.attack_generic(src, damage_to_do, pick(attacktext)) && attack_sound) playsound(src, attack_sound, 75, 1) + return TRUE //The actual top-level ranged attack proc @@ -1430,23 +1434,23 @@ for(var/obj/structure/window/obstacle in problem_turf) if(obstacle.dir == reverse_dir[dir]) // So that windows get smashed in the right order ai_log("DestroySurroundings() directional window hit",3) - obstacle.attack_generic(src, damage_to_do, attacktext) + obstacle.attack_generic(src, damage_to_do, pick(attacktext)) return else if(obstacle.is_fulltile()) ai_log("DestroySurroundings() full tile window hit",3) - obstacle.attack_generic(src, damage_to_do, attacktext) + obstacle.attack_generic(src, damage_to_do, pick(attacktext)) return var/obj/structure/obstacle = locate(/obj/structure, problem_turf) if(istype(obstacle, /obj/structure/window) || istype(obstacle, /obj/structure/closet) || istype(obstacle, /obj/structure/table) || istype(obstacle, /obj/structure/grille)) ai_log("DestroySurroundings() generic structure hit [obstacle]",3) - obstacle.attack_generic(src, damage_to_do ,attacktext) + obstacle.attack_generic(src, damage_to_do, pick(attacktext)) return for(var/obj/machinery/door/baddoor in problem_turf) //Required since firelocks take up the same turf if(baddoor.density) ai_log("DestroySurroundings() door hit [baddoor]",3) - baddoor.attack_generic(src, damage_to_do ,attacktext) + baddoor.attack_generic(src, damage_to_do, pick(attacktext)) return //Check for shuttle bumrush @@ -1494,7 +1498,7 @@ if (shock_damage < 1) return 0 - adjustFireLoss(shock_damage) + apply_damage(damage = shock_damage, damagetype = BURN, def_zone = null, blocked = null, blocked = resistance, used_weapon = null, sharp = FALSE, edge = FALSE) playsound(loc, "sparks", 50, 1, -1) var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread @@ -1506,14 +1510,15 @@ if(taser_kill) var/stunDam = 0 var/agonyDam = 0 + var/armor = run_armor_check(def_zone = null, attack_flag = "energy") if(stun_amount) stunDam += stun_amount * 0.5 - adjustFireLoss(stunDam) + apply_damage(damage = stunDam, damagetype = BURN, def_zone = null, blocked = armor, blocked = resistance, used_weapon = used_weapon, sharp = FALSE, edge = FALSE) if(agony_amount) agonyDam += agony_amount * 0.5 - adjustFireLoss(agonyDam) + apply_damage(damage = agonyDam, damagetype = BURN, def_zone = null, blocked = armor, blocked = resistance, used_weapon = used_weapon, sharp = FALSE, edge = FALSE) /mob/living/simple_animal/emp_act(severity) if(!isSynthetic()) @@ -1528,6 +1533,13 @@ if(4) adjustFireLoss(rand(1, 6)) +/mob/living/simple_animal/getarmor(def_zone, attack_flag) + var/armorval = armor[attack_flag] + if(!armorval) + return 0 + else + return armorval + // Force it to target something /mob/living/simple_animal/proc/taunt(var/mob/living/new_target, var/forced = FALSE) if(intelligence_level == SA_HUMANOID && !forced) diff --git a/code/modules/organs/internal/eyes.dm b/code/modules/organs/internal/eyes.dm index 07d70bc6e2c..77350a73db8 100644 --- a/code/modules/organs/internal/eyes.dm +++ b/code/modules/organs/internal/eyes.dm @@ -93,3 +93,7 @@ /obj/item/organ/internal/eyes/proc/additional_flash_effects(var/intensity) return -1 + +/obj/item/organ/internal/eyes/emp_act(severity) + ..() //Returns if the organ isn't robotic + owner.eye_blurry += (4/severity) \ No newline at end of file diff --git a/code/modules/organs/subtypes/machine.dm b/code/modules/organs/subtypes/machine.dm index b775f93a8e0..55e3f2cd5f8 100644 --- a/code/modules/organs/subtypes/machine.dm +++ b/code/modules/organs/subtypes/machine.dm @@ -17,6 +17,9 @@ owner.stat = 0 owner.visible_message("\The [owner] twitches visibly!") +/obj/item/organ/internal/cell/emp_act(severity) + ..() + owner.nutrition = max(0, owner.nutrition - rand(10/severity, 50/severity)) // Used for an MMI or posibrain being installed into a human. /obj/item/organ/internal/mmi_holder @@ -83,6 +86,10 @@ holder_mob.drop_from_inventory(src) qdel(src) +/obj/item/organ/internal/mmi_holder/emp_act(severity) + ..() + owner.adjustToxLoss(rand(6/severity, 12/severity)) + /obj/item/organ/internal/mmi_holder/posibrain name = "positronic brain interface" brain_type = /obj/item/device/mmi/digital/posibrain diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 8bda4d37ac0..d574938d98d 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -22,7 +22,7 @@ force = 5 slot_flags = SLOT_BELT|SLOT_HOLSTER charge_cost = 480 - projectile_type = /obj/item/projectile/ion + projectile_type = /obj/item/projectile/ion/pistol /obj/item/weapon/gun/energy/phasegun name = "phase pistol" diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm index e86ff4c864a..4e366bed6d7 100644 --- a/code/modules/projectiles/projectile/special.dm +++ b/code/modules/projectiles/projectile/special.dm @@ -9,15 +9,26 @@ light_range = 2 light_power = 0.5 light_color = "#55AAFF" - var/pulse_range = 1 - + var/sev1_range = 0 + var/sev2_range = 1 + var/sev3_range = 1 + var/sev4_range = 2 /obj/item/projectile/ion/on_hit(var/atom/target, var/blocked = 0) - empulse(target, pulse_range, pulse_range, pulse_range, pulse_range) + empulse(target, sev1_range, sev2_range, sev3_range, sev4_range) return 1 /obj/item/projectile/ion/small - pulse_range = 0 + sev1_range = -1 + sev2_range = 0 + sev3_range = 0 + sev4_range = 1 + +/obj/item/projectile/ion/pistol + sev1_range = 0 + sev2_range = 0 + sev3_range = 0 + sev4_range = 0 /obj/item/projectile/bullet/gyro name ="explosive bolt" diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 7dd4bbeadda..37634ac28a4 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -2210,9 +2210,8 @@ name = "Deuterium" id = "deuterium" result = null - required_reagents = list("water" = 10) - catalysts = list("hydrophoron" = 5) - result_amount = 1 + required_reagents = list("hydrophoron" = 5, "water" = 10) + result_amount = 15 /datum/chemical_reaction/deuterium/on_reaction(var/datum/reagents/holder, var/created_volume) var/turf/T = get_turf(holder.my_atom) diff --git a/html/changelogs/Anewbe - Mines.yml b/html/changelogs/Anewbe - Mines.yml new file mode 100644 index 00000000000..502771f2484 --- /dev/null +++ b/html/changelogs/Anewbe - Mines.yml @@ -0,0 +1,40 @@ +################################ +# 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: Anewbe + +# 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: "Added a random mine spawner, for use in PoIs. Replaces mines in PoIs with the random spawner." + - rscadd: "Mines now give a visible message when they go off." + - tweak: "Land mines on the ground can no longer be told apart from one another, to prevent gaming the system." + - bugfix: "Hovering mobs (viscerators, drones, Poly, carp) no longer set off land mines." + - tweak: "Arming a land mine now takes concentration. If you move, it will boom." diff --git a/html/changelogs/BattlefieldCommander-doyouwannabuildasnowman.yml b/html/changelogs/BattlefieldCommander-doyouwannabuildasnowman.yml new file mode 100644 index 00000000000..4ee55c61148 --- /dev/null +++ b/html/changelogs/BattlefieldCommander-doyouwannabuildasnowman.yml @@ -0,0 +1,38 @@ +################################ +# 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: battlefieldCommander + +# 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: "Added packed snow brick material. Craft it using snow piles." + - recadd: "Added snow girders and igloo walls. Craft them using snow bricks." + - rscadd: "Added various snowmen. Craft them using snow piles. Punch 'em to destroy." \ No newline at end of file diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi index 75249fb4abd..c497e7c73db 100644 Binary files a/icons/mob/hud.dmi and b/icons/mob/hud.dmi differ diff --git a/icons/obj/snowman.dmi b/icons/obj/snowman.dmi new file mode 100644 index 00000000000..ba6444df3f8 Binary files /dev/null and b/icons/obj/snowman.dmi differ diff --git a/icons/obj/stacks.dmi b/icons/obj/stacks.dmi index 51465980512..f25ca29526b 100644 Binary files a/icons/obj/stacks.dmi and b/icons/obj/stacks.dmi differ diff --git a/maps/southern_cross/loadout/loadout_accessories.dm b/maps/southern_cross/loadout/loadout_accessories.dm index 31e900f89b8..1a23e18e9c7 100644 --- a/maps/southern_cross/loadout/loadout_accessories.dm +++ b/maps/southern_cross/loadout/loadout_accessories.dm @@ -27,3 +27,8 @@ display_name = "drop pouches, white" path = /obj/item/clothing/accessory/storage/white_drop_pouches 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","Explorer","Shaft Miner") + +/datum/gear/accessory/holster + display_name = "holster selection (Security, CD, HoP)" + path = /obj/item/clothing/accessory/holster + allowed_roles = list("Colony Director","Head of Personnel","Security Officer","Warden","Head of Security","Detective","Explorer") \ No newline at end of file diff --git a/maps/submaps/surface_submaps/wilderness/CaveS.dmm b/maps/submaps/surface_submaps/wilderness/CaveS.dmm index 36d0d00ca51..9f5a411ec5e 100644 --- a/maps/submaps/surface_submaps/wilderness/CaveS.dmm +++ b/maps/submaps/surface_submaps/wilderness/CaveS.dmm @@ -3,35 +3,39 @@ "c" = (/obj/item/ammo_casing/a45,/turf/template_noop,/area/submap/CaveS) "d" = (/turf/simulated/mineral/ignore_mapgen,/area/submap/CaveS) "e" = (/obj/item/ammo_casing/a45,/obj/item/weapon/reagent_containers/food/snacks/xenomeat/spidermeat,/turf/template_noop,/area/submap/CaveS) -"f" = (/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) -"g" = (/obj/effect/spider/stickyweb,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) -"h" = (/obj/item/ammo_casing/a45,/obj/item/ammo_casing/a45,/turf/template_noop,/area/submap/CaveS) -"i" = (/obj/item/weapon/reagent_containers/food/snacks/xenomeat/spidermeat,/turf/template_noop,/area/submap/CaveS) -"j" = (/obj/item/clothing/accessory/storage/webbing,/obj/item/weapon/material/knife/tacknife/combatknife,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) -"k" = (/mob/living/simple_animal/hostile/giant_spider,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) -"l" = (/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) -"m" = (/mob/living/simple_animal/hostile/giant_spider/lurker,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) -"n" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) -"o" = (/obj/effect/mine,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) -"p" = (/mob/living/simple_animal/hostile/giant_spider/webslinger,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) -"q" = (/obj/effect/decal/cleanable/cobweb2,/mob/living/simple_animal/hostile/giant_spider/lurker,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) -"r" = (/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/CaveS) -"s" = (/mob/living/simple_animal/hostile/giant_spider/hunter,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) -"t" = (/obj/structure/flora/tree/sif,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/CaveS) -"u" = (/turf/simulated/floor,/area/submap/CaveS) -"v" = (/obj/structure/closet/crate,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/obj/item/weapon/storage/toolbox,/obj/random/toolbox,/turf/simulated/floor,/area/submap/CaveS) -"w" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/floor,/area/submap/CaveS) -"x" = (/obj/structure/table/woodentable,/turf/simulated/floor,/area/submap/CaveS) -"y" = (/obj/machinery/power/port_gen/pacman,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor,/area/submap/CaveS) -"z" = (/turf/simulated/wall,/area/submap/CaveS) -"A" = (/obj/structure/closet/crate,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/weapon/reagent_containers/glass/bottle/antitoxin,/obj/item/weapon/reagent_containers/pill/antitox,/obj/item/weapon/reagent_containers/pill/antitox,/obj/item/weapon/reagent_containers/pill/antitox,/obj/item/weapon/reagent_containers/pill/paracetamol,/obj/random/firstaid,/turf/simulated/floor,/area/submap/CaveS) -"B" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor,/area/submap/CaveS) -"C" = (/obj/structure/closet/crate,/obj/random/contraband,/obj/random/contraband,/obj/random/contraband,/obj/random/energy,/obj/item/weapon/material/star,/obj/item/weapon/material/star,/obj/item/weapon/material/star,/obj/item/weapon/material/star,/obj/item/weapon/material/star,/turf/simulated/floor,/area/submap/CaveS) -"D" = (/obj/effect/spider/stickyweb,/mob/living/simple_animal/hostile/giant_spider/lurker,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) -"E" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/submap/CaveS) -"F" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/submap/CaveS) -"G" = (/obj/machinery/computer/communications,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/submap/CaveS) -"H" = (/obj/structure/loot_pile/maint/boxfort,/turf/simulated/floor,/area/submap/CaveS) +"f" = (/obj/random/landmine,/turf/template_noop,/area/submap/CaveS) +"g" = (/obj/item/ammo_casing/a45,/obj/random/landmine,/turf/template_noop,/area/submap/CaveS) +"h" = (/obj/random/landmine,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) +"i" = (/obj/effect/spider/stickyweb,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) +"j" = (/obj/item/ammo_casing/a45,/obj/item/ammo_casing/a45,/turf/template_noop,/area/submap/CaveS) +"k" = (/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) +"l" = (/obj/item/weapon/reagent_containers/food/snacks/xenomeat/spidermeat,/turf/template_noop,/area/submap/CaveS) +"m" = (/obj/item/clothing/accessory/storage/webbing,/obj/item/weapon/material/knife/tacknife/combatknife,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) +"n" = (/mob/living/simple_animal/hostile/giant_spider,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) +"o" = (/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) +"p" = (/mob/living/simple_animal/hostile/giant_spider/lurker,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) +"q" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) +"r" = (/mob/living/simple_animal/hostile/giant_spider/webslinger,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) +"s" = (/obj/effect/decal/cleanable/cobweb2,/mob/living/simple_animal/hostile/giant_spider/lurker,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) +"t" = (/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/CaveS) +"u" = (/mob/living/simple_animal/hostile/giant_spider/hunter,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) +"v" = (/obj/structure/flora/tree/sif,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/CaveS) +"w" = (/obj/random/landmine,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/CaveS) +"x" = (/turf/simulated/floor,/area/submap/CaveS) +"y" = (/obj/structure/closet/crate,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/obj/item/weapon/storage/toolbox,/obj/random/toolbox,/turf/simulated/floor,/area/submap/CaveS) +"z" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/floor,/area/submap/CaveS) +"A" = (/obj/structure/table/woodentable,/turf/simulated/floor,/area/submap/CaveS) +"B" = (/obj/random/landmine,/turf/simulated/floor,/area/submap/CaveS) +"C" = (/obj/machinery/power/port_gen/pacman,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor,/area/submap/CaveS) +"D" = (/turf/simulated/wall,/area/submap/CaveS) +"E" = (/obj/structure/closet/crate,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/weapon/reagent_containers/glass/bottle/antitoxin,/obj/item/weapon/reagent_containers/pill/antitox,/obj/item/weapon/reagent_containers/pill/antitox,/obj/item/weapon/reagent_containers/pill/antitox,/obj/item/weapon/reagent_containers/pill/paracetamol,/obj/random/firstaid,/obj/random/landmine,/turf/simulated/floor,/area/submap/CaveS) +"F" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor,/area/submap/CaveS) +"G" = (/obj/structure/closet/crate,/obj/random/contraband,/obj/random/contraband,/obj/random/contraband,/obj/random/energy,/obj/item/weapon/material/star,/obj/item/weapon/material/star,/obj/item/weapon/material/star,/obj/item/weapon/material/star,/obj/item/weapon/material/star,/turf/simulated/floor,/area/submap/CaveS) +"H" = (/obj/effect/spider/stickyweb,/mob/living/simple_animal/hostile/giant_spider/lurker,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) +"I" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/submap/CaveS) +"J" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/submap/CaveS) +"K" = (/obj/machinery/computer/communications,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/submap/CaveS) +"L" = (/obj/structure/loot_pile/maint/boxfort,/turf/simulated/floor,/area/submap/CaveS) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -42,34 +46,34 @@ abbbbbbbbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbba abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba abbbbbbbbbbbbbbbcbbbbbbcccdddddbbbbbbbba abbbbbbbbbbbbbbbbbbbbbbbeddddddddbbddbba -abbbbbbbbbbbbbbbbbbbbbbbdddddddddddddbba -abbbbdddddbbbbcbbbbcbbbfgddddddddddddbba -abbbbddddddddbbbbbhbbbbffddddddddddddbba -abbbddddddddddbbbbcbibdgfggdddddddddbbba -abbbdddddddddddbbbbbbdddgfffdddddddbbbba -abbbddddddddddddbbbbddddddffgddddddbbbba -abbdddddjdffgdddbbddddddddffffffddddbbba -abbdddkffffffdddbbdddddddlffffffkdddbbba -abbdddgfffffmddbbddddddddfffffffdddddbba -abbddddfffffdddbdddddddddffddddfnddddbba -abdddddddffffddddddddddddofddddffdddddba -abdddddddffffndddddlfkffffddddlfddddddba -abddddddddffffffffffffffffddddofddddddda -abdddddddddpfffffffffffffffqddffddddddda -abdddddrrdddddffdddmdddddgffffffddddddba -abdddrrrrdddddffddddddddddofffsddddddbba -abddrtrrrdddddffmdddddddddddddddddddbbba -abddrrrrrrdddddfffffddddddddmfddddddbbba -abdddrrrtrgddddfffofffogdddfffffdddbbbba -abdddrrrrrfffffffdfffffgddffuuvfffddbbba -abddrrrrrrrffffgdddgffffffffuuuwfdddbbba -abddrrrrrrffddddddddfofffffuxxuuffddbbba -abdddrrrrrffmddddddfffgdffuyzzAfffdddbba -abdddddtrffddddddgffffddffuBzzCffddddbba -abdddddddrgddddddDffffddffuEFGuuddddbbba -abbddddddddddddddfffffdddffuuuudddddbbba -abbdddddddddddddddfgdddddfffuHdddddbbbba -abbdddddddddddddddddddddddmffddddbbbbbba +abbbbbbbbbbbbbbbbbbbbbfbdddddddddddddbba +abbbbdddddbbbbcbbbbgbbbhiddddddddddddbba +abbbbddddddddbbbbbjbbfbkkddddddddddddbba +abbbddddddddddbbbbcblbdikiidddddddddbbba +abbbdddddddddddbbbbbbdddikkkdddddddbbbba +abbbddddddddddddbbbbddddddhkiddddddbbbba +abbdddddmdkkidddbbddddddddkkkkkkddddbbba +abbdddnkkkkkkdddbbdddddddokkkkkkndddbbba +abbdddikkkkkpddbbddddddddkkkkkkkdddddbba +abbddddkkkkkdddbdddddddddkkddddkqddddbba +abdddddddkkkkddddddddddddhkddddkkdddddba +abdddddddkkkkqdddddoknkkkkddddokddddddba +abddddddddkkkkkkkkkkkkkkkkddddhkddddddda +abdddddddddrkkkkkkkkkkkkkkksddkkddddddda +abdddddttdddddkkdddpdddddikkkkkkddddddba +abdddttttdddddkkddddddddddkkkkuddddddbba +abddtvtttdddddkkpdddddddddddddddddddbbba +abddttwtttdddddkkkkkddddddddpkddddddbbba +abdddtttvtiddddkkkkkkkhidddkkkkkdddbbbba +abdddtttwtkkkkkkkdkkkkkiddkkxxykkkddbbba +abddtttttttkkkkidddikkkhkkkkxxxzkdddbbba +abddttttttkkddddddddkhkkkkkxAABxkkddbbba +abdddtttttkkpddddddkkkidkkxCDDEkkkdddbba +abdddddvtkkddddddikkkkddkkxFDDGkkddddbba +abdddddddtiddddddHkkkkddkkxIJKBxddddbbba +abbddddddddddddddkkkkkdddkkxxxxdddddbbba +abbdddddddddddddddkidddddkkkxLdddddbbbba +abbdddddddddddddddddddddddpkkddddbbbbbba abbbdddddddddddddddddddddddddddbbbbbbbba abbbddddbbbbdddddddbbdddddddddbbbbbbbbba abbbddbbbbbbbddddbbbbdbbdddddbbbbbbbbbba diff --git a/maps/submaps/surface_submaps/wilderness/DoomP.dmm b/maps/submaps/surface_submaps/wilderness/DoomP.dmm index c98433cff4d..761eac23e40 100644 --- a/maps/submaps/surface_submaps/wilderness/DoomP.dmm +++ b/maps/submaps/surface_submaps/wilderness/DoomP.dmm @@ -5,126 +5,129 @@ "ae" = (/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/template_noop,/area/submap/DoomP) "af" = (/turf/simulated/floor/water,/area/submap/DoomP) "ag" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/submap/DoomP) -"ah" = (/obj/effect/mine,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/DoomP) +"ah" = (/obj/random/landmine,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/DoomP) "ai" = (/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/DoomP) -"aj" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/DoomP) +"aj" = (/obj/effect/decal/cleanable/blood,/obj/random/landmine,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/DoomP) "ak" = (/turf/simulated/floor/water/deep,/area/submap/DoomP) -"al" = (/obj/effect/decal/remains/mouse,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/DoomP) -"am" = (/obj/effect/decal/remains/deer,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/DoomP) -"an" = (/obj/structure/flora/tree/sif,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/DoomP) -"ao" = (/obj/machinery/light/small,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/DoomP) -"ap" = (/obj/machinery/porta_turret,/turf/simulated/floor/plating,/area/submap/DoomP) -"aq" = (/turf/simulated/wall/r_wall,/area/submap/DoomP) -"ar" = (/obj/structure/sign/warning/secure_area,/turf/simulated/wall/r_wall,/area/submap/DoomP) -"as" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/plating,/area/submap/DoomP) -"at" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plating,/area/submap/DoomP) -"au" = (/obj/effect/floor_decal/borderfloor{dir = 9},/turf/simulated/floor/tiled,/area/submap/DoomP) -"av" = (/obj/structure/bed/chair,/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/DoomP) -"aw" = (/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/DoomP) -"ax" = (/obj/structure/bed/chair,/obj/effect/floor_decal/borderfloor{dir = 1},/mob/living/simple_animal/hostile/syndicate/ranged{desc = "Even less friendly than he looks."; speak = list("Wish I had better equipment...","I knew I should have been a line chef...","Fuckin' helmet keeps fogging up.","Anyone else smell that?")},/turf/simulated/floor/tiled,/area/submap/DoomP) -"ay" = (/obj/machinery/light/small{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/DoomP) -"az" = (/obj/machinery/vending/cigarette,/obj/effect/floor_decal/borderfloor{dir = 5},/turf/simulated/floor/tiled,/area/submap/DoomP) -"aA" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled,/area/submap/DoomP) -"aB" = (/obj/machinery/power/smes/buildable/point_of_interest,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/submap/DoomP) -"aC" = (/obj/machinery/power/smes/buildable/point_of_interest,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/submap/DoomP) -"aD" = (/obj/machinery/power/apc{dir = 1; name = "PAPC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/tiled/techfloor/grid,/area/submap/DoomP) -"aE" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/port_gen/pacman,/turf/simulated/floor/plating,/area/submap/DoomP) -"aF" = (/obj/structure/table/standard,/obj/random/toolbox,/turf/simulated/floor/tiled/techfloor/grid,/area/submap/DoomP) -"aG" = (/obj/structure/table/standard,/obj/item/stack/material/phoron{amount = 25},/turf/simulated/floor/tiled/techfloor/grid,/area/submap/DoomP) -"aH" = (/obj/structure/closet/secure_closet/engineering_electrical,/turf/simulated/floor/tiled/techfloor/grid,/area/submap/DoomP) -"aI" = (/obj/structure/lattice,/turf/simulated/floor/outdoors/rocks,/area/submap/DoomP) -"aJ" = (/obj/structure/bed/chair{dir = 4},/obj/effect/floor_decal/borderfloor{dir = 8},/mob/living/simple_animal/hostile/syndicate/ranged{desc = "Even less friendly than he looks."; speak = list("Wish I had better equipment...","I knew I should have been a line chef...","Fuckin' helmet keeps fogging up.","Anyone else smell that?")},/turf/simulated/floor/tiled,/area/submap/DoomP) -"aK" = (/obj/structure/table/standard,/turf/simulated/floor/tiled,/area/submap/DoomP) -"aL" = (/obj/structure/table/standard,/obj/item/pizzabox,/turf/simulated/floor/tiled,/area/submap/DoomP) -"aM" = (/turf/simulated/floor/tiled,/area/submap/DoomP) -"aN" = (/obj/machinery/vending/snack,/obj/effect/floor_decal/borderfloor{dir = 4},/turf/simulated/floor/tiled,/area/submap/DoomP) -"aO" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/tiled/techfloor/grid,/area/submap/DoomP) -"aP" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled/techfloor/grid,/area/submap/DoomP) -"aQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled/techfloor/grid,/area/submap/DoomP) -"aR" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled/techfloor/grid,/area/submap/DoomP) -"aS" = (/turf/simulated/floor/tiled/techfloor/grid,/area/submap/DoomP) -"aT" = (/obj/machinery/light/small,/turf/simulated/floor/tiled/techfloor/grid,/area/submap/DoomP) -"aU" = (/obj/structure/lattice,/turf/simulated/floor/water,/area/submap/DoomP) -"aV" = (/obj/machinery/light/small{dir = 8},/obj/effect/floor_decal/borderfloor{dir = 8},/turf/simulated/floor/tiled,/area/submap/DoomP) -"aW" = (/obj/machinery/vending/cola,/obj/effect/floor_decal/borderfloor/corner{dir = 4},/turf/simulated/floor/tiled,/area/submap/DoomP) -"aX" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/tiled,/area/submap/DoomP) -"aY" = (/obj/machinery/door/airlock/engineering,/turf/simulated/floor/tiled/techfloor/grid,/area/submap/DoomP) -"aZ" = (/obj/structure/sign/electricshock,/turf/simulated/wall/r_wall,/area/submap/DoomP) -"ba" = (/obj/effect/floor_decal/borderfloor{dir = 10},/turf/simulated/floor/tiled,/area/submap/DoomP) -"bb" = (/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/DoomP) -"bc" = (/obj/machinery/light/small,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/DoomP) -"bd" = (/obj/effect/floor_decal/borderfloor/corner{dir = 8},/turf/simulated/floor/tiled,/area/submap/DoomP) -"be" = (/obj/machinery/door/airlock/hatch,/turf/simulated/floor/tiled,/area/submap/DoomP) -"bf" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled,/area/submap/DoomP) -"bg" = (/obj/machinery/door/airlock/highsecurity,/turf/simulated/floor/tiled/techfloor,/area/submap/DoomP) -"bh" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled/white,/area/submap/DoomP) -"bi" = (/turf/simulated/floor/tiled/techfloor,/area/submap/DoomP) -"bj" = (/obj/structure/table/standard,/turf/simulated/floor/tiled/techfloor,/area/submap/DoomP) -"bk" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/syndie_kit/spy,/turf/simulated/floor/tiled/techfloor,/area/submap/DoomP) -"bl" = (/obj/structure/table/rack,/obj/item/weapon/storage/box/smokes,/turf/simulated/floor/tiled/techfloor,/area/submap/DoomP) -"bm" = (/obj/structure/table/rack,/obj/item/weapon/storage/box/handcuffs,/turf/simulated/floor/tiled/techfloor,/area/submap/DoomP) -"bn" = (/obj/structure/table/rack,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/turf/simulated/floor/tiled/techfloor,/area/submap/DoomP) -"bo" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/laser/mounted,/turf/simulated/floor/tiled/techfloor,/area/submap/DoomP) -"bp" = (/obj/structure/table/rack,/obj/item/weapon/gun/projectile/contender,/obj/item/ammo_magazine/s357,/obj/item/ammo_magazine/s357,/obj/item/ammo_magazine/s357,/turf/simulated/floor/tiled/techfloor,/area/submap/DoomP) -"bq" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/item/toy/plushie/spider,/obj/effect/floor_decal/corner/lime/full{dir = 8},/turf/simulated/floor/tiled/white,/area/submap/DoomP) -"br" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/lime{dir = 5},/turf/simulated/floor/tiled/white,/area/submap/DoomP) -"bs" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/effect/floor_decal/corner/lime{dir = 5},/turf/simulated/floor/tiled/white,/area/submap/DoomP) -"bt" = (/obj/structure/table/standard,/obj/item/device/flashlight/lamp,/obj/effect/floor_decal/corner/lime{dir = 5},/turf/simulated/floor/tiled/white,/area/submap/DoomP) -"bu" = (/obj/structure/table/standard,/obj/structure/bedsheetbin,/obj/effect/floor_decal/corner/lime{dir = 1},/turf/simulated/floor/tiled/white,/area/submap/DoomP) -"bv" = (/turf/simulated/floor/tiled/white,/area/submap/DoomP) -"bw" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled/white,/area/submap/DoomP) -"bx" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled/white,/area/submap/DoomP) -"by" = (/obj/machinery/light/small,/turf/simulated/floor/tiled/techfloor,/area/submap/DoomP) -"bz" = (/obj/machinery/light/small{dir = 8},/obj/effect/floor_decal/corner/lime/full,/turf/simulated/floor/tiled/white,/area/submap/DoomP) -"bA" = (/obj/effect/floor_decal/corner/lime{dir = 10},/turf/simulated/floor/tiled/white,/area/submap/DoomP) -"bB" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/obj/effect/floor_decal/corner/lime{dir = 10},/turf/simulated/floor/tiled/white,/area/submap/DoomP) -"bC" = (/obj/machinery/shower{dir = 1},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/white,/area/submap/DoomP) -"bD" = (/obj/structure/toilet{dir = 1},/turf/simulated/floor/tiled/white,/area/submap/DoomP) -"bE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/submap/DoomP) -"bF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/submap/DoomP) -"bG" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/submap/DoomP) -"bH" = (/obj/structure/lattice,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/DoomP) +"al" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/DoomP) +"am" = (/obj/random/landmine,/turf/simulated/floor/outdoors/rocks,/area/submap/DoomP) +"an" = (/obj/effect/decal/remains/mouse,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/DoomP) +"ao" = (/obj/effect/decal/remains/deer,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/DoomP) +"ap" = (/obj/effect/decal/remains/mouse,/obj/random/landmine,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/DoomP) +"aq" = (/obj/structure/flora/tree/sif,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/DoomP) +"ar" = (/obj/machinery/light/small,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/DoomP) +"as" = (/obj/machinery/porta_turret,/turf/simulated/floor/plating,/area/submap/DoomP) +"at" = (/turf/simulated/wall/r_wall,/area/submap/DoomP) +"au" = (/obj/structure/sign/warning/secure_area,/turf/simulated/wall/r_wall,/area/submap/DoomP) +"av" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/plating,/area/submap/DoomP) +"aw" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plating,/area/submap/DoomP) +"ax" = (/obj/effect/floor_decal/borderfloor{dir = 9},/turf/simulated/floor/tiled,/area/submap/DoomP) +"ay" = (/obj/structure/bed/chair,/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/DoomP) +"az" = (/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/DoomP) +"aA" = (/obj/structure/bed/chair,/obj/effect/floor_decal/borderfloor{dir = 1},/mob/living/simple_animal/hostile/syndicate/ranged{desc = "Even less friendly than he looks."; speak = list("Wish I had better equipment...","I knew I should have been a line chef...","Fuckin' helmet keeps fogging up.","Anyone else smell that?")},/turf/simulated/floor/tiled,/area/submap/DoomP) +"aB" = (/obj/machinery/light/small{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/DoomP) +"aC" = (/obj/machinery/vending/cigarette,/obj/effect/floor_decal/borderfloor{dir = 5},/turf/simulated/floor/tiled,/area/submap/DoomP) +"aD" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled,/area/submap/DoomP) +"aE" = (/obj/machinery/power/smes/buildable/point_of_interest,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/submap/DoomP) +"aF" = (/obj/machinery/power/smes/buildable/point_of_interest,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/submap/DoomP) +"aG" = (/obj/machinery/power/apc{dir = 1; name = "PAPC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/tiled/techfloor/grid,/area/submap/DoomP) +"aH" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/port_gen/pacman,/turf/simulated/floor/plating,/area/submap/DoomP) +"aI" = (/obj/structure/table/standard,/obj/random/toolbox,/turf/simulated/floor/tiled/techfloor/grid,/area/submap/DoomP) +"aJ" = (/obj/structure/table/standard,/obj/item/stack/material/phoron{amount = 25},/turf/simulated/floor/tiled/techfloor/grid,/area/submap/DoomP) +"aK" = (/obj/structure/closet/secure_closet/engineering_electrical,/turf/simulated/floor/tiled/techfloor/grid,/area/submap/DoomP) +"aL" = (/obj/structure/lattice,/turf/simulated/floor/outdoors/rocks,/area/submap/DoomP) +"aM" = (/obj/structure/bed/chair{dir = 4},/obj/effect/floor_decal/borderfloor{dir = 8},/mob/living/simple_animal/hostile/syndicate/ranged{desc = "Even less friendly than he looks."; speak = list("Wish I had better equipment...","I knew I should have been a line chef...","Fuckin' helmet keeps fogging up.","Anyone else smell that?")},/turf/simulated/floor/tiled,/area/submap/DoomP) +"aN" = (/obj/structure/table/standard,/turf/simulated/floor/tiled,/area/submap/DoomP) +"aO" = (/obj/structure/table/standard,/obj/item/pizzabox,/turf/simulated/floor/tiled,/area/submap/DoomP) +"aP" = (/turf/simulated/floor/tiled,/area/submap/DoomP) +"aQ" = (/obj/machinery/vending/snack,/obj/effect/floor_decal/borderfloor{dir = 4},/turf/simulated/floor/tiled,/area/submap/DoomP) +"aR" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/tiled/techfloor/grid,/area/submap/DoomP) +"aS" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled/techfloor/grid,/area/submap/DoomP) +"aT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled/techfloor/grid,/area/submap/DoomP) +"aU" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled/techfloor/grid,/area/submap/DoomP) +"aV" = (/turf/simulated/floor/tiled/techfloor/grid,/area/submap/DoomP) +"aW" = (/obj/machinery/light/small,/turf/simulated/floor/tiled/techfloor/grid,/area/submap/DoomP) +"aX" = (/obj/structure/lattice,/turf/simulated/floor/water,/area/submap/DoomP) +"aY" = (/obj/machinery/light/small{dir = 8},/obj/effect/floor_decal/borderfloor{dir = 8},/turf/simulated/floor/tiled,/area/submap/DoomP) +"aZ" = (/obj/machinery/vending/cola,/obj/effect/floor_decal/borderfloor/corner{dir = 4},/turf/simulated/floor/tiled,/area/submap/DoomP) +"ba" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/tiled,/area/submap/DoomP) +"bb" = (/obj/machinery/door/airlock/engineering,/turf/simulated/floor/tiled/techfloor/grid,/area/submap/DoomP) +"bc" = (/obj/structure/sign/electricshock,/turf/simulated/wall/r_wall,/area/submap/DoomP) +"bd" = (/obj/effect/floor_decal/borderfloor{dir = 10},/turf/simulated/floor/tiled,/area/submap/DoomP) +"be" = (/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/DoomP) +"bf" = (/obj/machinery/light/small,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/DoomP) +"bg" = (/obj/effect/floor_decal/borderfloor/corner{dir = 8},/turf/simulated/floor/tiled,/area/submap/DoomP) +"bh" = (/obj/machinery/door/airlock/hatch,/turf/simulated/floor/tiled,/area/submap/DoomP) +"bi" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled,/area/submap/DoomP) +"bj" = (/obj/machinery/door/airlock/highsecurity,/turf/simulated/floor/tiled/techfloor,/area/submap/DoomP) +"bk" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled/white,/area/submap/DoomP) +"bl" = (/turf/simulated/floor/tiled/techfloor,/area/submap/DoomP) +"bm" = (/obj/structure/table/standard,/turf/simulated/floor/tiled/techfloor,/area/submap/DoomP) +"bn" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/syndie_kit/spy,/turf/simulated/floor/tiled/techfloor,/area/submap/DoomP) +"bo" = (/obj/structure/table/rack,/obj/item/weapon/storage/box/smokes,/turf/simulated/floor/tiled/techfloor,/area/submap/DoomP) +"bp" = (/obj/structure/table/rack,/obj/item/weapon/storage/box/handcuffs,/turf/simulated/floor/tiled/techfloor,/area/submap/DoomP) +"bq" = (/obj/structure/table/rack,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/turf/simulated/floor/tiled/techfloor,/area/submap/DoomP) +"br" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/laser/mounted,/turf/simulated/floor/tiled/techfloor,/area/submap/DoomP) +"bs" = (/obj/structure/table/rack,/obj/item/weapon/gun/projectile/contender,/obj/item/ammo_magazine/s357,/obj/item/ammo_magazine/s357,/obj/item/ammo_magazine/s357,/turf/simulated/floor/tiled/techfloor,/area/submap/DoomP) +"bt" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/item/toy/plushie/spider,/obj/effect/floor_decal/corner/lime/full{dir = 8},/turf/simulated/floor/tiled/white,/area/submap/DoomP) +"bu" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/lime{dir = 5},/turf/simulated/floor/tiled/white,/area/submap/DoomP) +"bv" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/effect/floor_decal/corner/lime{dir = 5},/turf/simulated/floor/tiled/white,/area/submap/DoomP) +"bw" = (/obj/structure/table/standard,/obj/item/device/flashlight/lamp,/obj/effect/floor_decal/corner/lime{dir = 5},/turf/simulated/floor/tiled/white,/area/submap/DoomP) +"bx" = (/obj/structure/table/standard,/obj/structure/bedsheetbin,/obj/effect/floor_decal/corner/lime{dir = 1},/turf/simulated/floor/tiled/white,/area/submap/DoomP) +"by" = (/turf/simulated/floor/tiled/white,/area/submap/DoomP) +"bz" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled/white,/area/submap/DoomP) +"bA" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled/white,/area/submap/DoomP) +"bB" = (/obj/machinery/light/small,/turf/simulated/floor/tiled/techfloor,/area/submap/DoomP) +"bC" = (/obj/machinery/light/small{dir = 8},/obj/effect/floor_decal/corner/lime/full,/turf/simulated/floor/tiled/white,/area/submap/DoomP) +"bD" = (/obj/effect/floor_decal/corner/lime{dir = 10},/turf/simulated/floor/tiled/white,/area/submap/DoomP) +"bE" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/obj/effect/floor_decal/corner/lime{dir = 10},/turf/simulated/floor/tiled/white,/area/submap/DoomP) +"bF" = (/obj/machinery/shower{dir = 1},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/white,/area/submap/DoomP) +"bG" = (/obj/structure/toilet{dir = 1},/turf/simulated/floor/tiled/white,/area/submap/DoomP) +"bH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/submap/DoomP) +"bI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/submap/DoomP) +"bJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/submap/DoomP) +"bK" = (/obj/structure/lattice,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/DoomP) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaabababababababababababababababababababababababababababababababababababacacacacacacacacabababababababadadadabababaeabaa aaaeabababababababababababababababababababababababababababababababababacacafafafafafafacacacacababacadadadadadacacacabaa aaababacacacacacacacabababababababagababababacacacacacacacacababacacacacafafafafafafafafafafacacacacadadahadacafafacabaa -aaabacacafafafafafacacacacacacababaeabacacacacafafafafacacacacacafafafafafafafafafafafafafacacadadadadadacacacafafacabaa +aaabacacafafafafafacacacacacacababaeabacacacacafafafafacacacacacafafafafafafafafafafafafafacacadadahadadacacacafafacabaa aaabacafafafafafafafafafafafacacacacacacafafafafafafafafafafafafafafafafafafafafafafafafacacadaiadadajacacafafafafacacaa -aaabacafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafacacacadadadadadadacafafafafafafacaa -aaabacafafafafakakakakakakafafafafafafafafafafafafafakakakakakakakafafafafafafafafacacadajadadahadadadacafafafafafafacaa -aaabacafafafafafakakakakakafafafafafafafafafakakakakakakakakakakakakakakafafafafafacadahadadadadadadacacafafafafafafacaa -aaabacacafafafafafakakakakafafafafafafafafafakakakakakakakakakakakakakafafafafafacacaladadadamadahacacafafafafafafafacaa -aaababacafafafafafafakakakakakafafafakakakakakakakakakakakakakakakakakakakakakafafacacadadadadadacacafafafafafafafafacaa -aaababacafafafafafafakakakakakakakakakakakakakakakakakakakakakakakakakakafafafafafafacadadadaiadacacafafafafafafafacacaa -aaababacacafafafafafafakakakakakakakakakakakakakakakakakakakakakakakakakafafafafafacacadahadadacacafafafafafafafafacabaa +aaabacafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafacacacahadadadadadacafafafafafafacaa +aaabacafafafafakakakakakakafafafafafafafafafafafafafakakakakakakakafafafafafafafafacacadaladadahadadadacafafafafafafacaa +aaabacafafafafafakakakakakafafafafafafafafafakakakakakakakakakakakakakakafafafafafacadahadadadadadadamacafafafafafafacaa +aaabacacafafafafafakakakakafafafafafafafafafakakakakakakakakakakakakakafafafafafacacanadadadaoadahacacafafafafafafafacaa +aaababacafafafafafafakakakakakafafafakakakakakakakakakakakakakakakakakakakakakafafacacadadahadadacacafafafafafafafafacaa +aaababacafafafafafafakakakakakakakakakakakakakakakakakakakakakakakakakakafafafafafafacadadadaiadacamafafafafafafafacacaa +aaababacacafafafafafafakakakakakakakakakakakakakakakakakakakakakakakakakafafafafafacamadahadadacacafafafafafafafafacabaa aaabababacafafafafafafafakakakakakakakakakakakakafafakakakakakakakakakafafafafafafacacadadadadacafafafafafafafafafacabaa -aaabababacacafafafafafafafakakakakakakakakakakafafafafakakakakakakakakakafafafafafacacadadalacacafafafafafafafacacacabaa +aaabababacacafafafafafafafakakakakakakakakakakafafafafakakakakakakakakakafafafafafamacadadapacacafafafafafafafacacacabaa aaababababacafafafafafafakakakakakakakakakafafafafafafafafafafafafafafafafafafacacacadadadadacafafafafakafafafacacababaa -aaababababacacafafafafafafakakakakakakafafafafafafafafafafafafafafafafafafafacacadadadadadacacafafafakakafafafafacababaa -aaababababacacafafafafafakakakakakafafafafafafafafafafafafafafafafafafafafacacadadadadacacacafafafafakakakafafafacacabaa -aaababababaeacafafafafakakakakakafafafafafafafafafafafafafafafafafafafafacacadadadacacacafafafafafafakakakafafafafacabaa -aaababababacacafafakakakakakakakakafafafafafafafafafacacacacacacacafafacacadadacacacafafafafafafafafakakakafafafafacabaa +aaababababacacafafafafafafakakakakakakafafafafafafafafafafafafafafafafafafafacacadahadahadacacafafafakakafafafafacababaa +aaababababacacafafafafafakakakakakafafafafafafafafafafafafafafafafafafafafacacahadadadacacacafafafafakakakafafafacacabaa +aaababababaeacafafafafakakakakakafafafafafafafafafafafafafafafafafafafafacacadadadamacacafafafafafafakakakafafafafacabaa +aaababababacacafafakakakakakakakakafafafafafafafafafacacacacacacacafafacamadadacacacafafafafafafafafakakakafafafafacabaa aaababababacafafafakakakakakakakakakakafafafafafacacacadadadadadacacacacadadacacafafafafafafafakafakakakafafafafafacabaa -aaabababacacafafafafakakakakakakakafafafafafafacacadadanadadadadadadadadadadacafafafafafafafafakakakakakafafafafafacabaa -aaabababacafafafafafafakakakakakafafafafafafacacadadadadadadanadadadadadadadacafafafafafafafakakakakakakafafafafacacabaa +aaabababacacafafafafakakakakakakakafafafafafafacacadadaqadadadadadadadadadadacafafafafafafafafakakakakakafafafafafacabaa +aaabababacafafafafafafakakakakakafafafafafafacacadadadadadadaqadadadahadadadamafafafafafafafakakakakakakafafafafacacabaa aaabababacafafafafafafakakakakakafafafafafacacadadadadadadadadadadadadadadacacafafafafafafafakakakakakakakakafafacacabaa aaabababacafafafafafafafakakakakafafafafacacadadadadadadadadadadadadadadadadacacafafafafafafakakakakakakakakafafafacabaa aaabababacafafafafafafafakakakafafafafafacadadadadadadadadadadadadadadadadadadacacafafafafafafakakakakakakafafafafacabaa -aaabababacafafafafafafafakakakakakafafafacadadadadadadadaoadadadadadaoadadadadadacacafafafafafafakakakakafafafafafacabaa -aaabababacafafafafafafafakakakakakafafafacadadapadadapadaqarasasasaraqadapadadapadacafafafafafafakakakakafafafafafacabaa -aaabababacafafafafafafafakakakakakakafafacaqaqaqaqaqaqaqaqaqaqataqaqaqaqaqaqaqaqaqaqaqafafafafafakakakakafafafafacacabaa -aaabababacacafafafafafafakakakakakakafafacaqauavawaxayaxawazaqaAaqaBaCaCaCaDaEaFaGaHaqafafafafafakakakakafafafafacacabaa -aaabababacacacafafafafakakakakakakakafapaIaqaJaKaLaKaKaKaMaNaqaMaqaOaPaPaPaQaRaSaTaSaqaUapafafafakakakafafafafafafacabaa -aaabababababacacafafafakakakakakakakafafafaqaVaKaKaKaKaKaMaWaqaXaqaqaqaqaqaqaYaZaqaqaqafafafafafakakakafafafafafafacabaa -aaababababababacafafafakakakakakakakakafafaqbabbbbbcbbbbbdaMbeaMaMbfaMaMaMaMaMbfaMaMaqafafafafafakakakafafafafafafafacaa -aaabababagabababacafafakakakakakakakakapaUaqbgaqaqaqaqaqaqaqaqaqaqaqaqaqaqbhaqaqaqaqaqaUapafafafakakakafafafafafafafacaa -aaababababababacacafafafakakakakakakakakafaqbibjbkblbmbnbobpaqbqbrbsbtbsbubvbhbwbhbxaqafafafafafakakakafafafafafafafacaa -aaababababababacafafafafakakakakakakakakafaqbibibybibibybibiaqbzbAbAbAbAbAbBaqbCaqbDaqafafafafakakakakakafafafafafafacaa -aaababababababacafafafafakakakakakakakakakaqaqaqaqaqaqaqaqaqaqaqaqbEbFbFbFbGaqaqaqaqaqafafafafakakakakafafafafafafafacaa -aaabababababacacafafafakakakakakakakakakakafafafafaIacacadadadadbHadadadadadbHacacafafafafafafakakakakafafafafafafafacaa -aaabababababacafafafafakakakakakakakakakakakakafafapafacacacacacapadadadadadapacafafafafafafakakakakakafafafafafafacacaa +aaabababacafafafafafafafakakakakakafafafacadadadadadadadaradadadadadaradadadadadacacafafafafafafakakakakafafafafafacabaa +aaabababacafafafafafafafakakakakakafafafacadadasadadasadatauavavavauatadasadadasadacafafafafafafakakakakafafafafafacabaa +aaabababacafafafafafafafakakakakakakafafacatatatatatatatatatatawatatatatatatatatatatatafafafafafakakakakafafafafacacabaa +aaabababacacafafafafafafakakakakakakafafacataxayazaAaBaAazaCataDataEaFaFaFaGaHaIaJaKatafafafafafakakakakafafafafacacabaa +aaabababacacacafafafafakakakakakakakafasaLataMaNaOaNaNaNaPaQataPataRaSaSaSaTaUaVaWaVataXasafafafakakakafafafafafafacabaa +aaabababababacacafafafakakakakakakakafafafataYaNaNaNaNaNaPaZatbaatatatatatatbbbcatatatafafafafafakakakafafafafafafacabaa +aaababababababacafafafakakakakakakakakafafatbdbebebfbebebgaPbhaPaPbiaPaPaPaPaPbiaPaPatafafafafafakakakafafafafafafafacaa +aaabababagabababacafafakakakakakakakakasaXatbjatatatatatatatatatatatatatatbkatatatatataXasafafafakakakafafafafafafafacaa +aaababababababacacafafafakakakakakakakakafatblbmbnbobpbqbrbsatbtbubvbwbvbxbybkbzbkbAatafafafafafakakakafafafafafafafacaa +aaababababababacafafafafakakakakakakakakafatblblbBblblbBblblatbCbDbDbDbDbDbEatbFatbGatafafafafakakakakakafafafafafafacaa +aaababababababacafafafafakakakakakakakakakatatatatatatatatatatatatbHbIbIbIbJatatatatatafafafafakakakakafafafafafafafacaa +aaabababababacacafafafakakakakakakakakakakafafafafaLacacadadadadbKadadadadadbKacacafafafafafafakakakakafafafafafafafacaa +aaabababababacafafafafakakakakakakakakakakakakafafasafacacacacacasadadadadadasacafafafafafafakakakakakafafafafafafacacaa aaababababacacafafafafakakakakakakakakakakakakakafafafafafafafacacadadadadadacacafafafafafakakakakakakafafafafafafacabaa aaababababacafafafafafafakakakakakakakakakakakakafafafafafafafafacacacacacacacafafafafafafafakakakakakafafafafafacacabaa aaabababacacafafafafafafakakakakakakakakakakakakakafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafacababaa diff --git a/maps/submaps/surface_submaps/wilderness/MCamp1.dmm b/maps/submaps/surface_submaps/wilderness/MCamp1.dmm index 3033ffdf626..bebe7a2de80 100644 --- a/maps/submaps/surface_submaps/wilderness/MCamp1.dmm +++ b/maps/submaps/surface_submaps/wilderness/MCamp1.dmm @@ -1,53 +1,60 @@ "a" = (/turf/template_noop,/area/template_noop) "b" = (/turf/template_noop,/area/submap/MilitaryCamp1) "c" = (/turf/simulated/floor/outdoors/dirt,/area/submap/MilitaryCamp1) -"d" = (/obj/effect/mine,/turf/template_noop,/area/submap/MilitaryCamp1) +"d" = (/obj/random/landmine,/turf/template_noop,/area/submap/MilitaryCamp1) "e" = (/obj/structure/flora/bush,/turf/template_noop,/area/submap/MilitaryCamp1) "f" = (/obj/effect/decal/cleanable/blood,/turf/template_noop,/area/submap/MilitaryCamp1) -"g" = (/obj/effect/decal/remains,/turf/simulated/floor/outdoors/dirt,/area/submap/MilitaryCamp1) -"h" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/submap/MilitaryCamp1) -"i" = (/obj/item/stack/rods,/turf/template_noop,/area/submap/MilitaryCamp1) -"j" = (/obj/effect/mine,/turf/simulated/floor/outdoors/dirt,/area/submap/MilitaryCamp1) -"k" = (/turf/simulated/wall,/area/submap/MilitaryCamp1) -"l" = (/turf/simulated/floor,/area/submap/MilitaryCamp1) -"m" = (/obj/item/weapon/material/shard,/turf/template_noop,/area/submap/MilitaryCamp1) -"n" = (/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/simulated/floor,/area/submap/MilitaryCamp1) -"o" = (/obj/structure/girder,/turf/simulated/floor,/area/submap/MilitaryCamp1) -"p" = (/obj/machinery/computer/communications,/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/simulated/floor,/area/submap/MilitaryCamp1) -"q" = (/obj/structure/table/standard,/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/simulated/floor,/area/submap/MilitaryCamp1) -"r" = (/obj/effect/mine,/turf/simulated/floor,/area/submap/MilitaryCamp1) -"s" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/submap/MilitaryCamp1) -"t" = (/obj/machinery/computer/security,/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/simulated/floor,/area/submap/MilitaryCamp1) -"u" = (/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/simulated/floor,/area/submap/MilitaryCamp1) -"v" = (/obj/machinery/door/airlock,/turf/simulated/floor,/area/submap/MilitaryCamp1) -"w" = (/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/simulated/floor,/area/submap/MilitaryCamp1) -"x" = (/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/template_noop,/area/submap/MilitaryCamp1) -"y" = (/obj/structure/table,/turf/simulated/floor,/area/submap/MilitaryCamp1) -"z" = (/obj/structure/table/standard,/obj/random/firstaid,/turf/simulated/floor,/area/submap/MilitaryCamp1) -"A" = (/obj/machinery/door/airlock,/obj/effect/mine,/turf/simulated/floor,/area/submap/MilitaryCamp1) -"B" = (/obj/structure/flora/tree/dead,/turf/template_noop,/area/submap/MilitaryCamp1) -"C" = (/obj/structure/table/standard,/obj/item/weapon/gun/projectile/automatic/c20r,/turf/simulated/floor,/area/submap/MilitaryCamp1) -"D" = (/obj/structure/table/standard,/obj/item/weapon/gun/energy/gun,/turf/simulated/floor,/area/submap/MilitaryCamp1) +"g" = (/obj/random/landmine,/turf/simulated/floor/outdoors/dirt,/area/submap/MilitaryCamp1) +"h" = (/obj/effect/decal/remains,/turf/simulated/floor/outdoors/dirt,/area/submap/MilitaryCamp1) +"i" = (/obj/effect/mine,/turf/template_noop,/area/submap/MilitaryCamp1) +"j" = (/obj/effect/decal/remains,/obj/random/landmine,/turf/simulated/floor/outdoors/dirt,/area/submap/MilitaryCamp1) +"k" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/submap/MilitaryCamp1) +"l" = (/obj/item/stack/rods,/turf/template_noop,/area/submap/MilitaryCamp1) +"m" = (/turf/simulated/wall,/area/submap/MilitaryCamp1) +"n" = (/obj/random/landmine,/turf/simulated/floor,/area/submap/MilitaryCamp1) +"o" = (/turf/simulated/floor,/area/submap/MilitaryCamp1) +"p" = (/obj/item/weapon/material/shard,/turf/template_noop,/area/submap/MilitaryCamp1) +"q" = (/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/simulated/floor,/area/submap/MilitaryCamp1) +"r" = (/obj/structure/girder,/turf/simulated/floor,/area/submap/MilitaryCamp1) +"s" = (/obj/machinery/computer/communications,/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/simulated/floor,/area/submap/MilitaryCamp1) +"t" = (/obj/structure/table/standard,/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/simulated/floor,/area/submap/MilitaryCamp1) +"u" = (/obj/effect/mine,/obj/random/landmine,/turf/simulated/floor,/area/submap/MilitaryCamp1) +"v" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/submap/MilitaryCamp1) +"w" = (/obj/machinery/computer/security,/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/simulated/floor,/area/submap/MilitaryCamp1) +"x" = (/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/simulated/floor,/area/submap/MilitaryCamp1) +"y" = (/obj/item/weapon/material/shard,/obj/random/landmine,/turf/template_noop,/area/submap/MilitaryCamp1) +"z" = (/obj/machinery/door/airlock,/turf/simulated/floor,/area/submap/MilitaryCamp1) +"A" = (/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/simulated/floor,/area/submap/MilitaryCamp1) +"B" = (/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/template_noop,/area/submap/MilitaryCamp1) +"C" = (/obj/structure/table,/turf/simulated/floor,/area/submap/MilitaryCamp1) +"D" = (/obj/structure/table/standard,/obj/random/firstaid,/turf/simulated/floor,/area/submap/MilitaryCamp1) +"E" = (/obj/machinery/door/airlock,/obj/effect/mine,/turf/simulated/floor,/area/submap/MilitaryCamp1) +"F" = (/obj/structure/flora/tree/dead,/turf/template_noop,/area/submap/MilitaryCamp1) +"G" = (/obj/random/landmine,/turf/template_noop,/area/template_noop) +"H" = (/obj/effect/decal/cleanable/dirt,/obj/random/landmine,/turf/simulated/floor,/area/submap/MilitaryCamp1) +"I" = (/obj/structure/table/standard,/obj/item/weapon/gun/projectile/automatic/c20r,/turf/simulated/floor,/area/submap/MilitaryCamp1) +"J" = (/obj/structure/table/standard,/obj/item/weapon/gun/energy/gun,/turf/simulated/floor,/area/submap/MilitaryCamp1) +"K" = (/obj/effect/decal/cleanable/blood,/obj/random/landmine,/turf/template_noop,/area/submap/MilitaryCamp1) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaa abbcbdbefdbbbbbbbbba -acgcbbbbbbbfdbcgbbba -abccbbdbbhibbbccjhba -abhbbikkllkklkmcbbba -abbbbkkkllkkkkkbdbda -abbdkknllokpqnkkbeba -abbbkknorsktuukkbbba -abbmkkvkkwkkkvkoxdba -abbblknllslnwskkbbba -afdblknllyznsskkbdba -abbbokvAkkkkvvkobBba -abbxkknlosssnnkkbbba -aBbbkkCDkllnnnkkmbfa -abbebkkkkvlkkkkbdbba -abdbbbkkkslkkkbccdba -abcbbbbkkbmkkbjcbbba -acgcdbbbddbibbcghbba -abccebdbhfbbdccbbbba +aghcdbbbbbbfibcjbbba +abccbbdbbklbbbccgkba +adkbblmmnommnmpcbbba +abbbbmmmonmmmmmbdbda +abbdmmqoormstqmmbeba +abbbmmqruvmwxxmmbbda +abbymmzmmAmmmzmrBdba +abbbomqoovoqAvmmbbba +afdbomqooCDqvvmmbida +abbbrmzEmmmmzzmrbFba +GbbBmmqorvHvqqmmbbba +aFbbmmIJmooqqqmmpbKa +abbebmmmmzommmmbibba +abddbbmmmvommmbcciba +abcbbdbmmbymmbgcbbba +acjcdbbbidblbdcjkbba +abccebdbkfbbdccbbbba aaaaaaaaaaaaaaaaaaaa "} diff --git a/polaris.dme b/polaris.dme index aa7eb48930f..e026cf9978b 100644 --- a/polaris.dme +++ b/polaris.dme @@ -1046,6 +1046,7 @@ #include "code\game\objects\structures\safe.dm" #include "code\game\objects\structures\signs.dm" #include "code\game\objects\structures\simple_doors.dm" +#include "code\game\objects\structures\snowman.dm" #include "code\game\objects\structures\tank_dispenser.dm" #include "code\game\objects\structures\target_stake.dm" #include "code\game\objects\structures\transit_tubes.dm"