diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 79e7beb87c..9bf89b27bd 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -201,20 +201,22 @@ L.resist() if("mov_intent") - if(iscarbon(usr)) - var/mob/living/carbon/C = usr - if(C.legcuffed) - C << "You are legcuffed! You cannot run until you get [C.legcuffed] removed!" - C.m_intent = "walk" //Just incase - C.hud_used.move_intent.icon_state = "walking" - return 1 - switch(usr.m_intent) + if(isliving(usr)) + if(iscarbon(usr)) + var/mob/living/carbon/C = usr + if(C.legcuffed) + C << "You are legcuffed! You cannot run until you get [C.legcuffed] removed!" + C.m_intent = "walk" //Just incase + C.hud_used.move_intent.icon_state = "walking" + return 1 + var/mob/living/L = usr + switch(L.m_intent) if("run") - usr.m_intent = "walk" - usr.hud_used.move_intent.icon_state = "walking" + L.m_intent = "walk" + L.hud_used.move_intent.icon_state = "walking" if("walk") - usr.m_intent = "run" - usr.hud_used.move_intent.icon_state = "running" + L.m_intent = "run" + L.hud_used.move_intent.icon_state = "running" if("m_intent") if(!usr.m_int) switch(usr.m_intent) @@ -485,8 +487,6 @@ if(isAI(usr)) var/mob/living/silicon/ai/AI = usr AI.view_images() - else - return 0 return 1 /obj/screen/inventory/Click() diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index a80ff05eac..e2a4c28c6b 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -73,27 +73,38 @@ Animals */ /mob/living/simple_animal/UnarmedAttack(var/atom/A, var/proximity) - if(!..()) - return - - if(prob(spattack_prob)) - if(spattack_min_range <= 1) - target_mob = A - SpecialAtkTarget() - target_mob = null - return - - if(melee_damage_upper == 0 && istype(A,/mob/living)) - custom_emote(1,"[friendly] [A]!") + if(!(. = ..())) return setClickCooldown(get_attack_speed()) - if(isliving(A)) - target_mob = A - PunchTarget() - target_mob = null - else - A.attack_generic(src, rand(melee_damage_lower, melee_damage_upper), attacktext) + + if(has_hands && istype(A,/obj) && a_intent != I_HURT) + var/obj/O = A + return O.attack_hand(src) + + switch(a_intent) + if(I_HELP) + if(isliving(A)) + custom_emote(1,"[pick(friendly)] [A]!") + + if(I_HURT) + if(prob(spattack_prob)) + if(spattack_min_range <= 1) + SpecialAtkTarget() + + else if(melee_damage_upper == 0 && istype(A,/mob/living)) + custom_emote(1,"[pick(friendly)] [A]!") + + else + DoPunch(A) + + if(I_GRAB) + if(has_hands) + A.attack_hand(src) + + if(I_DISARM) + if(has_hands) + A.attack_hand(src) /mob/living/simple_animal/RangedAttack(var/atom/A) setClickCooldown(get_attack_speed()) diff --git a/code/datums/supplypacks/hospitality.dm b/code/datums/supplypacks/hospitality.dm index 83d46edde1..f3de751f23 100644 --- a/code/datums/supplypacks/hospitality.dm +++ b/code/datums/supplypacks/hospitality.dm @@ -61,3 +61,17 @@ cost = 15 containertype = /obj/structure/closet/crate/freezer containername = "Pizza crate" + +/datum/supply_packs/hospitality/gifts + name = "Gift crate" + contains = list( + /obj/item/toy/bouquet = 3, + /obj/item/weapon/storage/fancy/heartbox = 2, + /obj/item/weapon/paper/card/smile, + /obj/item/weapon/paper/card/heart, + /obj/item/weapon/paper/card/cat, + /obj/item/weapon/paper/card/flower + ) + cost = 10 + containertype = /obj/structure/closet/crate + containername = "crate of gifts" \ No newline at end of file diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 734b09ae4f..e9d93b48a3 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -52,7 +52,11 @@ if (danger_level == 0) atmosphere_alarm.clearAlarm(src, alarm_source) else - atmosphere_alarm.triggerAlarm(src, alarm_source, severity = danger_level) + var/obj/machinery/alarm/atmosalarm = alarm_source //maybe other things can trigger these, who knows + if(istype(atmosalarm)) + atmosphere_alarm.triggerAlarm(src, alarm_source, severity = danger_level, hidden = atmosalarm.alarms_hidden) + else + atmosphere_alarm.triggerAlarm(src, alarm_source, severity = danger_level) //Check all the alarms before lowering atmosalm. Raising is perfectly fine. for (var/obj/machinery/alarm/AA in src) diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index 28557928be..775ef6a7cd 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -81,6 +81,8 @@ var/report_danger_level = 1 + var/alarms_hidden = FALSE //If the alarms from this machine are visible on consoles + /obj/machinery/alarm/nobreach breach_detection = 0 @@ -88,6 +90,9 @@ report_danger_level = 0 breach_detection = 0 +/obj/machinery/alarm/alarms_hidden + alarms_hidden = TRUE + /obj/machinery/alarm/server/New() ..() req_access = list(access_rd, access_atmospherics, access_engine_equip) @@ -812,6 +817,10 @@ FIRE ALARM panel_open = 0 var/seclevel circuit = /obj/item/weapon/circuitboard/firealarm + var/alarms_hidden = FALSE //If the alarms from this machine are visible on consoles + +/obj/machinery/firealarm/alarms_hidden + alarms_hidden = TRUE /obj/machinery/firealarm/update_icon() overlays.Cut() @@ -980,7 +989,7 @@ FIRE ALARM return var/area/area = get_area(src) for(var/obj/machinery/firealarm/FA in area) - fire_alarm.triggerAlarm(loc, FA, duration) + fire_alarm.triggerAlarm(loc, FA, duration, hidden = alarms_hidden) update_icon() //playsound(src.loc, 'sound/ambience/signal.ogg', 75, 0) return diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index d546ef4676..df2387e71f 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -27,7 +27,8 @@ /obj/item/toy/waterflower = 1, /obj/random/action_figure = 1, /obj/random/plushie = 1, - /obj/item/toy/cultsword = 1 + /obj/item/toy/cultsword = 1, + /obj/item/toy/bouquet/fake = 1 ) /obj/machinery/computer/arcade/New() diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm index 784eadd3b9..ff680ab468 100644 --- a/code/game/objects/items/stacks/rods.dm +++ b/code/game/objects/items/stacks/rods.dm @@ -36,7 +36,7 @@ icon_state = "rods" var/global/list/datum/stack_recipe/rods_recipes = list( \ - new/datum/stack_recipe("grille", /obj/structure/grille, 2, time = 10, one_per_turf = 1, on_floor = 1), + new/datum/stack_recipe("grille", /obj/structure/grille, 2, time = 10, one_per_turf = 1, on_floor = 0), new/datum/stack_recipe("catwalk", /obj/structure/catwalk, 2, time = 80, one_per_turf = 1, on_floor = 1)) /obj/item/stack/rods/attackby(obj/item/W as obj, mob/user as mob) @@ -44,7 +44,7 @@ var/global/list/datum/stack_recipe/rods_recipes = list( \ var/obj/item/weapon/weldingtool/WT = W if(get_amount() < 2) - user << "You need at least two rods to do this." + to_chat(user, "You need at least two rods to do this.") return if(WT.remove_fuel(0,user)) @@ -91,15 +91,15 @@ var/global/list/datum/stack_recipe/rods_recipes = list( \ else if(!in_use) if(get_amount() < 2) - user << "You need at least two rods to do this." + to_chat(user, "You need at least two rods to do this.") return - usr << "Assembling grille..." + to_chat(usr, "Assembling grille...") in_use = 1 if (!do_after(usr, 10)) in_use = 0 return var/obj/structure/grille/F = new /obj/structure/grille/ ( usr.loc ) - usr << "You assemble a grille" + to_chat(usr, "You assemble a grille") in_use = 0 F.add_fingerprint(usr) use(2) diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 62f02816ed..c86993fa31 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -16,6 +16,7 @@ * Action figures * Plushies * Toy cult sword + * Bouquets */ @@ -872,6 +873,19 @@ w_class = ITEMSIZE_LARGE attack_verb = list("attacked", "slashed", "stabbed", "poked") +//Flowers fake & real + +/obj/item/toy/bouquet + name = "bouquet" + desc = "A lovely bouquet of flowers. Smells nice!" + icon = 'icons/obj/items.dmi' + icon_state = "bouquet" + w_class = ITEMSIZE_SMALL + +/obj/item/toy/bouquet/fake + name = "plastic bouquet" + desc = "A cheap plastic bouquet of flowers. Smells like cheap, toxic plastic." + /* NYET. /obj/item/weapon/toddler icon_state = "toddler" diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm index 3df73b9793..8cc10444ef 100644 --- a/code/game/objects/items/weapons/storage/fancy.dm +++ b/code/game/objects/items/weapons/storage/fancy.dm @@ -10,6 +10,8 @@ * Candle Box * Crayon Box * Cigarette Box + * Vial Box + * Box of Chocolates */ /obj/item/weapon/storage/fancy/ @@ -313,3 +315,34 @@ /obj/item/weapon/storage/lockbox/vials/attackby(obj/item/weapon/W as obj, mob/user as mob) ..() update_icon() + +/* + * Box of Chocolates/Heart Box + */ + +/obj/item/weapon/storage/fancy/heartbox + icon_state = "heartbox" + name = "box of chocolates" + var/startswith = 6 + max_storage_space = ITEMSIZE_COST_SMALL * 6 + can_hold = list( + /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece, + /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/white, + /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/truffle + ) + +/obj/item/weapon/storage/fancy/heartbox/New() + ..() + new /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece(src) + new /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece(src) + new /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece(src) + new /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/white(src) + new /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/white(src) + new /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/truffle(src) + update_icon() + return + +/obj/item/weapon/storage/fancy/heartbox/update_icon(var/itemremoved = 0) + if (contents.len == 0) + icon_state = "heartbox_empty" + return \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm index eb29aaff41..c95f0ac49e 100644 --- a/code/game/objects/items/weapons/storage/storage.dm +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -52,7 +52,7 @@ if(!canremove) return - if (ishuman(usr) || issmall(usr)) //so monkeys can take off their backpacks -- Urist + if (ishuman(usr) || issmall(usr) || isanimal(usr)) //so monkeys can take off their backpacks -- Urist if (istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech. why? return diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index aec6ce94c1..6fea7e6ece 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -104,7 +104,7 @@ playsound(src, W.usesound, 100, 1) anchored = !anchored user.visible_message("[user] [anchored ? "fastens" : "unfastens"] the grille.", \ - "You have [anchored ? "fastened the grille to" : "unfastened the grill from"] the floor.") + "You have [anchored ? "fastened the grille to" : "unfastened the grille from"] the floor.") return //window placing begin //TODO CONVERT PROPERLY TO MATERIAL DATUM diff --git a/code/modules/alarm/alarm.dm b/code/modules/alarm/alarm.dm index d0a6a8be4c..26ffdade04 100644 --- a/code/modules/alarm/alarm.dm +++ b/code/modules/alarm/alarm.dm @@ -23,12 +23,13 @@ var/area/last_name //The last acquired name, used should origin be lost var/area/last_camera_area //The last area in which cameras where fetched, used to see if the camera list should be updated. var/end_time //Used to set when this alarm should clear, in case the origin is lost. + var/hidden = FALSE //If this alarm can be seen from consoles or other things. -/datum/alarm/New(var/atom/origin, var/atom/source, var/duration, var/severity) +/datum/alarm/New(var/atom/origin, var/atom/source, var/duration, var/severity, var/hidden) src.origin = origin cameras() // Sets up both cameras and last alarm area. - set_source_data(source, duration, severity) + set_source_data(source, duration, severity, hidden) /datum/alarm/proc/process() // Has origin gone missing? @@ -43,17 +44,19 @@ AS.duration = 0 AS.end_time = world.time + ALARM_RESET_DELAY -/datum/alarm/proc/set_source_data(var/atom/source, var/duration, var/severity) +/datum/alarm/proc/set_source_data(var/atom/source, var/duration, var/severity, var/hidden) var/datum/alarm_source/AS = sources_assoc[source] if(!AS) AS = new/datum/alarm_source(source) sources += AS sources_assoc[source] = AS + src.hidden = hidden // Currently only non-0 durations can be altered (normal alarms VS EMP blasts) if(AS.duration) duration = SecondsToTicks(duration) AS.duration = duration AS.severity = severity + src.hidden = min(src.hidden, hidden) /datum/alarm/proc/clear(var/source) var/datum/alarm_source/AS = sources_assoc[source] diff --git a/code/modules/alarm/alarm_handler.dm b/code/modules/alarm/alarm_handler.dm index afa45d7649..a07ca8bd3b 100644 --- a/code/modules/alarm/alarm_handler.dm +++ b/code/modules/alarm/alarm_handler.dm @@ -12,7 +12,7 @@ A.process() check_alarm_cleared(A) -/datum/alarm_handler/proc/triggerAlarm(var/atom/origin, var/atom/source, var/duration = 0, var/severity = 1) +/datum/alarm_handler/proc/triggerAlarm(var/atom/origin, var/atom/source, var/duration = 0, var/severity = 1, var/hidden = 0) var/new_alarm //Proper origin and source mandatory if(!(origin && source)) @@ -23,9 +23,9 @@ //see if there is already an alarm of this origin var/datum/alarm/existing = alarms_assoc[origin] if(existing) - existing.set_source_data(source, duration, severity) + existing.set_source_data(source, duration, severity, hidden) else - existing = new/datum/alarm(origin, source, duration, severity) + existing = new/datum/alarm(origin, source, duration, severity, hidden) new_alarm = 1 alarms |= existing @@ -48,10 +48,10 @@ return check_alarm_cleared(existing) /datum/alarm_handler/proc/major_alarms() - return alarms + return visible_alarms() /datum/alarm_handler/proc/minor_alarms() - return alarms + return visible_alarms() /datum/alarm_handler/proc/check_alarm_cleared(var/datum/alarm/alarm) if ((alarm.end_time && world.time > alarm.end_time) || !alarm.sources.len) @@ -63,7 +63,7 @@ /datum/alarm_handler/proc/on_alarm_change(var/datum/alarm/alarm, var/was_raised) for(var/obj/machinery/camera/C in alarm.cameras()) - if(was_raised) + if(was_raised && !alarm.hidden) C.add_network(category) else C.remove_network(category) @@ -95,3 +95,10 @@ /datum/alarm_handler/proc/notify_listeners(var/alarm, var/was_raised) for(var/listener in listeners) call(listener, listeners[listener])(src, alarm, was_raised) + +/datum/alarm_handler/proc/visible_alarms() + var/list/visible_alarms = new() + for(var/datum/alarm/A in alarms) + if(!A.hidden) + visible_alarms.Add(A) + return visible_alarms \ No newline at end of file diff --git a/code/modules/alarm/atmosphere_alarm.dm b/code/modules/alarm/atmosphere_alarm.dm index 9751319111..94f2e91e05 100644 --- a/code/modules/alarm/atmosphere_alarm.dm +++ b/code/modules/alarm/atmosphere_alarm.dm @@ -1,19 +1,16 @@ /datum/alarm_handler/atmosphere category = "Atmosphere Alarms" -/datum/alarm_handler/atmosphere/triggerAlarm(var/atom/origin, var/atom/source, var/duration = 0, var/severity = 1) - ..() - /datum/alarm_handler/atmosphere/major_alarms() var/list/major_alarms = new() - for(var/datum/alarm/A in alarms) + for(var/datum/alarm/A in visible_alarms()) if(A.max_severity() > 1) major_alarms.Add(A) return major_alarms /datum/alarm_handler/atmosphere/minor_alarms() var/list/minor_alarms = new() - for(var/datum/alarm/A in alarms) + for(var/datum/alarm/A in visible_alarms()) if(A.max_severity() == 1) minor_alarms.Add(A) return minor_alarms diff --git a/code/modules/client/preference_setup/loadout/loadout_suit.dm b/code/modules/client/preference_setup/loadout/loadout_suit.dm index 0208c234d4..76bbebcc3f 100644 --- a/code/modules/client/preference_setup/loadout/loadout_suit.dm +++ b/code/modules/client/preference_setup/loadout/loadout_suit.dm @@ -181,27 +181,22 @@ /datum/gear/suit/roles/poncho/security display_name = "poncho, security" path = /obj/item/clothing/accessory/poncho/roles/security - allowed_roles = list("Head of Security", "Warden", "Detective", "Security Officer") /datum/gear/suit/roles/poncho/medical display_name = "poncho, medical" path = /obj/item/clothing/accessory/poncho/roles/medical - allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist", "Psychiatrist") /datum/gear/suit/roles/poncho/engineering display_name = "poncho, engineering" path = /obj/item/clothing/accessory/poncho/roles/engineering - allowed_roles = list("Chief Engineer","Atmospheric Technician", "Station Engineer") /datum/gear/suit/roles/poncho/science display_name = "poncho, science" path = /obj/item/clothing/accessory/poncho/roles/science - allowed_roles = list("Research Director","Scientist", "Roboticist", "Xenobiologist") /datum/gear/suit/roles/poncho/cargo display_name = "poncho, cargo" path = /obj/item/clothing/accessory/poncho/roles/cargo - allowed_roles = list("Quartermaster","Cargo Technician") /datum/gear/suit/roles/poncho/cloak/hos display_name = "cloak, head of security" diff --git a/code/modules/lore_codex/codex.dm b/code/modules/lore_codex/codex.dm index b440189021..67027beb74 100644 --- a/code/modules/lore_codex/codex.dm +++ b/code/modules/lore_codex/codex.dm @@ -28,6 +28,7 @@ name = "Daedalus Pocket Newscaster" desc = "A regularly-updating compendium of articles on current events. Essential for new arrivals in the Vir system and anyone interested in politics." icon_state = "newscodex" + w_class = ITEMSIZE_SMALL root_type = /datum/lore/codex/category/main_news // Combines SOP/Regs/Law @@ -37,4 +38,4 @@ Internal Affairs." icon_state = "corp_regs" root_type = /datum/lore/codex/category/main_corp_regs - throwforce = 5 // Throw the book at 'em. \ No newline at end of file + throwforce = 5 // Throw the book at 'em. diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 7de4ffc901..0c42876b42 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -137,33 +137,6 @@ return shock_damage -/mob/proc/swap_hand() - return - -/mob/living/carbon/swap_hand() - src.hand = !( src.hand ) - if(hud_used.l_hand_hud_object && hud_used.r_hand_hud_object) - if(hand) //This being 1 means the left hand is in use - hud_used.l_hand_hud_object.icon_state = "l_hand_active" - hud_used.r_hand_hud_object.icon_state = "r_hand_inactive" - else - hud_used.l_hand_hud_object.icon_state = "l_hand_inactive" - hud_used.r_hand_hud_object.icon_state = "r_hand_active" - return - -/mob/living/carbon/proc/activate_hand(var/selhand) //0 or "r" or "right" for right hand; 1 or "l" or "left" for left hand. - - if(istext(selhand)) - selhand = lowertext(selhand) - - if(selhand == "right" || selhand == "r") - selhand = 0 - if(selhand == "left" || selhand == "l") - selhand = 1 - - if(selhand != src.hand) - swap_hand() - /mob/living/carbon/proc/help_shake_act(mob/living/carbon/M) if (src.health >= config.health_threshold_crit) if(src == M && istype(src, /mob/living/carbon/human)) @@ -320,62 +293,6 @@ update_icons_layers(FALSE) //apply the now updated overlays to the mob update_icons_body() -//Throwing stuff -/mob/proc/throw_item(atom/target) - return - -/mob/living/carbon/throw_item(atom/target) - src.throw_mode_off() - if(usr.stat || !target) - return - if(target.type == /obj/screen) return - - var/atom/movable/item = src.get_active_hand() - - if(!item) return - - var/throw_range = item.throw_range - if (istype(item, /obj/item/weapon/grab)) - var/obj/item/weapon/grab/G = item - item = G.throw_held() //throw the person instead of the grab - if(ismob(item)) - var/mob/M = item - - //limit throw range by relative mob size - throw_range = round(M.throw_range * min(src.mob_size/M.mob_size, 1)) - - var/turf/start_T = get_turf(loc) //Get the start and target tile for the descriptors - var/turf/end_T = get_turf(target) - if(start_T && end_T) - var/start_T_descriptor = "tile at [start_T.x], [start_T.y], [start_T.z] in area [get_area(start_T)]" - var/end_T_descriptor = "tile at [end_T.x], [end_T.y], [end_T.z] in area [get_area(end_T)]" - - M.attack_log += text("\[[time_stamp()]\] Has been thrown by [usr.name] ([usr.ckey]) from [start_T_descriptor] with the target [end_T_descriptor]") - usr.attack_log += text("\[[time_stamp()]\] Has thrown [M.name] ([M.ckey]) from [start_T_descriptor] with the target [end_T_descriptor]") - msg_admin_attack("[usr.name] ([usr.ckey]) has thrown [M.name] ([M.ckey]) from [start_T_descriptor] with the target [end_T_descriptor] (JMP)") - - src.drop_from_inventory(item) - if(!item || !isturf(item.loc)) - return - - //actually throw it! - src.visible_message("[src] has thrown [item].") - - if(!src.lastarea) - src.lastarea = get_area(src.loc) - if((istype(src.loc, /turf/space)) || (src.lastarea.has_gravity == 0)) - src.inertia_dir = get_dir(target, src) - step(src, inertia_dir) - - -/* - if(istype(src.loc, /turf/space) || (src.flags & NOGRAV)) //they're in space, move em one space in the opposite direction - src.inertia_dir = get_dir(target, src) - step(src, inertia_dir) -*/ - - - item.throw_at(target, throw_range, item.throw_speed, src) /mob/living/carbon/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) ..() diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index 183b9a59e1..2e4ff84563 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -8,7 +8,7 @@ return u_attack return null -/mob/living/carbon/human/attack_hand(mob/living/carbon/M as mob) +/mob/living/carbon/human/attack_hand(mob/living/M as mob) var/datum/gender/TT = gender_datums[M.get_visible_gender()] var/mob/living/carbon/human/H = M if(istype(H)) @@ -18,7 +18,8 @@ if(!temp || !temp.is_usable()) H << "You can't use your hand." return - H.break_cloak() + M.break_cloak() + ..() // Should this all be in Touch()? @@ -64,7 +65,8 @@ return if(istype(M,/mob/living/carbon)) - M.spread_disease_to(src, "Contact") + var/mob/living/carbon/C = M + C.spread_disease_to(src, "Contact") switch(M.a_intent) if(I_HELP) diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 5e3d9e59b3..700e55dcec 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -189,7 +189,7 @@ volume *= 0.5 else if(shoes) var/obj/item/clothing/shoes/feet = shoes - if(feet) + if(istype(feet)) volume *= feet.step_volume_mod if(!has_organ(BP_L_FOOT) && !has_organ(BP_R_FOOT)) diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index 5faa78f10d..6b02734a7e 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -207,7 +207,7 @@ return TRUE else if(glow_toggle) - set_light(2, l_color = glow_color) //2 is PDA brightness, so neutral in terms of balance + set_light(glow_range, glow_intensity, glow_color) else set_light(0) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 8399c224ce..6c35871ab9 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -1085,3 +1085,80 @@ default behaviour is: else // No colors, so remove the client's color. animate(client, color = null, time = 10) + +/mob/living/swap_hand() + src.hand = !( src.hand ) + if(hud_used.l_hand_hud_object && hud_used.r_hand_hud_object) + if(hand) //This being 1 means the left hand is in use + hud_used.l_hand_hud_object.icon_state = "l_hand_active" + hud_used.r_hand_hud_object.icon_state = "r_hand_inactive" + else + hud_used.l_hand_hud_object.icon_state = "l_hand_inactive" + hud_used.r_hand_hud_object.icon_state = "r_hand_active" + return + +/mob/living/proc/activate_hand(var/selhand) //0 or "r" or "right" for right hand; 1 or "l" or "left" for left hand. + + if(istext(selhand)) + selhand = lowertext(selhand) + + if(selhand == "right" || selhand == "r") + selhand = 0 + if(selhand == "left" || selhand == "l") + selhand = 1 + + if(selhand != src.hand) + swap_hand() + +/mob/living/throw_item(atom/target) + src.throw_mode_off() + if(usr.stat || !target) + return + if(target.type == /obj/screen) return + + var/atom/movable/item = src.get_active_hand() + + if(!item) return + + var/throw_range = item.throw_range + if (istype(item, /obj/item/weapon/grab)) + var/obj/item/weapon/grab/G = item + item = G.throw_held() //throw the person instead of the grab + if(ismob(item)) + var/mob/M = item + + //limit throw range by relative mob size + throw_range = round(M.throw_range * min(src.mob_size/M.mob_size, 1)) + + var/turf/start_T = get_turf(loc) //Get the start and target tile for the descriptors + var/turf/end_T = get_turf(target) + if(start_T && end_T) + var/start_T_descriptor = "tile at [start_T.x], [start_T.y], [start_T.z] in area [get_area(start_T)]" + var/end_T_descriptor = "tile at [end_T.x], [end_T.y], [end_T.z] in area [get_area(end_T)]" + + M.attack_log += text("\[[time_stamp()]\] Has been thrown by [usr.name] ([usr.ckey]) from [start_T_descriptor] with the target [end_T_descriptor]") + usr.attack_log += text("\[[time_stamp()]\] Has thrown [M.name] ([M.ckey]) from [start_T_descriptor] with the target [end_T_descriptor]") + msg_admin_attack("[usr.name] ([usr.ckey]) has thrown [M.name] ([M.ckey]) from [start_T_descriptor] with the target [end_T_descriptor] (JMP)") + + src.drop_from_inventory(item) + if(!item || !isturf(item.loc)) + return + + //actually throw it! + src.visible_message("[src] has thrown [item].") + + if(!src.lastarea) + src.lastarea = get_area(src.loc) + if((istype(src.loc, /turf/space)) || (src.lastarea.has_gravity == 0)) + src.inertia_dir = get_dir(target, src) + step(src, inertia_dir) + + +/* + if(istype(src.loc, /turf/space) || (src.flags & NOGRAV)) //they're in space, move em one space in the opposite direction + src.inertia_dir = get_dir(target, src) + step(src, inertia_dir) +*/ + + + item.throw_at(target, throw_range, item.throw_speed, src) diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index a7f85be9a8..b36cd29d21 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -47,8 +47,10 @@ var/evasion = 0 // Makes attacks harder to land. Negative numbers increase hit chance. var/force_max_speed = 0 // If 1, the mob runs extremely fast and cannot be slowed. - + var/image/dsoverlay = null //Overlay used for darksight eye adjustments var/glow_toggle = 0 // If they're glowing! + var/glow_range = 2 + var/glow_intensity = null var/glow_color = "#FFFFFF" // The color they're glowing! diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 689d27dce8..09321af981 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -322,6 +322,8 @@ /mob/living/silicon/proc/receive_alarm(var/datum/alarm_handler/alarm_handler, var/datum/alarm/alarm, was_raised) if(!next_alarm_notice) next_alarm_notice = world.time + SecondsToTicks(10) + if(alarm.hidden) + return var/list/alarms = queued_alarms[alarm_handler] if(was_raised) diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 13ee25a50a..d59bbc6d86 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -16,6 +16,12 @@ //Settings for played mobs var/show_stat_health = 1 // Does the percentage health show in the stat panel for the mob var/ai_inactive = 0 // Set to 1 to turn off most AI actions + var/has_hands = 0 // Set to 1 to enable the use of hands and the hands hud + var/list/hud_gears // Slots to show on the hud (typically none) + var/ui_icons // Icon file path to use for the HUD, otherwise generic icons are used + var/r_hand_sprite // If they have hands, + var/l_hand_sprite // they could use some icons. + var/player_msg // Message to print to players about 'how' to play this mob on login. //Mob icon/appearance settings var/icon_living = "" // The iconstate if we're alive, required @@ -71,7 +77,7 @@ var/cold_damage_per_tick = 2 // Same as heat_damage_per_tick, only if the bodytemperature it's lower than minbodytemp var/fire_alert = 0 // 0 = fine, 1 = hot, 2 = cold - var/min_oxy = 5 // Oxygen in moles, minimum, 0 is 'no minimum + var/min_oxy = 5 // Oxygen in moles, minimum, 0 is 'no minimum' var/max_oxy = 0 // Oxygen in moles, maximum, 0 is 'no maximum' var/min_tox = 0 // Phoron min var/max_tox = 1 // Phoron max @@ -170,6 +176,7 @@ home_turf = get_turf(src) path_overlay = new(path_icon,path_icon_state) move_to_delay = max(2,move_to_delay) //Protection against people coding things incorrectly and A* pathing 100% of the time + maxHealth = health for(var/L in has_langs) languages |= all_languages[L] @@ -208,21 +215,17 @@ //Client attached /mob/living/simple_animal/Login() - if(src && src.client) - src.client.screen = list() - src.client.screen += src.client.void - ai_inactive = 1 - handle_stance(STANCE_IDLE) - LoseTarget() - src.client << "Mob AI disabled while you are controlling the mob." - ..() + . = ..() + ai_inactive = 1 + handle_stance(STANCE_IDLE) + LoseTarget() + to_chat(src,"Mob AI disabled while you are controlling the mob.
You are \the [src]. [player_msg]") //Client detatched /mob/living/simple_animal/Logout() - if(src && !src.client) - spawn(15 SECONDS) //15 seconds to get back into the mob before it goes wild - if(src && !src.client) - ai_inactive = initial(ai_inactive) //So if they never have an AI, they stay that way. + spawn(15 SECONDS) //15 seconds to get back into the mob before it goes wild + if(src && !src.client) + ai_inactive = initial(ai_inactive) //So if they never have an AI, they stay that way. ..() //For debug purposes! @@ -242,23 +245,74 @@ if(health > getMaxHealth()) health = getMaxHealth() + //Update our hud if we have one + if(healths) + if(stat != DEAD) + var/heal_per = (health / getMaxHealth()) * 100 + switch(heal_per) + if(100 to INFINITY) + healths.icon_state = "health0" + if(80 to 100) + healths.icon_state = "health1" + if(60 to 80) + healths.icon_state = "health2" + if(40 to 60) + healths.icon_state = "health3" + if(20 to 40) + healths.icon_state = "health4" + if(0 to 20) + healths.icon_state = "health5" + else + healths.icon_state = "health6" + else + healths.icon_state = "health7" + + //Updates the nutrition while we're here + if(nutrition_icon) + var/food_per = (nutrition / initial(nutrition)) * 100 + switch(food_per) + if(90 to INFINITY) + nutrition_icon.icon_state = "nutrition0" + if(75 to 90) + nutrition_icon.icon_state = "nutrition1" + if(50 to 75) + nutrition_icon.icon_state = "nutrition2" + if(25 to 50) + nutrition_icon.icon_state = "nutrition3" + if(0 to 25) + nutrition_icon.icon_state = "nutrition4" + /mob/living/simple_animal/update_icon() - ..() + . = ..() + var/mutable_appearance/ma = new(src) + ma.layer = layer + ma.plane = plane + + ma.overlays = list(modifier_overlay) + //Awake and normal if((stat == CONSCIOUS) && (!icon_rest || !resting || !incapacitated(INCAPACITATION_DISABLED) )) - icon_state = icon_living + ma.icon_state = icon_living //Dead else if(stat >= DEAD) - icon_state = icon_dead + ma.icon_state = icon_dead //Resting or KO'd else if(((stat == UNCONSCIOUS) || resting || incapacitated(INCAPACITATION_DISABLED) ) && icon_rest) - icon_state = icon_rest + ma.icon_state = icon_rest //Backup else - icon_state = initial(icon_state) + ma.icon_state = initial(icon_state) + + if(has_hands) + if(r_hand_sprite) + ma.overlays += r_hand_sprite + if(l_hand_sprite) + ma.overlays += l_hand_sprite + + appearance = ma // If your simple mob's update_icon() call calls overlays.Cut(), this needs to be called after this, or manually apply modifier_overly to overlays. /mob/living/simple_animal/update_modifier_visuals() @@ -293,7 +347,6 @@ handle_paralysed() handle_supernatural() handle_atmos() //Atmos - update_icon() ai_log("Life() - stance=[stance] ai_inactive=[ai_inactive]", 4) @@ -318,7 +371,7 @@ if(istype(loc,/obj/structure/closet)) var/obj/structure/closet/C = loc if(C.welded) - resist() + handle_resist() else C.open() @@ -378,7 +431,7 @@ // Handle interacting with and taking damage from atmos // TODO - Refactor this to use handle_environment() like a good /mob/living /mob/living/simple_animal/proc/handle_atmos() - var/atmos_suitable = 1 + var/atmos_unsuitable = 0 var/atom/A = src.loc @@ -394,41 +447,52 @@ if(min_oxy) if(Environment.gas["oxygen"] < min_oxy) - atmos_suitable = 0 + atmos_unsuitable = 1 if(max_oxy) if(Environment.gas["oxygen"] > max_oxy) - atmos_suitable = 0 + atmos_unsuitable = 1 if(min_tox) if(Environment.gas["phoron"] < min_tox) - atmos_suitable = 0 + atmos_unsuitable = 2 if(max_tox) if(Environment.gas["phoron"] > max_tox) - atmos_suitable = 0 + atmos_unsuitable = 2 if(min_n2) if(Environment.gas["nitrogen"] < min_n2) - atmos_suitable = 0 + atmos_unsuitable = 1 if(max_n2) if(Environment.gas["nitrogen"] > max_n2) - atmos_suitable = 0 + atmos_unsuitable = 1 if(min_co2) if(Environment.gas["carbon_dioxide"] < min_co2) - atmos_suitable = 0 + atmos_unsuitable = 1 if(max_co2) if(Environment.gas["carbon_dioxide"] > max_co2) - atmos_suitable = 0 + atmos_unsuitable = 1 //Atmos effect if(bodytemperature < minbodytemp) fire_alert = 2 adjustBruteLoss(cold_damage_per_tick) + if(fire) + fire.icon_state = "fire1" else if(bodytemperature > maxbodytemp) fire_alert = 1 adjustBruteLoss(heat_damage_per_tick) + if(fire) + fire.icon_state = "fire2" else fire_alert = 0 + if(fire) + fire.icon_state = "fire0" - if(!atmos_suitable) + if(atmos_unsuitable) adjustBruteLoss(unsuitable_atoms_damage) + if(oxygen) + oxygen.icon_state = "oxy1" + else if(oxygen) + if(oxygen) + oxygen.icon_state = "oxy0" // For setting the stance WITHOUT processing it /mob/living/simple_animal/proc/set_stance(var/new_stance) @@ -498,26 +562,19 @@ custom_emote(2, act_desc) /mob/living/simple_animal/bullet_act(var/obj/item/projectile/Proj) - if(!Proj) - return ai_log("bullet_act() I was shot by: [Proj.firer]",2) - if(Proj.taser_effect) - stun_effect_act(0, Proj.agony) - + //Projectiles with bonus SA damage if(!Proj.nodamage) var/true_damage = Proj.damage if(!Proj.SA_vulnerability || Proj.SA_vulnerability == intelligence_level) - true_damage += Proj.SA_bonus_damage - adjustBruteLoss(true_damage) + Proj.damage += Proj.SA_bonus_damage + + . = ..() if(Proj.firer) react_to_attack(Proj.firer) - Proj.on_hit(src) - - return 0 - // When someone clicks us with an empty hand /mob/living/simple_animal/attack_hand(mob/living/carbon/human/M as mob) ..() @@ -591,24 +648,25 @@ if(O.force) react_to_attack(user) -/mob/living/simple_animal/hit_with_weapon(obj/item/O, mob/living/user, var/effective_force, var/hit_zone) - visible_message("\The [src] has been attacked with \the [O] by [user].") + return ..() +/mob/living/simple_animal/hit_with_weapon(obj/item/O, mob/living/user, var/effective_force, var/hit_zone) + effective_force = O.force + + //Animals can't be stunned(?) + if(O.damtype == HALLOSS) + effective_force = 0 + if(supernatural && istype(O,/obj/item/weapon/nullrod)) + effective_force *= 2 + purge = 3 if(O.force <= resistance) - user << "This weapon is ineffective, it does no damage." + to_chat(user,"This weapon is ineffective, it does no damage.") return 2 - var/damage = O.force - if (O.damtype == HALLOSS) - damage = 0 - if(supernatural && istype(O,/obj/item/weapon/nullrod)) - damage *= 2 - purge = 3 - adjustBruteLoss(damage) ai_log("hit_with_weapon() I was h_w_weapon'd by: [user]",2) react_to_attack(user) - return 0 + . = ..() // When someone throws something at us /mob/living/simple_animal/hitby(atom/movable/AM) @@ -641,6 +699,9 @@ tally = 1 tally *= purge + if(m_intent == "walk") + tally *= 1.5 + return tally+config.animal_delay /mob/living/simple_animal/Stat() @@ -655,6 +716,7 @@ icon_state = icon_rest else icon_state = icon_living + update_icon() /mob/living/simple_animal/death(gibbed, deathmessage = "dies!") density = 0 //We don't block even if we did before @@ -738,7 +800,6 @@ /mob/living/simple_animal/handle_fire() return - /mob/living/simple_animal/update_fire() return /mob/living/simple_animal/IgniteMob() @@ -748,7 +809,7 @@ //We got hit! Consider hitting them back! /mob/living/simple_animal/proc/react_to_attack(var/mob/living/M) - if(stat || M == target_mob) return //Not if we're dead or already hitting them + if(ai_inactive || stat || M == target_mob) return //Not if we're dead or already hitting them if(M in friends || M.faction == faction) return //I'll overlook it THIS time... ai_log("react_to_attack([M])",1) if(retaliate && set_target(M, 1)) @@ -1187,8 +1248,8 @@ if(prob(melee_miss_chance)) src.attack_log += text("\[[time_stamp()]\] attacked [L.name] ([L.ckey])") L.attack_log += text("\[[time_stamp()]\] was attacked by [src.name] ([src.ckey])") - src.visible_message("[src] misses [L]!") - src.do_attack_animation(src) + visible_message("[src] misses [L]!") + do_attack_animation(src) return L else DoPunch(L) @@ -1200,7 +1261,7 @@ // This is the actual act of 'punching'. Override for special behaviour. /mob/living/simple_animal/proc/DoPunch(var/atom/A) - if(!Adjacent(target_mob)) // They could've moved in the meantime. + if(!Adjacent(A)) // They could've moved in the meantime. return FALSE var/damage_to_do = rand(melee_damage_lower, melee_damage_upper) @@ -1209,16 +1270,15 @@ if(!isnull(M.outgoing_melee_damage_percent)) damage_to_do *= M.outgoing_melee_damage_percent - if(attack_sound) - playsound(src, attack_sound, 75, 1) - // SA attacks can be blocked with shields. if(ishuman(A)) var/mob/living/carbon/human/H = A if(H.check_shields(damage = damage_to_do, damage_source = src, attacker = src, def_zone = null, attack_text = "the attack")) return FALSE - A.attack_generic(src, damage_to_do, pick(attacktext)) + 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 @@ -1491,10 +1551,134 @@ /mob/living/simple_animal/is_sentient() return intelligence_level != SA_PLANT && intelligence_level != SA_ROBOTIC +// Hand procs for player-controlled SA's +/mob/living/simple_animal/swap_hand() + src.hand = !( src.hand ) + if(hud_used.l_hand_hud_object && hud_used.r_hand_hud_object) + if(hand) //This being 1 means the left hand is in use + hud_used.l_hand_hud_object.icon_state = "l_hand_active" + hud_used.r_hand_hud_object.icon_state = "r_hand_inactive" + else + hud_used.l_hand_hud_object.icon_state = "l_hand_inactive" + hud_used.r_hand_hud_object.icon_state = "r_hand_active" + return + +/mob/living/simple_animal/put_in_active_hand(var/obj/item/I) + if(!has_hands || !istype(I)) + return + +//Puts the item into our active hand if possible. returns 1 on success. +/mob/living/simple_animal/put_in_active_hand(var/obj/item/W) + if(!has_hands) + return FALSE + return (hand ? put_in_l_hand(W) : put_in_r_hand(W)) + +/mob/living/simple_animal/put_in_l_hand(var/obj/item/W) + if(!..() || l_hand) + return 0 + W.forceMove(src) + l_hand = W + W.equipped(src,slot_l_hand) + W.add_fingerprint(src) + update_inv_l_hand() + return TRUE + +/mob/living/simple_animal/put_in_r_hand(var/obj/item/W) + if(!..() || r_hand) + return 0 + W.forceMove(src) + r_hand = W + W.equipped(src,slot_r_hand) + W.add_fingerprint(src) + update_inv_r_hand() + return TRUE + +/mob/living/simple_animal/update_inv_r_hand() + if(QDESTROYING(src)) + return + + if(r_hand) + r_hand.screen_loc = ui_rhand //TODO + + //determine icon state to use + var/t_state + if(r_hand.item_state_slots && r_hand.item_state_slots[slot_r_hand_str]) + t_state = r_hand.item_state_slots[slot_r_hand_str] + else if(r_hand.item_state) + t_state = r_hand.item_state + else + t_state = r_hand.icon_state + + //determine icon to use + var/icon/t_icon + if(r_hand.item_icons && (slot_r_hand_str in r_hand.item_icons)) + t_icon = r_hand.item_icons[slot_r_hand_str] + else if(r_hand.icon_override) + t_state += "_r" + t_icon = r_hand.icon_override + else + t_icon = INV_R_HAND_DEF_ICON + + //apply color + var/image/standing = image(icon = t_icon, icon_state = t_state) + standing.color = r_hand.color + + r_hand_sprite = standing + + else + r_hand_sprite = null + + update_icon() + +/mob/living/simple_animal/update_inv_l_hand() + if(QDESTROYING(src)) + return + + if(l_hand) + l_hand.screen_loc = ui_lhand //TODO + + //determine icon state to use + var/t_state + if(l_hand.item_state_slots && l_hand.item_state_slots[slot_l_hand_str]) + t_state = l_hand.item_state_slots[slot_l_hand_str] + else if(l_hand.item_state) + t_state = l_hand.item_state + else + t_state = l_hand.icon_state + + //determine icon to use + var/icon/t_icon + if(l_hand.item_icons && (slot_l_hand_str in l_hand.item_icons)) + t_icon = l_hand.item_icons[slot_l_hand_str] + else if(l_hand.icon_override) + t_state += "_l" + t_icon = l_hand.icon_override + else + t_icon = INV_L_HAND_DEF_ICON + + //apply color + var/image/standing = image(icon = t_icon, icon_state = t_state) + standing.color = l_hand.color + + l_hand_sprite = standing + + else + l_hand_sprite = null + + update_icon() + +//Can insert extra huds into the hud holder here. +/mob/living/simple_animal/proc/extra_huds(var/datum/hud/hud,var/icon/ui_style,var/list/hud_elements) + return + +//If they can or cannot use tools/machines/etc +/mob/living/simple_animal/IsAdvancedToolUser() + return has_hands + //Commands, reactions, etc /mob/living/simple_animal/hear_say(var/message, var/verb = "says", var/datum/language/language = null, var/alt_name = "", var/italics = 0, var/mob/speaker = null, var/sound/speech_sound, var/sound_vol) ..() - if(reacts && speaker && (message in reactions) && (!hostile || isliving(speaker)) && say_understands(speaker,language)) + if(!ai_inactive && reacts && speaker && (message in reactions) && (!hostile || isliving(speaker)) && say_understands(speaker,language)) var/mob/living/L = speaker if(L.faction == faction) spawn(10) diff --git a/code/modules/mob/living/simple_animal/simple_hud.dm b/code/modules/mob/living/simple_animal/simple_hud.dm new file mode 100644 index 0000000000..72d7bf07a3 --- /dev/null +++ b/code/modules/mob/living/simple_animal/simple_hud.dm @@ -0,0 +1,308 @@ +/mob/living/simple_animal/instantiate_hud(var/datum/hud/hud) + if(!client) + return //Why bother. + + var/ui_style = 'icons/mob/screen1_animal.dmi' + if(ui_icons) + ui_style = ui_icons + + var/ui_color = "#ffffff" + var/ui_alpha = 255 + + var/list/adding = list() + var/list/other = list() + var/list/hotkeybuttons = list() + + hud.adding = adding + hud.other = other + hud.hotkeybuttons = hotkeybuttons + + var/list/hud_elements = list() + var/obj/screen/using + var/obj/screen/inventory/inv_box + + var/has_hidden_gear + if(LAZYLEN(hud_gears)) + for(var/gear_slot in hud_gears) + inv_box = new /obj/screen/inventory() + inv_box.icon = ui_style + inv_box.color = ui_color + inv_box.alpha = ui_alpha + + var/list/slot_data = hud_gears[gear_slot] + inv_box.name = gear_slot + inv_box.screen_loc = slot_data["loc"] + inv_box.slot_id = slot_data["slot"] + inv_box.icon_state = slot_data["state"] + + if(slot_data["dir"]) + inv_box.set_dir(slot_data["dir"]) + + if(slot_data["toggle"]) + other += inv_box + has_hidden_gear = 1 + else + adding += inv_box + + if(has_hidden_gear) + using = new /obj/screen() + using.name = "toggle" + using.icon = ui_style + using.icon_state = "other" + using.screen_loc = ui_inventory + using.hud_layerise() + using.color = ui_color + using.alpha = ui_alpha + adding += using + + //Intent Backdrop + using = new /obj/screen() + using.name = "act_intent" + using.icon = ui_style + using.icon_state = "intent_"+a_intent + using.screen_loc = ui_acti + using.color = ui_color + using.alpha = ui_alpha + hud.adding += using + hud.action_intent = using + + hud_elements |= using + + //Small intent quarters + var/icon/ico + + ico = new(ui_style, "black") + ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1) + ico.DrawBox(rgb(255,255,255,1),1,ico.Height()/2,ico.Width()/2,ico.Height()) + using = new /obj/screen( src ) + using.name = I_HELP + using.icon = ico + using.screen_loc = ui_acti + using.alpha = ui_alpha + using.layer = LAYER_HUD_ITEM //These sit on the intent box + hud.adding += using + hud.help_intent = using + + ico = new(ui_style, "black") + ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1) + ico.DrawBox(rgb(255,255,255,1),ico.Width()/2,ico.Height()/2,ico.Width(),ico.Height()) + using = new /obj/screen( src ) + using.name = I_DISARM + using.icon = ico + using.screen_loc = ui_acti + using.alpha = ui_alpha + using.layer = LAYER_HUD_ITEM + hud.adding += using + hud.disarm_intent = using + + ico = new(ui_style, "black") + ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1) + ico.DrawBox(rgb(255,255,255,1),ico.Width()/2,1,ico.Width(),ico.Height()/2) + using = new /obj/screen( src ) + using.name = I_GRAB + using.icon = ico + using.screen_loc = ui_acti + using.alpha = ui_alpha + using.layer = LAYER_HUD_ITEM + hud.adding += using + hud.grab_intent = using + + ico = new(ui_style, "black") + ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1) + ico.DrawBox(rgb(255,255,255,1),1,1,ico.Width()/2,ico.Height()/2) + using = new /obj/screen( src ) + using.name = I_HURT + using.icon = ico + using.screen_loc = ui_acti + using.alpha = ui_alpha + using.layer = LAYER_HUD_ITEM + hud.adding += using + hud.hurt_intent = using + + //Move intent (walk/run) + using = new /obj/screen() + using.name = "mov_intent" + using.icon = ui_style + using.icon_state = (m_intent == "run" ? "running" : "walking") + using.screen_loc = ui_movi + using.color = ui_color + using.alpha = ui_alpha + hud.adding += using + hud.move_intent = using + + //Resist button + using = new /obj/screen() + using.name = "resist" + using.icon = ui_style + using.icon_state = "act_resist" + using.screen_loc = ui_pull_resist + using.color = ui_color + using.alpha = ui_alpha + hud.hotkeybuttons += using + + //Pull button + pullin = new /obj/screen() + pullin.icon = ui_style + pullin.icon_state = "pull0" + pullin.name = "pull" + pullin.screen_loc = ui_pull_resist + hud.hotkeybuttons += pullin + hud_elements |= pullin + + //Health status + healths = new /obj/screen() + healths.icon = ui_style + healths.icon_state = "health0" + healths.name = "health" + healths.screen_loc = ui_health + hud_elements |= healths + + //Oxygen dep icon + oxygen = new /obj/screen() + oxygen.icon = ui_style + oxygen.icon_state = "oxy0" + oxygen.name = "oxygen" + oxygen.screen_loc = ui_oxygen + hud_elements |= oxygen + + //Toxins present icon + toxin = new /obj/screen() + toxin.icon = ui_style + toxin.icon_state = "tox0" + toxin.name = "toxin" + toxin.screen_loc = ui_toxin + hud_elements |= toxin + + //Fire warning + fire = new /obj/screen() + fire.icon = ui_style + fire.icon_state = "fire0" + fire.name = "fire" + fire.screen_loc = ui_fire + hud_elements |= fire + + //Pressure warning + pressure = new /obj/screen() + pressure.icon = ui_style + pressure.icon_state = "pressure0" + pressure.name = "pressure" + pressure.screen_loc = ui_pressure + hud_elements |= pressure + + //Body temp warning + bodytemp = new /obj/screen() + bodytemp.icon = ui_style + bodytemp.icon_state = "temp0" + bodytemp.name = "body temperature" + bodytemp.screen_loc = ui_temp + hud_elements |= bodytemp + + //Nutrition status + nutrition_icon = new /obj/screen() + nutrition_icon.icon = ui_style + nutrition_icon.icon_state = "nutrition0" + nutrition_icon.name = "nutrition" + nutrition_icon.screen_loc = ui_nutrition + hud_elements |= nutrition_icon + + pain = new /obj/screen( null ) + + zone_sel = new /obj/screen/zone_sel( null ) + zone_sel.icon = ui_style + zone_sel.color = ui_color + zone_sel.alpha = ui_alpha + zone_sel.overlays.Cut() + zone_sel.overlays += image('icons/mob/zone_sel.dmi', "[zone_sel.selecting]") + hud_elements |= zone_sel + + //Hand things + if(has_hands) + //Drop button + using = new /obj/screen() + using.name = "drop" + using.icon = ui_style + using.icon_state = "act_drop" + using.screen_loc = ui_drop_throw + using.color = ui_color + using.alpha = ui_alpha + hud.hotkeybuttons += using + + //Equip detail + using = new /obj/screen() + using.name = "equip" + using.icon = ui_style + using.icon_state = "act_equip" + using.screen_loc = ui_equip + using.color = ui_color + using.alpha = ui_alpha + hud.adding += using + + //Hand slots themselves + inv_box = new /obj/screen/inventory/hand() + inv_box.hud = src + inv_box.name = "r_hand" + inv_box.icon = ui_style + inv_box.icon_state = "r_hand_inactive" + if(!hand) //This being 0 or null means the right hand is in use + inv_box.icon_state = "r_hand_active" + inv_box.screen_loc = ui_rhand + inv_box.slot_id = slot_r_hand + inv_box.color = ui_color + inv_box.alpha = ui_alpha + + hud.r_hand_hud_object = inv_box + hud.adding += inv_box + + inv_box = new /obj/screen/inventory/hand() + inv_box.hud = src + inv_box.name = "l_hand" + inv_box.icon = ui_style + inv_box.icon_state = "l_hand_inactive" + if(hand) //This being 1 means the left hand is in use + inv_box.icon_state = "l_hand_active" + inv_box.screen_loc = ui_lhand + inv_box.slot_id = slot_l_hand + inv_box.color = ui_color + inv_box.alpha = ui_alpha + hud.l_hand_hud_object = inv_box + hud.adding += inv_box + + //Swaphand titlebar + using = new /obj/screen/inventory() + using.name = "hand" + using.icon = ui_style + using.icon_state = "hand1" + using.screen_loc = ui_swaphand1 + using.color = ui_color + using.alpha = ui_alpha + hud.adding += using + + using = new /obj/screen/inventory() + using.name = "hand" + using.icon = ui_style + using.icon_state = "hand2" + using.screen_loc = ui_swaphand2 + using.color = ui_color + using.alpha = ui_alpha + hud.adding += using + + //Throw button + throw_icon = new /obj/screen() + throw_icon.icon = ui_style + throw_icon.icon_state = "act_throw_off" + throw_icon.name = "throw" + throw_icon.screen_loc = ui_drop_throw + throw_icon.color = ui_color + throw_icon.alpha = ui_alpha + hud.hotkeybuttons += throw_icon + hud_elements |= throw_icon + + extra_huds(hud,ui_style,hud_elements) + + client.screen = list() + + client.screen += hud_elements + client.screen += adding + hotkeybuttons + client.screen += client.void + + return diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index a21da32479..917790df41 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -1129,4 +1129,11 @@ mob/proc/yank_out_object() /mob/proc/update_client_color() if(client && client.color) animate(client, color = null, time = 10) - return \ No newline at end of file + return + +/mob/proc/swap_hand() + return + +//Throwing stuff +/mob/proc/throw_item(atom/target) + return diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm index cf14862981..1602c8cb47 100644 --- a/code/modules/mob/mob_grab.dm +++ b/code/modules/mob/mob_grab.dm @@ -181,6 +181,9 @@ //Updating pixelshift, position and direction //Gets called on process, when the grab gets upgraded or the assailant moves /obj/item/weapon/grab/proc/adjust_position() + if(!affecting) + qdel(src) + return if(affecting.buckled) animate(affecting, pixel_x = 0, pixel_y = 0, 4, 1, LINEAR_EASING) return @@ -236,7 +239,7 @@ if(!assailant.canmove || assailant.lying) qdel(src) return - + var/datum/gender/TU = gender_datums[assailant.get_visible_gender()] last_action = world.time diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 451bac05d6..4b625e15f1 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -328,7 +328,7 @@ var/list/intents = list(I_HELP,I_DISARM,I_GRAB,I_HURT) set name = "a-intent" set hidden = 1 - if(ishuman(src) || isbrain(src) || isslime(src)) + if(isliving(src)) switch(input) if(I_HELP,I_DISARM,I_GRAB,I_HURT) a_intent = input diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index af72ba4dd4..b59bd402d3 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -51,14 +51,14 @@ attack_self() return if(SOUTHWEST) - if(iscarbon(usr)) + if(isliving(usr)) var/mob/living/carbon/C = usr C.toggle_throw_mode() else usr << "This mob type cannot throw items." return if(NORTHWEST) - if(iscarbon(usr)) + if(isliving(usr)) var/mob/living/carbon/C = usr if(!C.get_active_hand()) usr << "You have nothing to drop in your hand." @@ -79,8 +79,9 @@ /client/verb/swap_hand() set hidden = 1 - if(istype(mob, /mob/living/carbon)) - mob:swap_hand() + if(istype(mob, /mob/living)) + var/mob/living/L = mob + L.swap_hand() if(istype(mob,/mob/living/silicon/robot)) var/mob/living/silicon/robot/R = mob R.cycle_modules() diff --git a/code/modules/mob/update_icons.dm b/code/modules/mob/update_icons.dm index 3eab4b967f..ae6e01a249 100644 --- a/code/modules/mob/update_icons.dm +++ b/code/modules/mob/update_icons.dm @@ -5,6 +5,7 @@ return /mob/proc/update_icons() + update_icon() //Ugh. return /mob/proc/update_icons_layers(var/update_icons = TRUE) diff --git a/code/modules/nano/modules/alarm_monitor.dm b/code/modules/nano/modules/alarm_monitor.dm index f3fca46d43..264fdee9cc 100644 --- a/code/modules/nano/modules/alarm_monitor.dm +++ b/code/modules/nano/modules/alarm_monitor.dm @@ -26,7 +26,7 @@ /datum/nano_module/alarm_monitor/proc/all_alarms() var/list/all_alarms = new() for(var/datum/alarm_handler/AH in alarm_handlers) - all_alarms += AH.alarms + all_alarms += AH.visible_alarms() return all_alarms diff --git a/code/modules/nano/modules/atmos_control.dm b/code/modules/nano/modules/atmos_control.dm index 742696396b..b1dd3ab759 100644 --- a/code/modules/nano/modules/atmos_control.dm +++ b/code/modules/nano/modules/atmos_control.dm @@ -36,6 +36,8 @@ // TODO: Move these to a cache, similar to cameras for(var/obj/machinery/alarm/alarm in (monitored_alarms.len ? monitored_alarms : machines)) + if(!monitored_alarms.len && alarm.alarms_hidden) + continue alarms[++alarms.len] = list( "name" = sanitize(alarm.name), "ref"= "\ref[alarm]", diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index b708e58253..4fd94901cc 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -35,6 +35,50 @@ var/const/signfont = "Times New Roman" var/const/crayonfont = "Comic Sans MS" +/obj/item/weapon/paper/card + name = "blank card" + desc = "A gift card with space to write on the cover." + icon_state = "greetingcard" + slot_flags = null //no fun allowed!!!! + +/obj/item/weapon/paper/card/AltClick() //No fun allowed + return + +/obj/item/weapon/paper/card/update_icon() + return + +/obj/item/weapon/paper/card/smile + name = "happy card" + desc = "A gift card with a smiley face on the cover." + icon_state = "greetingcard_smile" + +/obj/item/weapon/paper/card/cat + name = "cat card" + desc = "A gift card with a cat on the cover." + icon_state = "greetingcard_cat" + +/obj/item/weapon/paper/card/flower + name = "flower card" + desc = "A gift card with a flower on the cover." + icon_state = "greetingcard_flower" + +/obj/item/weapon/paper/card/heart + name = "heart card" + desc = "A gift card with a heart on the cover." + icon_state = "greetingcard_heart" + +/obj/item/weapon/paper/card/New() + ..() + pixel_y = rand(-8, 8) + pixel_x = rand(-9, 9) + stamps = null + + if(info != initial(info)) + info = html_encode(info) + info = replacetext(info, "\n", "
") + info = parsepencode(info) + return + /obj/item/weapon/paper/alien name = "alien tablet" desc = "It looks highly advanced" @@ -319,7 +363,7 @@ if(P.lit && !user.restrained()) if(istype(P, /obj/item/weapon/flame/lighter/zippo)) class = "rose" - + user.visible_message("[user] holds \the [P] up to \the [src], it looks like [TU.hes] trying to burn it!", \ "You hold \the [P] up to \the [src], burning it slowly.") diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 91114105bd..725e31c1ba 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -56,6 +56,9 @@ /obj/machinery/power/apc/hyper cell_type = /obj/item/weapon/cell/hyper +/obj/machinery/power/apc/alarms_hidden + alarms_hidden = TRUE + /obj/machinery/power/apc name = "area power controller" desc = "A control terminal for the area electrical systems." @@ -107,12 +110,12 @@ var/failure_timer = 0 var/force_update = 0 var/updating_icon = 0 - var/secret = FALSE // If true, it won't show up on the alert computer. var/global/list/status_overlays_lock var/global/list/status_overlays_charging var/global/list/status_overlays_equipment var/global/list/status_overlays_lighting var/global/list/status_overlays_environ + var/alarms_hidden = FALSE //If power alarms from this APC are visible on consoles /obj/machinery/power/apc/updateDialog() if (stat & (BROKEN|MAINT)) @@ -226,7 +229,7 @@ area.apc = src if(istype(area, /area/submap)) - secret = TRUE + alarms_hidden = TRUE update_icon() @@ -1113,8 +1116,7 @@ equipment = autoset(equipment, 0) lighting = autoset(lighting, 0) environ = autoset(environ, 0) - if(!secret) - power_alarm.triggerAlarm(loc, src) + power_alarm.triggerAlarm(loc, src, hidden=alarms_hidden) autoflag = 0 // update icon & area power if anything changed @@ -1144,24 +1146,21 @@ equipment = autoset(equipment, 2) lighting = autoset(lighting, 1) environ = autoset(environ, 1) - if(!secret) - power_alarm.triggerAlarm(loc, src) + power_alarm.triggerAlarm(loc, src, hidden=alarms_hidden) autoflag = 2 else if(cell.percent() <= 15) // <15%, turn off lighting & equipment if((autoflag > 1 && longtermpower < 0) || (autoflag > 1 && longtermpower >= 0)) equipment = autoset(equipment, 2) lighting = autoset(lighting, 2) environ = autoset(environ, 1) - if(!secret) - power_alarm.triggerAlarm(loc, src) + power_alarm.triggerAlarm(loc, src, hidden=alarms_hidden) autoflag = 1 else // zero charge, turn all off if(autoflag != 0) equipment = autoset(equipment, 0) lighting = autoset(lighting, 0) environ = autoset(environ, 0) - if(!secret) - power_alarm.triggerAlarm(loc, src) + power_alarm.triggerAlarm(loc, src, hidden=alarms_hidden) autoflag = 0 // val 0=off, 1=off(auto) 2=on 3=on(auto) diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index 9fb6314829..51f675ec7d 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -376,6 +376,29 @@ reagents.add_reagent("coco", 2) bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/chocolatepiece + name = "chocolate piece" + desc = "A luscious milk chocolate piece filled with gooey caramel." + icon_state = "chocolatepiece" + filling_color = "#7D5F46" + center_of_mass = list("x"=15, "y"=15) + nutriment_amt = 1 + nutriment_desc = list("chocolate" = 3, "caramel" = 2, "lusciousness" = 1) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/white + name = "white chocolate piece" + desc = "A creamy white chocolate piece drizzled in milk chocolate." + icon_state = "chocolatepiece_white" + filling_color = "#E2DAD3" + nutriment_desc = list("white chocolate" = 3, "creaminess" = 1) + +/obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/truffle + name = "chocolate truffle" + desc = "A bite-sized milk chocolate truffle that could buy anyone's love." + icon_state = "chocolatepiece_truffle" + nutriment_desc = list("chocolate" = 3, "undying devotion" = 3) + /obj/item/weapon/reagent_containers/food/snacks/chocolateegg name = "Chocolate Egg" desc = "Such sweet, fattening food." diff --git a/html/changelogs/PrismaticGynoid-universalponchos.yml b/html/changelogs/PrismaticGynoid-universalponchos.yml new file mode 100644 index 0000000000..185525498b --- /dev/null +++ b/html/changelogs/PrismaticGynoid-universalponchos.yml @@ -0,0 +1,4 @@ +author: PrismaticGynoid +delete-after: True +changes: + - tweak: "Changed department ponchos to be open to any job, just like department jackets." diff --git a/html/changelogs/schnayy-giftcrates.yml b/html/changelogs/schnayy-giftcrates.yml new file mode 100644 index 0000000000..08c0668df5 --- /dev/null +++ b/html/changelogs/schnayy-giftcrates.yml @@ -0,0 +1,9 @@ +author: Schnayy + +delete-after: True + +changes: + - rscadd: "Adds bouquets. Can be ordered via 'gift crate' in cargo." + - rscadd: "Adds fake bouquets for the cheap. Can currently be won from arcade machines." + - rscadd: "Adds chocolate heart-shaped boxes. Can be ordered via 'gift crate' in cargo." + - rscadd: "Adds gift cards with four cover variations. Function like paper. Can be ordered via 'gift crate' in cargo." \ No newline at end of file diff --git a/icons/mob/items/lefthand.dmi b/icons/mob/items/lefthand.dmi index a7628b6aeb..a42fe56547 100644 Binary files a/icons/mob/items/lefthand.dmi and b/icons/mob/items/lefthand.dmi differ diff --git a/icons/mob/items/righthand.dmi b/icons/mob/items/righthand.dmi index 4dd154277e..54720b1f6d 100644 Binary files a/icons/mob/items/righthand.dmi and b/icons/mob/items/righthand.dmi differ diff --git a/icons/mob/screen1_animal.dmi b/icons/mob/screen1_animal.dmi new file mode 100644 index 0000000000..51b971a075 Binary files /dev/null and b/icons/mob/screen1_animal.dmi differ diff --git a/icons/obj/bureaucracy.dmi b/icons/obj/bureaucracy.dmi index e8d3946b34..e32b870d99 100644 Binary files a/icons/obj/bureaucracy.dmi and b/icons/obj/bureaucracy.dmi differ diff --git a/icons/obj/food.dmi b/icons/obj/food.dmi index 14f54fb5dc..d282fb3e6a 100644 Binary files a/icons/obj/food.dmi and b/icons/obj/food.dmi differ diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index bebe9efbee..b8dc87695a 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ diff --git a/icons/obj/library.dmi b/icons/obj/library.dmi index 6a1f99d2cd..4ef2ddddc6 100644 Binary files a/icons/obj/library.dmi and b/icons/obj/library.dmi differ diff --git a/maps/submaps/surface_submaps/plains/Boathouse.dmm b/maps/submaps/surface_submaps/plains/Boathouse.dmm new file mode 100644 index 0000000000..24463d7810 --- /dev/null +++ b/maps/submaps/surface_submaps/plains/Boathouse.dmm @@ -0,0 +1,117 @@ +"aa" = (/turf/template_noop,/area/template_noop) +"ab" = (/turf/template_noop,/area/submap/Boathouse) +"ac" = (/turf/simulated/floor/outdoors/rocks,/area/submap/Boathouse) +"ad" = (/turf/simulated/floor/water,/area/submap/Boathouse) +"ae" = (/turf/simulated/floor/water/deep,/area/submap/Boathouse) +"af" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/submap/Boathouse) +"ag" = (/obj/structure/table/bench/wooden,/turf/template_noop,/area/submap/Boathouse) +"ah" = (/obj/structure/table/woodentable,/turf/template_noop,/area/submap/Boathouse) +"ai" = (/turf/simulated/wall/wood,/area/submap/Boathouse) +"aj" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/accessory/jacket,/obj/item/clothing/accessory/jacket,/obj/item/clothing/head/beanie,/turf/simulated/floor/wood,/area/submap/Boathouse) +"ak" = (/turf/simulated/floor/wood,/area/submap/Boathouse) +"al" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/weapon/gun/projectile/shotgun/doublebarrel,/obj/item/weapon/storage/box/beanbags,/turf/simulated/floor/wood,/area/submap/Boathouse) +"am" = (/turf/simulated/floor/carpet/turcarpet,/area/submap/Boathouse) +"an" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/wood,/area/submap/Boathouse) +"ao" = (/obj/structure/railing{dir = 8},/obj/structure/railing,/turf/simulated/floor/water,/area/submap/Boathouse) +"ap" = (/obj/structure/railing,/turf/simulated/floor/water,/area/submap/Boathouse) +"aq" = (/obj/item/weapon/stool/padded,/turf/simulated/floor/wood,/area/submap/Boathouse) +"ar" = (/obj/structure/table/woodentable,/obj/item/weapon/deck/cards,/turf/simulated/floor/carpet/turcarpet,/area/submap/Boathouse) +"as" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/chips,/turf/simulated/floor/carpet/turcarpet,/area/submap/Boathouse) +"at" = (/obj/structure/table/woodentable,/obj/item/trash/candle,/turf/simulated/floor/wood,/area/submap/Boathouse) +"au" = (/obj/item/weapon/stool,/turf/simulated/floor/wood,/area/submap/Boathouse) +"av" = (/turf/simulated/floor/wood{tag = "icon-wood_broken6"; icon_state = "wood_broken6"},/area/submap/Boathouse) +"aw" = (/obj/structure/railing{dir = 8},/turf/simulated/floor/water,/area/submap/Boathouse) +"ax" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey,/turf/simulated/floor/carpet/turcarpet,/area/submap/Boathouse) +"ay" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/glass2/shot,/turf/simulated/floor/carpet/turcarpet,/area/submap/Boathouse) +"az" = (/obj/structure/table/woodentable,/obj/item/weapon/tape_roll,/obj/random/firstaid,/turf/simulated/floor/wood,/area/submap/Boathouse) +"aA" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/glass2/shot,/obj/item/weapon/reagent_containers/food/drinks/glass2/shot,/obj/item/weapon/reagent_containers/food/drinks/glass2/shot,/turf/simulated/floor/carpet/turcarpet,/area/submap/Boathouse) +"aB" = (/turf/simulated/floor/wood{tag = "icon-wood_broken2"; icon_state = "wood_broken2"},/area/submap/Boathouse) +"aC" = (/obj/structure/railing{dir = 8},/obj/structure/railing{tag = "icon-railing0 (NORTH)"; icon_state = "railing0"; dir = 1},/turf/simulated/floor/water,/area/submap/Boathouse) +"aD" = (/obj/structure/railing{tag = "icon-railing0 (NORTH)"; icon_state = "railing0"; dir = 1},/turf/simulated/floor/water,/area/submap/Boathouse) +"aE" = (/obj/vehicle/boat/sifwood,/turf/simulated/floor/water,/area/submap/Boathouse) +"aF" = (/obj/structure/window/reinforced/full,/turf/simulated/floor/wood,/area/submap/Boathouse) +"aG" = (/obj/structure/table/woodentable,/obj/item/weapon/oar,/obj/item/weapon/oar,/turf/simulated/floor/wood,/area/submap/Boathouse) +"aH" = (/obj/structure/railing{tag = "icon-railing0 (WEST)"; icon_state = "railing0"; dir = 8},/turf/simulated/floor/water,/area/submap/Boathouse) +"aI" = (/obj/structure/table/woodentable,/obj/item/weapon/cell/device/weapon,/turf/simulated/floor/wood,/area/submap/Boathouse) +"aJ" = (/turf/simulated/floor/wood{tag = "icon-wood_broken4"; icon_state = "wood_broken4"},/area/submap/Boathouse) +"aK" = (/obj/structure/railing{tag = "icon-railing0 (WEST)"; icon_state = "railing0"; dir = 8},/obj/structure/railing{tag = "icon-railing0 (NORTH)"; icon_state = "railing0"; dir = 1},/turf/simulated/floor/water,/area/submap/Boathouse) +"aL" = (/obj/structure/simple_door/wood,/turf/simulated/floor/wood,/area/submap/Boathouse) +"aM" = (/obj/structure/closet/secure_closet/freezer/fridge,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/fruitsalad,/turf/simulated/floor/wood,/area/submap/Boathouse) +"aN" = (/obj/structure/table/woodentable,/turf/simulated/floor/wood,/area/submap/Boathouse) +"aO" = (/turf/simulated/floor/carpet/bcarpet,/area/submap/Boathouse) +"aP" = (/obj/structure/window/reinforced/full,/turf/simulated/wall/wood,/area/submap/Boathouse) +"aQ" = (/obj/structure/table/woodentable,/obj/item/weapon/material/knife,/turf/simulated/floor/wood,/area/submap/Boathouse) +"aR" = (/obj/structure/bookcase,/turf/simulated/floor/carpet/bcarpet,/area/submap/Boathouse) +"aS" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/bag/trash,/turf/simulated/floor/wood,/area/submap/Boathouse) +"aT" = (/obj/structure/table/woodentable,/obj/item/weapon/flame/lighter,/obj/item/weapon/storage/fancy/candle_box,/turf/simulated/floor/wood,/area/submap/Boathouse) +"aU" = (/obj/structure/bed/chair/wood,/turf/simulated/floor/carpet/bcarpet,/area/submap/Boathouse) +"aV" = (/obj/structure/table/rack,/obj/item/clothing/accessory/poncho/blue,/obj/item/clothing/accessory/poncho/blue,/turf/simulated/floor/wood,/area/submap/Boathouse) +"aW" = (/obj/structure/coatrack,/turf/simulated/floor/wood,/area/submap/Boathouse) +"aX" = (/obj/structure/table/rack,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/head/hood/winter,/obj/item/clothing/shoes/boots/winter,/turf/simulated/floor/wood,/area/submap/Boathouse) +"aY" = (/obj/structure/table/rack,/obj/item/clothing/accessory/storage,/obj/item/clothing/accessory/storage,/turf/simulated/floor/wood,/area/submap/Boathouse) +"aZ" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/turf/simulated/floor/carpet/bcarpet,/area/submap/Boathouse) +"ba" = (/obj/structure/table/woodentable,/turf/simulated/floor/carpet/bcarpet,/area/submap/Boathouse) +"bb" = (/turf/simulated/floor/outdoors/dirt,/area/submap/Boathouse) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaabababababababababababacacacacacacacacacacacacacacacacacacabababababababababaa +aaabababababababababacacadadadadadadadadadadadadadadadadadadacacabababababababaa +aaabababababababacacacacadadadadadadadadadadadadadadadadadadadacacacabababababaa +aaababababababacacadadadadadadadadadadaeaeaeaeaeaeaeaeaeaeaeadadadacacababababaa +aaabababababacacadadadadadadadadadadadaeaeaeaeaeaeaeaeaeaeadadadadadacacabababaa +aaababababacacadadadadadaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeadadadadacababababaa +aaabababacacadadadadadaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeadadadadacababababaa +aaabababacadadadadadadadaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeadadadadacacababababaa +aaababacacadadadaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeadadadadacabababababaa +aaabacacadadadadaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeadaeaeaeadadadadadacacabababababaa +aaabacadadadadadaeaeaeaeaeaeaeaeaeaeaeaeaeaeadadadadadadadadadadacababababababaa +aaacacadadadadadadaeaeaeaeaeaeaeaeaeaeaeaeadadadadadadadadadadadacababababababaa +aaacadadadadadadadaeaeaeaeaeaeaeaeaeaeaeadadadadadadadadadadacacacababababababaa +aaacadadadadadadadaeaeaeaeaeaeaeaeaeaeadadadadadadadadadacacacababababababababaa +aaacacadadadadadadaeaeaeaeaeaeaeaeaeaeadadadadacacacacacacababababababababababaa +aaabacadadadadadadaeaeaeaeaeaeaeaeaeaeadadadacacababababababababafababababababaa +aaabacacadadadadadaeaeaeaeaeaeaeaeaeadadadadacababagagagagababababababababababaa +aaababacacadadadadadaeaeaeaeaeaeaeaeadadadacabababahahahahababababababababababaa +aaabababacadadadadadaeaeadaeaeaeaeaeadadadacabababagagagagababababababababababaa +aaabababacacacadadadadaeadadaeaeaeaeaeadadacacabababababababababababafababababaa +aaabababababacacacadadadadadaeaeaeaeaeadadadacacacababababababababababababababaa +aaababababababacacacadadadadaeaeaeaeaeadadadadadacacacabababacacacacabababababaa +aaababababababababacacacadadaeaeaeaeaeadadadadadadadacacacacacadadacacababababaa +aaababababababababababacadadaeaeaeaeaeadaeadadadadadadadadadadadadadacababababaa +aaababababababababababacadadadaeaeaeaeaeaeadadadadadadadadadadadadadacacabababaa +aaababababababababababacadadadaeaeaeaeaeaeaeadadadadadadadadadadadadadacabababaa +aaababababababababababacadadadadaeaeaeaeaeaeadadadadadadadadaeaeadadadacacababaa +aaabababababababababacacadadadadaeaeaeaeaeaeaeaeaeadadadadaeaeaeadadadadacacabaa +aaabababababababababacacadadadadadaeaeaeaeaeaeaeaeaeaeadaeaeaeadadadadadadacabaa +aaabababababababababacacadadadadadadaeaeaeaeaeaeaeaeaeaeaeaeaeadadadadadadacabaa +aaabababababababababacacadadadadadadadaeaeaeaeaeaeaeaeaeaeaeaeadadadadadacacabaa +aaababababababababacacadadadadadadadadadaeaeaeaeaeaeaeaeaeaeadadadadadadacacabaa +aaababababababababacacadadadadadadadadadaeaeaeaeaeaeaeaeaeaeadadadadadadadacabaa +aaabababababababababacadadadadadadadadadadaeaeaeaeaeaeaeaeaeadadadadadadadacabaa +aaabababaiaiaiaiaiaiacacadadadadadadadadadaeaeaeaeaeaeaeaeaeadadadadadadadacabaa +aaabaiaiaiaiaiaiaiaiaiaiaiaiaiaiadadadadadadaeaeaeaeaeaeaeaeadadadadadadadacabaa +aaaiaiajakakalaiakakakakaiaiaiaiadadadadadadaeaeaeaeaeaeaeaeadadadadadadacacabaa +aaaiaiakamamakaianakakakaoapapapadadadadadadaeaeaeaeaeaeaeadadadadadadacacababaa +aaaiaiaqarasaqaiatauakakakavakakawadadadadadaeaeaeaeaeaeaeadadadadadadacabababaa +aaaiaiaqaxayaqaiazakakakakakakakawadadadadadadaeaeaeaeaeaeadadadadadadacabababaa +aaaiaiaqaAayaqaiakakakaBaCaDaEaDadadadadadadadaeaeaeaeaeaeadadadadadacacabababaa +aaaiaiakamamakaiakakakakawadadadadadadadadadaeaeaeaeaeaeadadadadadadadacabababaa +aaabaFakamamakaiaGakakakaoapadapadadadadadadaeaeaeaeaeaeadadadadadadadacacababaa +aaabaFakamamakaiatauakakakakakakaHadadadadadaeaeaeaeaeaeadadadadadadadadacababaa +aaabaFakamamakaiaIakakakakakaJakaHadadadadadadaeaeaeaeaeaeaeaeadadadadadacacabaa +aaabaFakamamakaiakakakakaKaDaDaDadadadadadadadadaeaeaeaeaeaeaeaeadadadadadacabaa +aaabaFakamamakaiaiaLaiakaHadadadadadadadadadadadaeaeaeaeadaeaeaeadadadadadacabaa +aaaiaiakamamakaiaiakaiakaHadadadadadadadadadadadaeaeaeaeadadadaeaeadadadadacabaa +aaaiaiaMamamakaiaiaLaiaiaiaiaiaiadadadadadadadadaeaeaeadadadadadadadadadacacabaa +aaaiaiaNamamakakakakakakaLaOaOaPadadadadadadadadaeaeadadadadadadadadadadacababaa +aaaiaiaQamamamamamamamakaiaRaOaPadadadadadadadaeaeaeadadadadadadadadadadacababaa +aaaiaiaSaTakakamamamamakaiaRaUaPadadadadadadadaeaeaeadadadadadadadadadadacababaa +aaaiaiaiaiaiaVaWakakaXaYaiaZbaaPadadadadadadadaeaeaeadadadadadadadadadacacababaa +aaabaiaiaiaiaiaiaLaLaiaiaiaiaiaiadadadadadadadadadadadadadadadadadadadacabababaa +aaababaiaiaiabaiakakaiabaiaiaiacacacadadadadadadadadadadadadadadadadadacabababaa +aaababababababaiaLaLaiababababababacacacacadadadadadacacadadadadadacacacabababaa +aaababbbbbbbbbbbbbbbbbbbbbbbbbababababacacacadadacacacacacacacacacacabababababaa +aaabababababbbbbbbbbbbbbbbbbbbbbbbbbabababacacacacababababababababababababababaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/maps/submaps/surface_submaps/plains/Diner.dmm b/maps/submaps/surface_submaps/plains/Diner.dmm new file mode 100644 index 0000000000..33c7a8d150 --- /dev/null +++ b/maps/submaps/surface_submaps/plains/Diner.dmm @@ -0,0 +1,110 @@ +"aa" = (/turf/template_noop,/area/template_noop) +"ab" = (/turf/template_noop,/area/submap/Diner) +"ac" = (/turf/simulated/floor/outdoors/dirt,/area/submap/Diner) +"ad" = (/turf/simulated/wall,/area/submap/Diner) +"ae" = (/obj/structure/window/reinforced/full,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"af" = (/obj/effect/floor_decal/corner/red/diagonal,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"ag" = (/obj/structure/table/standard,/obj/machinery/microwave,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"ah" = (/obj/structure/table/standard,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"ai" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/condiment/enzyme,/obj/item/weapon/reagent_containers/glass/beaker,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aj" = (/obj/structure/table/standard,/obj/machinery/light{dir = 1},/obj/item/weapon/material/knife/butch,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"ak" = (/obj/machinery/vending/cola,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"al" = (/obj/machinery/vending/dinnerware,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"am" = (/obj/structure/sink/kitchen,/turf/simulated/wall,/area/submap/Diner) +"an" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/submap/Diner) +"ao" = (/obj/structure/bed/chair/wood{dir = 1},/obj/effect/floor_decal/corner/red/diagonal,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"ap" = (/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aq" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/white,/area/submap/Diner) +"ar" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker,/obj/item/weapon/material/kitchen/utensil/fork,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"as" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/condiment/small/peppermill,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled/white,/area/submap/Diner) +"at" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/submap/Diner) +"au" = (/obj/structure/table/standard,/obj/item/weapon/book/manual/chef_recipes,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"av" = (/obj/structure/table/standard,/obj/item/weapon/material/kitchen/rollingpin,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aw" = (/obj/machinery/cooker/cereal,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled/white,/area/submap/Diner) +"ax" = (/obj/structure/bed/chair/wood,/obj/effect/floor_decal/corner/red/diagonal,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"ay" = (/obj/structure/closet/secure_closet/freezer/fridge,/obj/item/weapon/storage/fancy/egg_box,/obj/item/weapon/storage/fancy/egg_box,/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,/obj/item/weapon/reagent_containers/food/condiment/sugar,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"az" = (/obj/structure/simple_door/wood,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aA" = (/obj/structure/simple_door/wood,/turf/simulated/wall,/area/submap/Diner) +"aB" = (/obj/structure/simple_door/wood,/turf/simulated/floor/tiled/freezer,/area/submap/Diner) +"aC" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker,/obj/effect/floor_decal/corner/red/diagonal,/obj/item/weapon/material/kitchen/utensil/fork,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aD" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/condiment/small/peppermill,/obj/effect/floor_decal/corner/red/diagonal,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aE" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aF" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/red/diagonal,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aG" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aH" = (/turf/simulated/floor/tiled,/area/submap/Diner) +"aI" = (/turf/simulated/floor/tiled/freezer,/area/submap/Diner) +"aJ" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/turf/simulated/floor/tiled/freezer,/area/submap/Diner) +"aK" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/red/diagonal,/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aL" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aM" = (/obj/machinery/light/small{brightness_color = "#DA0205"; brightness_power = 1; brightness_range = 5; dir = 8},/turf/simulated/floor/tiled,/area/submap/Diner) +"aN" = (/obj/machinery/light/small{brightness_color = "#DA0205"; brightness_power = 1; brightness_range = 5; dir = 8},/turf/simulated/floor/tiled/freezer,/area/submap/Diner) +"aO" = (/obj/structure/closet/crate/freezer,/obj/machinery/light/small{dir = 4},/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/turf/simulated/floor/tiled/freezer,/area/submap/Diner) +"aP" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/red/diagonal,/obj/item/weapon/reagent_containers/food/condiment/small/peppermill,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aQ" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/structure/table/standard,/obj/machinery/microwave,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aR" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/turf/simulated/floor/tiled/freezer,/area/submap/Diner) +"aS" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/structure/coatrack,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aT" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/structure/table/standard,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aU" = (/obj/structure/closet/crate/freezer,/turf/simulated/floor/tiled/freezer,/area/submap/Diner) +"aV" = (/obj/machinery/gibber,/turf/simulated/floor/tiled/freezer,/area/submap/Diner) +"aW" = (/obj/machinery/light/small,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aX" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aY" = (/obj/machinery/cooker/fryer,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aZ" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/outdoors/dirt,/area/submap/Diner) +"ba" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/submap/Diner) +"bb" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/cooker/grill,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"bc" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Diner) +"bd" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled,/area/submap/Diner) +"be" = (/obj/structure/simple_door/wood,/turf/simulated/floor/tiled,/area/submap/Diner) +"bf" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled/white,/area/submap/Diner) +"bg" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/structure/closet/secure_closet/freezer/fridge,/obj/item/weapon/storage/fancy/egg_box,/obj/item/weapon/storage/fancy/egg_box,/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"bh" = (/obj/structure/table/standard,/obj/machinery/chemical_dispenser/bar_coffee,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"bi" = (/obj/item/frame/apc,/turf/simulated/floor/lino,/area/submap/Diner) +"bj" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/turf/simulated/floor/lino,/area/submap/Diner) +"bk" = (/obj/structure/bed/chair/office/light,/turf/simulated/floor/lino,/area/submap/Diner) +"bl" = (/turf/simulated/floor/lino,/area/submap/Diner) +"bm" = (/obj/structure/bed/chair/wood{dir = 1},/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/submap/Diner) +"bn" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/lino,/area/submap/Diner) +"bo" = (/obj/structure/table/woodentable,/obj/item/weapon/cell/high,/turf/simulated/floor/lino,/area/submap/Diner) +"bp" = (/obj/structure/table/woodentable,/turf/simulated/floor/lino,/area/submap/Diner) +"bq" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/lino,/area/submap/Diner) +"br" = (/obj/structure/simple_door/wood,/turf/simulated/floor/lino,/area/submap/Diner) +"bs" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/structure/windoor_assembly{tag = "icon-l_windoor_assembly01"; icon_state = "l_windoor_assembly01"; dir = 2},/turf/simulated/floor/tiled/white,/area/submap/Diner) +"bt" = (/obj/structure/bookcase,/turf/simulated/floor/lino,/area/submap/Diner) +"bu" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/space_heater,/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"bv" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor/tiled/hydro,/area/submap/Diner) +"bw" = (/turf/simulated/floor/tiled/hydro,/area/submap/Diner) +"bx" = (/obj/structure/toilet,/turf/simulated/floor/tiled/hydro,/area/submap/Diner) +"by" = (/obj/structure/bed/chair/wood{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"bz" = (/obj/structure/bed/chair/wood{dir = 8},/obj/effect/floor_decal/corner/red/diagonal,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"bA" = (/obj/structure/simple_door/wood,/turf/simulated/floor/tiled/hydro,/area/submap/Diner) +"bB" = (/obj/structure/mirror{dir = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/submap/Diner) +"bC" = (/obj/machinery/light/small,/turf/simulated/floor/tiled/hydro,/area/submap/Diner) +"bD" = (/obj/structure/table/standard,/turf/simulated/floor/tiled/hydro,/area/submap/Diner) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaabababacabababababadaeaeadadadadadadadadabababaa +aaabababacacabababadadafafadagahaiajakalamadababaa +aaabanacacacababadadafaoaoadapapapapapapapadadabaa +aaababacacacabadadaqafarasadatapauahavapapawadadaa +aaababacacacabadafafafaxaxadapapapapapapapapayadaa +aaababacacacabaeaoaoafafafadazazadaAadadaBadadadaa +aaababacacacabaeaCaDafafaEaFaGaGadaHadaIaIaIaJadaa +aaababacacacabaeaxaxafafaEaKafaLadaMadaNaIaIaOadaa +aaababacacacabadafafafafaEaPafaQadaHadaRaIaIaIadaa +aaababacacacacadadadaSafaEaFafaTadaHadaUaIaIaVadaa +aaababacacacacazaWazaXafaEaFafaYadaHadadadadadadaa +aaababacacacaZadadadbaafaEaFafbbadaHbcbdaHbebdbeaa +aaanabacacacabaeaoaoafafaEaFafbfadbcbcbcbcbeaHbeaa +aaababacacacabaeaCaDafafaEaFafbgadbcadadadadadadaa +aaababacacacabaeaxaxafafaEaFafbhadaHadbibjbkbladaa +aaababacacacabadbmaoafafaEaPafahadaHadbnbobpbqadaa +aaababacacacabaeaCaDafafaEaKafaLadaMbrblblblbladaa +aaababacacacabaeaxaxafafaEaFahbsadaHadblblbtbtadaa +aaababacacacabaeafafafafafafafafadadadadadadadadaa +aaababacacacabadadbuafafafafafafadbvbwbxadadadadaa +aaabababacabababadadafafbyaDbzafbAbwbwbwadadadabaa +aaabanababababababadadafbyaCbzafadbBbCbDadadababaa +aaabababababababababadadaeaeaeadadadadadadabababaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/maps/submaps/surface_submaps/plains/Mechpt.dmm b/maps/submaps/surface_submaps/plains/Mechpt.dmm new file mode 100644 index 0000000000..3f122e9900 --- /dev/null +++ b/maps/submaps/surface_submaps/plains/Mechpt.dmm @@ -0,0 +1,45 @@ +"a" = (/turf/template_noop,/area/template_noop) +"b" = (/turf/template_noop,/area/submap/Mechpt) +"c" = (/obj/item/trash/chips,/turf/template_noop,/area/submap/Mechpt) +"d" = (/obj/structure/railing,/turf/template_noop,/area/submap/Mechpt) +"e" = (/obj/structure/railing,/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/chips,/turf/template_noop,/area/submap/Mechpt) +"f" = (/obj/structure/railing,/obj/structure/table/woodentable,/obj/item/weapon/cell/high,/obj/item/weapon/cell/high,/turf/template_noop,/area/submap/Mechpt) +"g" = (/obj/structure/railing,/obj/structure/table/woodentable,/turf/template_noop,/area/submap/Mechpt) +"h" = (/obj/structure/railing,/obj/structure/table/woodentable,/obj/item/weapon/spacecash/c10,/obj/item/weapon/spacecash/c10,/turf/template_noop,/area/submap/Mechpt) +"i" = (/obj/structure/railing{tag = "icon-railing0 (EAST)"; icon_state = "railing0"; dir = 4},/turf/template_noop,/area/submap/Mechpt) +"j" = (/turf/simulated/floor/outdoors/dirt,/area/submap/Mechpt) +"k" = (/obj/structure/railing{tag = "icon-railing0 (WEST)"; icon_state = "railing0"; dir = 8},/turf/template_noop,/area/submap/Mechpt) +"l" = (/obj/item/stack/rods,/turf/simulated/floor/outdoors/dirt,/area/submap/Mechpt) +"m" = (/obj/effect/decal/cleanable/blood/oil,/turf/simulated/floor/outdoors/dirt,/area/submap/Mechpt) +"n" = (/obj/effect/decal/cleanable/blood/oil/streak,/turf/simulated/floor/outdoors/dirt,/area/submap/Mechpt) +"o" = (/obj/effect/decal/mecha_wreckage/ripley/deathripley,/turf/simulated/floor/outdoors/dirt,/area/submap/Mechpt) +"p" = (/obj/effect/decal/mecha_wreckage/ripley/firefighter,/turf/simulated/floor/outdoors/dirt,/area/submap/Mechpt) +"q" = (/obj/item/stack/cable_coil,/turf/simulated/floor/outdoors/dirt,/area/submap/Mechpt) +"r" = (/obj/structure/railing{tag = "icon-railing0 (NORTH)"; icon_state = "railing0"; dir = 1},/turf/template_noop,/area/submap/Mechpt) +"s" = (/obj/structure/railing{tag = "icon-railing0 (NORTH)"; icon_state = "railing0"; dir = 1},/obj/structure/table/woodentable,/obj/structure/reagent_dispensers/beerkeg,/turf/template_noop,/area/submap/Mechpt) +"t" = (/obj/structure/railing{tag = "icon-railing0 (NORTH)"; icon_state = "railing0"; dir = 1},/obj/structure/table/woodentable,/obj/item/weapon/spacecash/c50,/turf/template_noop,/area/submap/Mechpt) +"u" = (/obj/structure/railing{tag = "icon-railing0 (NORTH)"; icon_state = "railing0"; dir = 1},/obj/structure/table/woodentable,/turf/template_noop,/area/submap/Mechpt) +"v" = (/obj/structure/railing{tag = "icon-railing0 (NORTH)"; icon_state = "railing0"; dir = 1},/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer,/turf/template_noop,/area/submap/Mechpt) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +abbbbbbbbbbbbbbbbbbbbbbbbbbbba +abbbbbbbbbcbbbbbbbbbbbbbbbbbba +abbdddddddddefghgdddddddddddba +abijjjjjjjjjjjjjjjjjjjjjjjjjka +abijjjjjjjjjjjjjjjjjjjjjjjjjka +abijjjljjjjjjjjjjjjmjjjnjjjjka +abijjjjjmjjjjjjjjjjjjjjjjjjjka +ajjjjjjjjjjojjjjjjjjjjjjjjjjja +abjjjjjjjjjjjjjjjjjjjjjjjjjjja +abijjjjjjjjjjjpjjjmjjjjjjjjjka +abijjjjjjjjjjjjjjjjjjjjjjjjjka +abijjjjjjjmjjqjjjjjjjjjjjjjjka +abijnjjjjjjjjjjjjjjjjjjjjjjjka +abijjjjjjjjjjjjjjjjjjjjjjjjjka +abbrrrrrrrrrstutvrrrrrrrrrrrba +abbbbbbbbbbbbbbbbbbbbbbbbbbbba +abbbbbbbbbbbbbbbbbbbbbbbbbbbba +abbbbbbbbbbbbbbbbbbbbbbbbbbbba +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/maps/submaps/surface_submaps/plains/PooledR.dmm b/maps/submaps/surface_submaps/plains/PooledR.dmm new file mode 100644 index 0000000000..8415e01135 --- /dev/null +++ b/maps/submaps/surface_submaps/plains/PooledR.dmm @@ -0,0 +1,55 @@ +"a" = (/turf/template_noop,/area/template_noop) +"b" = (/turf/template_noop,/area/submap/PooledR) +"c" = (/turf/simulated/mineral/ignore_mapgen,/area/submap/PooledR) +"d" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/submap/PooledR) +"e" = (/obj/structure/table/woodentable,/turf/template_noop,/area/submap/PooledR) +"f" = (/obj/structure/table/woodentable,/obj/item/weapon/material/knife,/turf/template_noop,/area/submap/PooledR) +"g" = (/obj/structure/flora/ausbushes/palebush,/turf/template_noop,/area/submap/PooledR) +"h" = (/obj/structure/table/woodentable,/obj/item/weapon/gun/energy/retro,/turf/template_noop,/area/submap/PooledR) +"i" = (/obj/structure/flora/ausbushes/reedbush,/turf/template_noop,/area/submap/PooledR) +"j" = (/turf/simulated/floor/outdoors/rocks,/area/submap/PooledR) +"k" = (/obj/structure/flora/ausbushes,/turf/template_noop,/area/submap/PooledR) +"l" = (/turf/simulated/floor/water,/area/submap/PooledR) +"m" = (/obj/structure/flora/ausbushes/grassybush,/turf/template_noop,/area/submap/PooledR) +"n" = (/mob/living/simple_animal/fish/trout,/turf/simulated/floor/water,/area/submap/PooledR) +"o" = (/mob/living/simple_animal/fish/salmon,/turf/simulated/floor/water,/area/submap/PooledR) +"p" = (/turf/simulated/floor/water/deep,/area/submap/PooledR) +"q" = (/mob/living/simple_animal/fish/bass,/turf/simulated/floor/water/deep,/area/submap/PooledR) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +abbbbbbbbbbbbbbbbbbbbbbbbbbbcccbbba +abbbbbbbbbbbbbbbbbbbbbbbbbbbccccbba +abbbbbbbbbbbbbbbbbbbbbbbbbcccccccba +abbbbbbbbbbbbbbbbbbbbdbbbbcccccccba +abbbbbbbbbbbdbbbbbbbbbbbbbcccccccba +abbbbbbbbbbbbbbbbbbbbbdbbccccccccba +abbbbbbbbbbbbbbbbbbbbbbbbccccccccba +abbbbbbbbbbbbbbbbbbbbbbbbccccccccba +abbbbbbbbbbbbbbbbbbbbbbbbccccccccba +abbbbbbbbbbbbbbbbbbbbbbbbcccccccbba +abbdbbbbbbbbbbbbbbbbbbbbbeccccccbba +abbbbbbbdbbbbbbbbbbbbbbbbfcccccbbba +abbbbbbbbbbbbbbbbbbbbgbbbhcccccbbba +abccbbbbbbbbbbbbbbbbbbibccccccbbbba +abcccbbbgbbbbbbibbjjjjjjccccccbbbba +abcccbbbbbbkbbbjjjjlllllccccccbbbba +acccccbbbbbbbjjjjllllllllcccccbbbba +acccccbmbbbjjjllllllllllllccccbbbba +acccccbbbijjjllllllllnlllccccccbbba +abccccbbjjjllllllllllllllccccccbbba +abcccccjjlllllolllllpppppccccccbbba +abccccccjlllllllllppppppcccccccbbba +abcccccccccllllppppqppppccccccccbba +abccccccccccclpppppppppcccccccccbba +abccccccccccccpppppppppcccccccccbba +abcccccccccccccpppppppccccccccccbba +abbccccccccccccccccppccccccccccbbba +abbcccccccccccccccccccccccccccccbba +abbbcccccccccccccccccccccccccccbbba +abbbbcccccccccccccccccccccccccbbbba +abbbbbbbbccccccccccccccccccccbbbbba +abbbbbbbbbbbbbcccccccccccbbbbbbbbba +abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/maps/submaps/surface_submaps/plains/Rocky2.dmm b/maps/submaps/surface_submaps/plains/Rocky2.dmm new file mode 100644 index 0000000000..eaa06c481a --- /dev/null +++ b/maps/submaps/surface_submaps/plains/Rocky2.dmm @@ -0,0 +1,40 @@ +"a" = (/turf/template_noop,/area/template_noop) +"b" = (/turf/template_noop,/area/submap/Rocky2) +"c" = (/turf/simulated/mineral/ignore_mapgen,/area/submap/Rocky2) +"d" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/submap/Rocky2) +"e" = (/turf/simulated/floor/outdoors/dirt,/area/submap/Rocky2) +"f" = (/obj/structure/flora/tree/pine,/turf/template_noop,/area/submap/Rocky2) +"g" = (/obj/structure/flora/ausbushes/grassybush,/turf/template_noop,/area/submap/Rocky2) +"h" = (/obj/structure/flora/ausbushes/fullgrass,/turf/template_noop,/area/submap/Rocky2) +"i" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/template_noop,/area/submap/Rocky2) +"j" = (/obj/structure/flora/ausbushes/sunnybush,/turf/template_noop,/area/submap/Rocky2) +"k" = (/obj/structure/flora/ausbushes/stalkybush,/turf/template_noop,/area/submap/Rocky2) +"l" = (/obj/structure/flora/tree/dead,/turf/template_noop,/area/submap/Rocky2) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaa +abbbbbbbbbbbbbbbbbccbbbba +abbbbbbbcccccccccbcccbbda +abbbbbbccccccccbbbccccbba +abbbeecccccccccbbcccccbba +afbbecccccccbccbcccccccba +abbbecccccccgbbbcccccccba +abbbbccccccbbbbbcccccceba +abbbbcccccbhbfbbbcccceeea +abbbbbbcccbbbbbbicccceeea +abbbbbbcccbdbbhbbcccceeea +abdbbbccccbbbbbbbbccceeea +abbbbccccbbhbbbbbbcceeeea +abbbccccccfbbbdbbbcccceea +abbeccccccbbbbbbficccceea +abbeccccccbgbhbbbbccccbba +abbeecccccbbbbbbbbcccccba +abbeecccccjbdbbbhbcccccba +abbbecccccbbbbbbbccccccba +abbbeccceebbkbbbbccccccba +abbbbccceeccbbfbcccccbbba +abbbbccceeeccccccccccbbba +ablbbcccbeccccccbbbcbblba +abbbbbbbbbbbcccbbbbbbbbba +aaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/maps/submaps/surface_submaps/plains/Shakden.dmm b/maps/submaps/surface_submaps/plains/Shakden.dmm index 15614265ef..8720149d63 100644 --- a/maps/submaps/surface_submaps/plains/Shakden.dmm +++ b/maps/submaps/surface_submaps/plains/Shakden.dmm @@ -1,13 +1,14 @@ "a" = (/turf/template_noop,/area/template_noop) "b" = (/turf/template_noop,/area/submap/Shakden) "c" = (/turf/simulated/mineral/ignore_mapgen,/area/submap/Shakden) -"d" = (/turf/simulated/floor/outdoors/dirt,/area/submap/Shakden) -"e" = (/obj/effect/decal/remains/mouse,/turf/simulated/floor/outdoors/dirt,/area/submap/Shakden) -"f" = (/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/turf/simulated/floor/outdoors/dirt,/area/submap/Shakden) -"g" = (/mob/living/simple_animal/hostile/shantak{hostile = 0},/turf/simulated/floor/outdoors/dirt,/area/submap/Shakden) -"h" = (/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/turf/simulated/floor/outdoors/dirt,/area/submap/Shakden) -"i" = (/obj/item/weapon/reagent_containers/food/snacks/meat,/turf/simulated/floor/outdoors/dirt,/area/submap/Shakden) -"j" = (/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/material/knife/hook,/turf/simulated/floor/outdoors/dirt,/area/submap/Shakden) +"d" = (/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Shakden) +"e" = (/obj/effect/decal/remains/mouse,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Shakden) +"f" = (/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Shakden) +"g" = (/mob/living/simple_animal/hostile/shantak{hostile = 0},/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Shakden) +"h" = (/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Shakden) +"i" = (/mob/living/simple_animal/hostile/shantak{hostile = 0},/turf/simulated/floor/outdoors/dirt,/area/submap/Shakden) +"j" = (/obj/item/weapon/reagent_containers/food/snacks/meat,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Shakden) +"k" = (/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/material/knife/hook,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Shakden) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaa @@ -25,7 +26,7 @@ abcedddddddddccdddba accddgddgdddcccdddba acccdddddddcccdddbba acccddgdddfcccdddbba -accccdddgijcccddcbba +accccdddijkcccddcbba abccccddddecccddccba abccccccccccccccccba abbccccccbbbbccccbba diff --git a/maps/submaps/surface_submaps/plains/Smol3.dmm b/maps/submaps/surface_submaps/plains/Smol3.dmm new file mode 100644 index 0000000000..fce902093c --- /dev/null +++ b/maps/submaps/surface_submaps/plains/Smol3.dmm @@ -0,0 +1,23 @@ +"a" = (/turf/template_noop,/area/template_noop) +"b" = (/turf/template_noop,/area/submap/Smol3) +"c" = (/turf/simulated/wall/wood,/area/submap/Smol3) +"d" = (/obj/structure/simple_door/wood,/turf/template_noop,/area/submap/Smol3) +"e" = (/turf/simulated/floor/outdoors/dirt,/area/submap/Smol3) +"f" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/turf/simulated/floor/outdoors/dirt,/area/submap/Smol3) +"g" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/chips,/obj/item/weapon/reagent_containers/food/snacks/chips,/obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle,/obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle,/obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle,/obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle,/obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle,/obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle,/turf/simulated/floor/outdoors/dirt,/area/submap/Smol3) +"h" = (/obj/structure/table/woodentable,/obj/item/weapon/paper{desc = "Lamen's Hunter Shack! Selling freshly hunted meat for six thalers a slab. Support Locale hunters! Also selling Getmore Products for 3 thalers a bag, or 2 thalers for a bottle of water. Please place all payments into the nearbye bag."},/turf/simulated/floor/outdoors/dirt,/area/submap/Smol3) +"i" = (/obj/structure/table/woodentable,/turf/simulated/floor/outdoors/dirt,/area/submap/Smol3) +"j" = (/obj/structure/table/woodentable,/obj/item/weapon/moneybag,/turf/simulated/floor/outdoors/dirt,/area/submap/Smol3) + +(1,1,1) = {" +aaaaaaaaaaaaaaa +abbbbbbbbbbbbba +abbbccdccbbbbba +abbbceeecbbbbba +abbbcfegcbbbbba +abbbchijcbbbbba +abbeeeeeeebbbba +abeeeeeeeeeebba +abbbbbbbbbbbbba +aaaaaaaaaaaaaaa +"} diff --git a/maps/submaps/surface_submaps/plains/Theifc.dmm b/maps/submaps/surface_submaps/plains/Theifc.dmm new file mode 100644 index 0000000000..d17d59ca15 --- /dev/null +++ b/maps/submaps/surface_submaps/plains/Theifc.dmm @@ -0,0 +1,39 @@ +"a" = (/turf/template_noop,/area/template_noop) +"b" = (/turf/template_noop,/area/submap/Theifc) +"c" = (/turf/simulated/mineral/ignore_mapgen,/area/submap/Theifc) +"d" = (/obj/structure/ore_box,/obj/item/weapon/ore/coal,/obj/item/weapon/ore/coal,/obj/item/weapon/ore/coal,/obj/item/weapon/ore/coal,/obj/item/weapon/ore/coal,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Theifc) +"e" = (/obj/structure/closet/crate,/obj/item/weapon/extinguisher,/obj/item/weapon/extinguisher,/obj/item/weapon/extinguisher,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Theifc) +"f" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Theifc) +"g" = (/obj/item/weapon/ore/coal,/obj/item/weapon/ore/coal,/obj/item/weapon/ore/coal,/obj/item/weapon/ore/coal,/obj/item/weapon/ore/coal,/obj/item/weapon/ore/coal,/obj/item/weapon/ore/coal,/obj/item/weapon/ore/coal,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Theifc) +"h" = (/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Theifc) +"i" = (/obj/structure/closet/crate,/obj/item/weapon/lipstick,/obj/item/weapon/lipstick/black,/obj/item/weapon/lipstick/random,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Theifc) +"j" = (/obj/structure/table/steel,/obj/item/weapon/beartrap,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Theifc) +"k" = (/obj/vehicle/train/cargo/trolley,/obj/random/firstaid,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Theifc) +"l" = (/obj/structure/closet/crate,/obj/item/weapon/folder/blue,/obj/item/weapon/folder/red,/obj/item/weapon/folder/white,/obj/item/weapon/folder/yellow,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Theifc) +"m" = (/obj/structure/table/steel,/obj/item/weapon/paper{desc = "This is some bullshit. First chance we got to knick something that looks half decent turns out to be mostly junk. And now we're getting calls that the other stash we've got has got a spider problem. Fuck this, Between the shitty weather, The pissed of bugs, And now apparently some NT goon running around in the area there's hardly enough reason to stick around. I'm telling Carl I'm out tommorow."; name = "Note"},/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Theifc) +"n" = (/obj/vehicle/train/cargo/trolley,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Theifc) +"o" = (/obj/structure/closet/crate,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Theifc) +"p" = (/obj/structure/closet/crate,/obj/item/weapon/storage/box/shotgunammo,/obj/item/weapon/storage/box/practiceshells,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Theifc) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaa +abcbbbbbcccccccbbbbbbbbba +abccccccccdecccccbbbbbbba +accccccccfghcchcccbbbbbba +accccccchhhhihhccccbbbbba +abcccccjhhkhhhlccccbbbbba +abbccccmhhnhhhocccccbbbba +abbbbbcchhhhhhpccccccbbba +abbbbcccchhhhchccccccbbba +abbbcccccchhcccccccccbbba +abbbbccchhhhccccccccbbbba +abbbbbhhhhhcccccccccbbbba +abbbbbhhhccccccccccbbbbba +abbbccccccccccccccbbbbbba +abbbbbcccccccccccbbbbbbba +abbbbbbbbbbbbbbbbbbbbbbba +abbbbbbbbbbbbbbbbbbbbbbba +abbbbbbbbbbbbbbbbbbbbbbba +abbbbbbbbbbbbbbbbbbbbbbba +aaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/maps/submaps/surface_submaps/plains/plains.dm b/maps/submaps/surface_submaps/plains/plains.dm index 3ec4b24c52..563e41b717 100644 --- a/maps/submaps/surface_submaps/plains/plains.dm +++ b/maps/submaps/surface_submaps/plains/plains.dm @@ -12,8 +12,22 @@ #include "bonfire.dmm" #include "Rocky5.dmm" #include "Field1.dmm" +#include "Theifc.dmm" +#include "smol2.dmm" +#include "Mechpt.dmm" +#include "Boathouse.dmm" +#include "PooledR.dmm" +#include "Smol3.dmm" +#include "Diner.dmm" +#include "Snow1.dmm" +#include "Snow2.dmm" +#include "Snow3.dmm" +#include "Snow4.dmm" +#include "Snow5.dmm" + #endif + // The 'plains' is the area outside the immediate perimeter of the big outpost. // POIs here should not be dangerous, be mundane, and be somewhat conversative on the loot. Some of the loot can be useful, but it shouldn't trivialize the Wilderness. @@ -94,4 +108,76 @@ name = "Field 1" desc = "A regular field with a tug on it" mappath = 'maps/submaps/surface_submaps/plains/Field1.dmm' - cost = 20 \ No newline at end of file + cost = 20 + +/datum/map_template/surface/plains/Theifc + name = "Theif Cave" + desc = "A theives stash" + mappath = 'maps/submaps/surface_submaps/plains/Theifc.dmm' + cost = 20 + +/datum/map_template/surface/plains/smol2 + name = "Small 2" + desc = "A small formation of mishaped surgery" + mappath = 'maps/submaps/surface_submaps/plains/smol2.dmm' + cost = 10 + +/datum/map_template/surface/plains/Mechpt + name = "Mechpit" + desc = "A illmade Mech brawling ring" + mappath = 'maps/submaps/surface_submaps/plains/Mechpt.dmm' + cost = 15 + +/datum/map_template/surface/plains/Boathouse + name = "Boathouse" + desc = "A fance house on a lake." + mappath = 'maps/submaps/surface_submaps/plains/Boathouse.dmm' + cost = 30 + +/datum/map_template/surface/plains/PooledR + name = "Pooled Rocks" + desc = "An intresting rocky location" + mappath = 'maps/submaps/surface_submaps/plains/PooledR.dmm' + cost = 15 + +/datum/map_template/surface/plains/Smol3 + name = "Small 3" + desc = "A small stand" + mappath = 'maps/submaps/surface_submaps/plains/Smol3.dmm' + cost = 10 + +/datum/map_template/surface/plains/Diner + name = "Diner" + desc = "Old Timey Tasty" + mappath = 'maps/submaps/surface_submaps/plains/Diner.dmm' + cost = 25 + +/datum/map_template/surface/plains/snow1 + name = "Snow1" + desc = "Snow" + mappath = 'maps/submaps/surface_submaps/plains/snow1.dmm' + cost = 5 + +/datum/map_template/surface/plains/snow2 + name = "Snow2" + desc = "More snow" + mappath = 'maps/submaps/surface_submaps/plains/snow2.dmm' + cost = 5 + +/datum/map_template/surface/plains/snow3 + name = "Snow3" + desc = "Snow Snow Snow" + mappath = 'maps/submaps/surface_submaps/plains/snow3.dmm' + cost = 5 + +/datum/map_template/surface/plains/snow4 + name = "Snow4" + desc = "Too much snow" + mappath = 'maps/submaps/surface_submaps/plains/snow4.dmm' + cost = 5 + +/datum/map_template/surface/plains/snow5 + name = "Snow5" + desc = "Please stop the snow" + mappath = 'maps/submaps/surface_submaps/plains/snow5.dmm' + cost = 5 diff --git a/maps/submaps/surface_submaps/plains/plains_areas.dm b/maps/submaps/surface_submaps/plains/plains_areas.dm index 6ff8b085df..2e6c0f7015 100644 --- a/maps/submaps/surface_submaps/plains/plains_areas.dm +++ b/maps/submaps/surface_submaps/plains/plains_areas.dm @@ -36,3 +36,40 @@ /area/submap/Field1 name = "Field 1" + +/area/submap/Theifc + name = "Theif Cave" + +/area/submap/smol2 + name = "Small 2" + +/area/submap/Mechpt + name = "Mech Pit" + +/area/submap/Boathouse + name = "Boathouse" + +/area/submap/Smol3 + name = "Small 3" + +/area/submap/PooledR + name = "Pooled Rocks" + +/area/submap/Diner + name = "Diner" + +/area/submap/snow1 + name = "Snow1" + +/area/submap/snow2 + name = "Snow2" + +/area/submap/snow3 + name = "Snow3" + +/area/submap/snow4 + name = "Snow4" + +/area/submap/snow5 + name = "Snow5" + diff --git a/maps/submaps/surface_submaps/plains/smol2.dmm b/maps/submaps/surface_submaps/plains/smol2.dmm new file mode 100644 index 0000000000..739a000ce1 --- /dev/null +++ b/maps/submaps/surface_submaps/plains/smol2.dmm @@ -0,0 +1,21 @@ +"a" = (/turf/template_noop,/area/template_noop) +"b" = (/turf/template_noop,/area/submap/smol2) +"c" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/submap/smol2) +"d" = (/turf/simulated/mineral/ignore_mapgen,/area/submap/smol2) +"e" = (/obj/item/stack/material/wood/sif,/obj/item/stack/material/wood/sif,/obj/item/stack/material/wood/sif,/obj/item/stack/material/wood/sif,/obj/item/stack/material/wood/sif,/obj/item/stack/material/wood/sif,/turf/template_noop,/area/submap/smol2) +"f" = (/obj/structure/table/woodentable,/turf/template_noop,/area/submap/smol2) +"g" = (/obj/item/weapon/storage/firstaid,/obj/item/stack/medical/splint,/obj/item/weapon/reagent_containers/pill/tramadol,/turf/template_noop,/area/submap/smol2) +"h" = (/obj/effect/decal/cleanable/blood,/turf/template_noop,/area/submap/smol2) + +(1,1,1) = {" +aaaaaaaaaa +abbbcbbdda +abbbbbddda +acbbebbdda +abbbbfddba +abbbghddba +adddddddba +abddddbbba +abbbbbbbba +aaaaaaaaaa +"} diff --git a/maps/submaps/surface_submaps/plains/snow1.dmm b/maps/submaps/surface_submaps/plains/snow1.dmm new file mode 100644 index 0000000000..ec5c8ea00c --- /dev/null +++ b/maps/submaps/surface_submaps/plains/snow1.dmm @@ -0,0 +1,16 @@ +"a" = (/turf/template_noop,/area/template_noop) +"b" = (/turf/template_noop,/area/submap/snow1) +"c" = (/turf/simulated/floor/outdoors/snow,/area/submap/snow1) + +(1,1,1) = {" +aaaaaaaaaa +abbbcccbba +abbcccccba +abccccccba +abccccccca +acccccccba +accccccbba +abcccccbba +abbbbbbbba +aaaaaaaaaa +"} diff --git a/maps/submaps/surface_submaps/plains/snow2.dmm b/maps/submaps/surface_submaps/plains/snow2.dmm new file mode 100644 index 0000000000..bedbb62d51 --- /dev/null +++ b/maps/submaps/surface_submaps/plains/snow2.dmm @@ -0,0 +1,26 @@ +"a" = (/turf/template_noop,/area/template_noop) +"b" = (/turf/template_noop,/area/submap/smol2) +"c" = (/turf/simulated/floor/outdoors/snow,/area/submap/smol2) + +(1,1,1) = {" +aaaaaaaaaaaaaaa +abbbbbbbbbcbbba +abbbbbbbbcccbba +abbbbbbcccccbba +abbbbbccccccbba +abbbbccccccbbba +abbbbccccccbbba +abbbbccccccbbba +abbbcccccccbbba +abbbcccccccbbba +abbbcccccccbbba +abbbccccccbbbba +abbcccccccbbbba +abbccccccbbbbba +abbcccccbbbbbba +abbccccbbbbbbba +abccccbbbbbbbba +abccbcbbbbbbbba +abbbbbbbbbbbbba +aaaaaaaaaaaaaaa +"} diff --git a/maps/submaps/surface_submaps/plains/snow3.dmm b/maps/submaps/surface_submaps/plains/snow3.dmm new file mode 100644 index 0000000000..56e9a78878 --- /dev/null +++ b/maps/submaps/surface_submaps/plains/snow3.dmm @@ -0,0 +1,16 @@ +"a" = (/turf/template_noop,/area/template_noop) +"b" = (/turf/template_noop,/area/submap/snow3) +"c" = (/turf/simulated/floor/outdoors/snow,/area/submap/snow3) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaa +abbbbccccccbbbbbbbba +abbcccccccccccccbbba +abccccccccccccccccca +abccccccccccccccccca +abccccccccccccccccba +abccccccccccccccbbba +abbbcccccccccccbbbba +abbbbbbbcccbbbbbbbba +aaaaaaaaaaaaaaaaaaaa +"} diff --git a/maps/submaps/surface_submaps/plains/snow4.dmm b/maps/submaps/surface_submaps/plains/snow4.dmm new file mode 100644 index 0000000000..4d766fcf82 --- /dev/null +++ b/maps/submaps/surface_submaps/plains/snow4.dmm @@ -0,0 +1,16 @@ +"a" = (/turf/template_noop,/area/template_noop) +"b" = (/turf/template_noop,/area/submap/snow4) +"c" = (/turf/simulated/floor/outdoors/snow,/area/submap/snow4) + +(1,1,1) = {" +aaaaaaaaaa +abbcbbbbba +abcccbcbba +abccccccba +abbccccbba +abcccccbba +acccccccba +acccbcccba +abcbbbccba +aaaaaaaaaa +"} diff --git a/maps/submaps/surface_submaps/plains/snow5.dmm b/maps/submaps/surface_submaps/plains/snow5.dmm new file mode 100644 index 0000000000..d14b78e01e --- /dev/null +++ b/maps/submaps/surface_submaps/plains/snow5.dmm @@ -0,0 +1,22 @@ +"a" = (/turf/template_noop,/area/template_noop) +"b" = (/turf/template_noop,/area/submap/snow5) +"c" = (/turf/simulated/floor/outdoors/snow,/area/submap/snow5) + +(1,1,1) = {" +aaaaaaaaaaaa +abbcccccbbba +abcccccccbba +abcccccccbba +abbcccccccba +abbcccccccba +abbbcccccbba +abbbccccccba +abbbbcccccba +abbbbcccccba +abbbbccccbba +abbbcccccbba +abbbccccbbba +abbbcccbbbba +abbcccbbbbba +aaaaaaaaaaaa +"} diff --git a/maps/submaps/surface_submaps/wilderness/Drugden.dmm b/maps/submaps/surface_submaps/wilderness/Drugden.dmm new file mode 100644 index 0000000000..2d73991959 --- /dev/null +++ b/maps/submaps/surface_submaps/wilderness/Drugden.dmm @@ -0,0 +1,74 @@ +"a" = (/turf/template_noop,/area/template_noop) +"b" = (/turf/template_noop,/area/submap/Drugd) +"c" = (/turf/simulated/mineral/ignore_mapgen,/area/submap/Drugd) +"d" = (/turf/simulated/wall,/area/submap/Drugd) +"e" = (/obj/machinery/door/airlock,/turf/simulated/floor,/area/submap/Drugd) +"f" = (/turf/simulated/floor/tiled,/area/submap/Drugd) +"g" = (/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled,/area/submap/Drugd) +"h" = (/obj/random/trash,/turf/simulated/floor,/area/submap/Drugd) +"i" = (/obj/structure/closet/cabinet,/obj/item/weapon/lipstick/random,/turf/simulated/floor/carpet,/area/submap/Drugd) +"j" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/structure/curtain/open/bed,/turf/simulated/floor/carpet,/area/submap/Drugd) +"k" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/pill/happy,/turf/simulated/floor/carpet,/area/submap/Drugd) +"l" = (/turf/simulated/floor,/area/submap/Drugd) +"m" = (/obj/structure/curtain/black,/turf/simulated/floor,/area/submap/Drugd) +"n" = (/obj/random/trash,/turf/simulated/floor/carpet,/area/submap/Drugd) +"o" = (/turf/simulated/floor/carpet,/area/submap/Drugd) +"p" = (/mob/living/simple_animal/mouse,/turf/simulated/floor,/area/submap/Drugd) +"q" = (/obj/structure/closet/cabinet,/turf/simulated/floor/carpet,/area/submap/Drugd) +"r" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/pill/methylphenidate,/turf/simulated/floor/carpet,/area/submap/Drugd) +"s" = (/obj/structure/bed/chair/comfy/beige{tag = "icon-armchair_preview (NORTH)"; icon_state = "armchair_preview"; dir = 1},/turf/simulated/floor/carpet,/area/submap/Drugd) +"t" = (/obj/item/weapon/reagent_containers/pill/citalopram,/turf/simulated/floor/carpet,/area/submap/Drugd) +"u" = (/obj/random/junk,/turf/simulated/floor,/area/submap/Drugd) +"v" = (/obj/structure/closet/cabinet,/obj/item/weapon/contraband/poster,/turf/simulated/floor/carpet,/area/submap/Drugd) +"w" = (/obj/structure/bed/chair/comfy/beige,/turf/simulated/floor/carpet,/area/submap/Drugd) +"x" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/obj/item/weapon/reagent_containers/syringe/drugs,/turf/simulated/floor/carpet,/area/submap/Drugd) +"y" = (/obj/structure/bed/chair/comfy/beige,/obj/item/weapon/reagent_containers/pill/citalopram,/turf/simulated/floor/carpet,/area/submap/Drugd) +"z" = (/obj/structure/loot_pile/maint/junk,/turf/simulated/floor,/area/submap/Drugd) +"A" = (/obj/item/weapon/reagent_containers/pill/citalopram,/obj/item/weapon/reagent_containers/pill/citalopram,/turf/simulated/floor/carpet,/area/submap/Drugd) +"B" = (/obj/structure/table/standard,/turf/simulated/floor/tiled,/area/submap/Drugd) +"C" = (/obj/structure/table/standard,/obj/item/stack/medical/splint,/turf/simulated/floor/tiled,/area/submap/Drugd) +"D" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/pill/citalopram,/obj/item/weapon/reagent_containers/pill/citalopram,/turf/simulated/floor/tiled,/area/submap/Drugd) +"E" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/pill/tramadol,/obj/item/weapon/reagent_containers/pill/tramadol,/turf/simulated/floor/tiled,/area/submap/Drugd) +"F" = (/obj/structure/closet/cabinet,/obj/item/clothing/accessory/jacket,/obj/item/weapon/material/butterfly/switchblade,/turf/simulated/floor/carpet,/area/submap/Drugd) +"G" = (/obj/item/weapon/reagent_containers/pill/zoom,/obj/random/trash,/turf/simulated/floor/carpet,/area/submap/Drugd) +"H" = (/obj/item/weapon/reagent_containers/pill/zoom,/turf/simulated/floor/carpet,/area/submap/Drugd) +"I" = (/obj/structure/loot_pile/maint/boxfort,/turf/simulated/floor/carpet,/area/submap/Drugd) +"J" = (/obj/structure/table/standard,/obj/item/weapon/surgical/scalpel,/turf/simulated/floor/tiled,/area/submap/Drugd) +"K" = (/obj/item/wheelchair,/turf/simulated/floor/tiled,/area/submap/Drugd) +"L" = (/obj/structure/table/standard,/obj/random/firstaid,/turf/simulated/floor,/area/submap/Drugd) +"M" = (/obj/structure/loot_pile/maint/junk,/turf/simulated/floor/tiled,/area/submap/Drugd) +"N" = (/obj/effect/floor_decal/rust,/obj/structure/table/standard,/turf/simulated/floor/tiled,/area/submap/Drugd) +"O" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/pill/tramadol,/turf/simulated/floor/carpet,/area/submap/Drugd) +"P" = (/mob/living/simple_animal/hostile/hivebot/range/guard,/turf/simulated/floor,/area/submap/Drugd) +"Q" = (/obj/structure/girder,/turf/simulated/floor,/area/submap/Drugd) +"R" = (/obj/item/weapon/material/shard,/turf/simulated/floor,/area/submap/Drugd) +"S" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/turf/simulated/floor/carpet,/area/submap/Drugd) +"T" = (/obj/structure/table/woodentable,/turf/simulated/floor/carpet,/area/submap/Drugd) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaa +abbbbbbbbbbbbbbbbbbbbbbba +abbbbbbbbbbbbbbbbbbbbbbba +abbbbbbbbbbbbbbbbbbbbbbba +abbcccccbbbbbbbbbbbbbbbba +abbccccccbbbbbbbbccccbbba +abcccccccccbbbbbccccccbba +abcccccccccddeddcccccccba +abcccccccccdfffddddddccba +abcccccccccdgghdijkjdccca +abcccccccccdgllmnooodccca +abcccccccccdplldqrstdccca +abcccccccccdulhddddddccca +abcccccccccdllldvwxydccba +acccccddddddzlgmoooAdccba +acccccdBCDEdllfdFGHIdccba +acccccdJKgLdlfMddddddccba +abccccdNllLdhlgdqOwwdccca +abbcccdlPllelllmoooodccca +abbcccdQlRldllhdqSTndccca +abbcccddddddludddddddccca +abbccccccccccccccccccccba +abbbcccccccccccccccccccba +abbbbcccccbbbbbccccbccbba +aaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/maps/submaps/surface_submaps/wilderness/Rockybase.dmm b/maps/submaps/surface_submaps/wilderness/Rockybase.dmm index efda8c92a0..b42bbb2ad1 100644 --- a/maps/submaps/surface_submaps/wilderness/Rockybase.dmm +++ b/maps/submaps/surface_submaps/wilderness/Rockybase.dmm @@ -9,151 +9,165 @@ "ai" = (/obj/machinery/porta_turret/stationary,/turf/simulated/floor,/area/submap/Rockybase) "aj" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor,/area/submap/Rockybase) "ak" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/template_noop) -"al" = (/obj/machinery/light,/turf/simulated/floor,/area/submap/Rockybase) -"am" = (/turf/simulated/wall/r_wall,/area/submap/Rockybase) -"an" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/submap/Rockybase) -"ao" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"ap" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_x = 5; pixel_y = 0},/obj/structure/curtain/open/shower,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) -"aq" = (/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) -"ar" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/structure/curtain/open/shower,/obj/item/weapon/soap,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) -"as" = (/obj/structure/table/woodentable,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) -"at" = (/obj/structure/table/woodentable,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) -"au" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) -"av" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) -"aw" = (/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) -"ax" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) -"ay" = (/obj/structure/table/woodentable,/obj/machinery/light{dir = 1},/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) -"az" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/item/toy/plushie/spider,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) -"aA" = (/obj/structure/closet/l3closet/janitor,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aB" = (/mob/living/bot/cleanbot{faction = "malf_drone"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aC" = (/obj/item/weapon/stool,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aD" = (/obj/item/weapon/storage/belt/janitor,/obj/structure/table/standard,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aE" = (/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aF" = (/obj/structure/table/standard,/obj/item/device/laptop,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aG" = (/obj/structure/table/standard,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aH" = (/obj/structure/table/rack,/obj/item/weapon/gun/projectile/pistol,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aI" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/gun/taser,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aJ" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aK" = (/obj/machinery/vending/coffee,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aL" = (/obj/structure/table/rack,/obj/item/weapon/gun/projectile/shotgun/pump/combat,/obj/item/weapon/gun/projectile/shotgun/pump/combat,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aM" = (/obj/machinery/vending/hydronutrients,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aN" = (/obj/structure/closet/crate/hydroponics,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aO" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_x = 5; pixel_y = 0},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) -"aP" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) -"aQ" = (/obj/structure/janitorialcart,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aR" = (/obj/structure/table/standard,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aS" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aT" = (/obj/structure/table/standard,/obj/item/weapon/paper{info = "Carl's absolutly fucked in the head. He's trying to squeeze as much drone production out as he can since he's worried we're gonna get found out but he's getting sloppier with each batch. Now's he's telling us he can speed the time on the IFF encoding. I already have a hard enough time getting these damn things not to stare at walls and now he's gonna shortchange the only part of these tincans that tells em not to turn us into paste on a wall. I told Richter to get out while he can, We're counting days before either some Sif task force shows up at our door or these things decide we aren't there friends anymore."; name = "Note"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aU" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aV" = (/obj/machinery/vending/security,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aW" = (/obj/structure/table/rack,/obj/item/weapon/storage/box/shotgunshells,/obj/item/weapon/storage/box/shotgunshells,/obj/item/weapon/storage/box/shotgunshells,/obj/item/ammo_magazine/m10mm,/obj/item/ammo_magazine/m10mm,/obj/item/ammo_magazine/m10mm,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aX" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aY" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/structure/curtain/open/shower,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) -"aZ" = (/obj/item/mecha_parts/part/gygax_left_leg,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) -"ba" = (/obj/machinery/light,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) -"bb" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/item/weapon/gun/projectile/pistol,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) -"bc" = (/obj/structure/closet/crate/trashcart,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bd" = (/obj/structure/loot_pile/maint/trash,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"be" = (/obj/structure/table/standard,/obj/item/weapon/storage/bag/trash,/obj/item/weapon/storage/bag/trash,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bf" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bg" = (/obj/machinery/light,/obj/structure/table/standard,/obj/item/weapon/pen,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bh" = (/obj/machinery/door/airlock/security{icon_state = "door_locked"; locked = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bi" = (/obj/machinery/light,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bj" = (/obj/structure/table/rack,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/gun/projectile/automatic/c20r,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bk" = (/obj/machinery/portable_atmospherics/hydroponics,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bl" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bm" = (/mob/living/bot/farmbot{faction = "malf_drone"; name = "Mr. Weddleton"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bn" = (/obj/machinery/portable_atmospherics/hydroponics,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bo" = (/obj/machinery/vending/cola,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bp" = (/obj/structure/door_assembly,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bq" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"br" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bs" = (/mob/living/simple_animal/hostile/malf_drone/lesser,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bt" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bu" = (/obj/effect/decal/remains,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bv" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) -"bw" = (/obj/machinery/vending/snack,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bx" = (/obj/item/stack/rods,/obj/structure/girder,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"by" = (/obj/item/mecha_parts/part/gygax_right_arm,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bz" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) -"bA" = (/obj/machinery/door/airlock/engineering,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bB" = (/turf/simulated/wall,/area/submap/Rockybase) -"bC" = (/obj/structure/table/standard,/obj/item/device/kit/paint/gygax/darkgygax,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bD" = (/obj/structure/table/standard,/obj/item/weapon/paper{info = "I've decided to go forward and start some small scale tests of the Vicerator delivery grenades, Might as wall make sure they work like the real ones. There are a few Fauna areas nearbye and we're working to make sure the kinks in the code are worked out. Once we've made sure they stay flying we'll work on the IFF signals."; name = "V-Grenade Notice 2"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bE" = (/obj/structure/table/standard,/obj/random/toolbox,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bF" = (/obj/structure/table/standard,/obj/random/toolbox,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bG" = (/obj/structure/table/standard,/obj/item/weapon/paper{info = "We've finally been able to get the Vicerator delivery grenades working, Took awhile to make sure the latching mechanism didn't fail but we're sure we've got it this time. Vel'Shem's worried about the miners having there own drone fab now but I say it's a small price to pay to keep the metal flowing, Especially since there telling us NT's starting to monopolize the metal rich parts."; name = "V-Grenade Notice 1"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bH" = (/obj/structure/table/standard,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bI" = (/obj/structure/table/standard,/obj/item/weapon/grenade/spawnergrenade/manhacks,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bJ" = (/obj/structure/table/standard,/obj/item/stack/material/steel,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bK" = (/obj/structure/table/standard,/obj/machinery/light{dir = 1},/obj/item/weapon/circuitboard/mecha/gygax/main,/obj/item/weapon/circuitboard/mecha/gygax/peripherals,/obj/item/weapon/circuitboard/mecha/gygax/targeting,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bL" = (/obj/item/weapon/material/shard,/turf/simulated/floor,/area/submap/Rockybase) -"bM" = (/obj/structure/table/standard,/obj/fiftyspawner/rods,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bN" = (/obj/machinery/vending/engivend,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bO" = (/obj/machinery/vending/tool,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bP" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bQ" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bR" = (/obj/item/mecha_parts/part/gygax_torso,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bS" = (/obj/machinery/light{dir = 1},/obj/structure/closet/crate/medical,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bT" = (/obj/structure/table/standard,/obj/structure/table/standard,/obj/effect/decal/cleanable/dirt,/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/burn,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bU" = (/obj/structure/table/standard,/obj/item/clothing/mask/breath/medical,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bV" = (/obj/structure/closet/secure_closet/medical2,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bW" = (/obj/structure/toilet{dir = 4},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) -"bX" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) -"bY" = (/obj/structure/table/standard,/obj/item/device/mmi/digital/robot,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bZ" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"ca" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cb" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/port_gen/pacman,/turf/simulated/floor,/area/submap/Rockybase) -"cc" = (/obj/item/stack/rods,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cd" = (/obj/effect/decal/cleanable/dirt,/obj/structure/girder,/turf/simulated/floor,/area/submap/Rockybase) -"ce" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/submap/Rockybase) -"cf" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/turf/simulated/floor,/area/submap/Rockybase) -"cg" = (/obj/structure/girder,/turf/simulated/floor,/area/submap/Rockybase) -"ch" = (/obj/structure/closet/secure_closet/medical1,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"ci" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) -"cj" = (/obj/machinery/drone_fabricator,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"ck" = (/obj/machinery/mecha_part_fabricator,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cl" = (/obj/machinery/pros_fabricator,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cm" = (/obj/structure/table/standard,/obj/item/mecha_parts/mecha_equipment/repair_droid,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cn" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"co" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cp" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cq" = (/obj/machinery/power/smes/buildable/point_of_interest,/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor,/area/submap/Rockybase) -"cr" = (/obj/machinery/vending/medical,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cs" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"ct" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/submap/Rockybase) -"cu" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/item/weapon/material/shard,/turf/simulated/floor,/area/submap/Rockybase) -"cv" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/submap/Rockybase) -"cw" = (/obj/item/mecha_parts/part/gygax_armour,/turf/simulated/floor,/area/submap/Rockybase) -"cx" = (/obj/item/mecha_parts/chassis/gygax,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cy" = (/mob/living/simple_animal/hostile/mecha/malf_drone{name = "Autonomous Mechanized Drone"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cz" = (/obj/machinery/vending/robotics,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cA" = (/obj/machinery/power/apc{cell_type = /obj/item/weapon/cell/super; dir = 8; name = "Unknown APC"; pixel_x = -24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cB" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cC" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cD" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cE" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/blood,/turf/simulated/floor,/area/submap/Rockybase) -"cF" = (/obj/item/mecha_parts/part/gygax_right_leg,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cG" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/item/mecha_parts/part/gygax_left_arm,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) -"cH" = (/obj/machinery/vending,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cI" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cJ" = (/obj/machinery/power/smes/buildable/point_of_interest,/obj/structure/cable/green,/turf/simulated/floor,/area/submap/Rockybase) -"cK" = (/obj/machinery/light{dir = 8},/obj/structure/closet/secure_closet/medical3,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cL" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/malf_drone/lesser,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cM" = (/obj/structure/closet/secure_closet/hydroponics,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cN" = (/obj/machinery/mech_recharger,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cO" = (/obj/structure/table/standard,/obj/item/stack/material/plasteel,/obj/item/stack/material/glass/reinforced,/obj/item/stack/material/phoron{amount = 25},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cP" = (/obj/structure/table/standard,/obj/item/stack/material/glass,/obj/item/stack/material/steel,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cQ" = (/obj/structure/table/standard,/obj/item/mecha_parts/part/gygax_head,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cR" = (/obj/structure/closet/toolcloset,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cS" = (/obj/structure/closet/secure_closet/medical3,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cT" = (/obj/item/weapon/surgical/surgicaldrill,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cU" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cV" = (/obj/item/clothing/suit/space/void/medical,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cW" = (/obj/effect/decal/cleanable/dirt,/mob/living/bot/medbot{faction = "malf_drone"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cX" = (/obj/machinery/vending/hydroseeds,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cY" = (/obj/structure/closet/crate/secure/hydrosec,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cZ" = (/obj/effect/decal/remains,/turf/template_noop,/area/template_noop) +"al" = (/obj/effect/floor_decal/industrial/danger,/turf/simulated/floor,/area/submap/Rockybase) +"am" = (/obj/machinery/light,/obj/effect/floor_decal/industrial/danger,/turf/simulated/floor,/area/submap/Rockybase) +"an" = (/obj/effect/decal/cleanable/blood,/obj/effect/floor_decal/industrial/danger,/turf/simulated/floor,/area/submap/Rockybase) +"ao" = (/turf/simulated/wall/r_wall,/area/submap/Rockybase) +"ap" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/submap/Rockybase) +"aq" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"ar" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_x = 5; pixel_y = 0},/obj/structure/curtain/open/shower,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) +"as" = (/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) +"at" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/structure/curtain/open/shower,/obj/item/weapon/soap,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) +"au" = (/obj/structure/table/woodentable,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) +"av" = (/obj/structure/table/woodentable,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) +"aw" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) +"ax" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) +"ay" = (/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) +"az" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) +"aA" = (/obj/structure/table/woodentable,/obj/machinery/light{dir = 1},/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) +"aB" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/item/toy/plushie/spider,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) +"aC" = (/obj/structure/closet/l3closet/janitor,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aD" = (/mob/living/bot/cleanbot{faction = "malf_drone"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aE" = (/obj/item/weapon/stool,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aF" = (/obj/item/weapon/storage/belt/janitor,/obj/structure/table/standard,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aG" = (/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aH" = (/obj/structure/table/standard,/obj/item/device/laptop,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aI" = (/obj/structure/table/standard,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aJ" = (/obj/structure/table/rack,/obj/item/weapon/gun/projectile/pistol,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aK" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/gun/taser,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aL" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aM" = (/obj/machinery/vending/coffee,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aN" = (/obj/structure/table/rack,/obj/item/weapon/gun/projectile/shotgun/pump/combat,/obj/item/weapon/gun/projectile/shotgun/pump/combat,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aO" = (/obj/machinery/vending/hydronutrients,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aP" = (/obj/structure/closet/crate/hydroponics,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aQ" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_x = 5; pixel_y = 0},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) +"aR" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) +"aS" = (/obj/structure/janitorialcart,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aT" = (/obj/structure/table/standard,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aU" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aV" = (/obj/structure/table/standard,/obj/item/weapon/paper{info = "Carl's absolutly fucked in the head. He's trying to squeeze as much drone production out as he can since he's worried we're gonna get found out but he's getting sloppier with each batch. Now's he's telling us he can speed the time on the IFF encoding. I already have a hard enough time getting these damn things not to stare at walls and now he's gonna shortchange the only part of these tincans that tells em not to turn us into paste on a wall. I told Richter to get out while he can, We're counting days before either some Sif task force shows up at our door or these things decide we aren't there friends anymore."; name = "Note"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aW" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aX" = (/obj/machinery/vending/security,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aY" = (/obj/structure/table/rack,/obj/item/weapon/storage/box/shotgunshells,/obj/item/weapon/storage/box/shotgunshells,/obj/item/weapon/storage/box/shotgunshells,/obj/item/ammo_magazine/m10mm,/obj/item/ammo_magazine/m10mm,/obj/item/ammo_magazine/m10mm,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aZ" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"ba" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/structure/curtain/open/shower,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) +"bb" = (/obj/item/mecha_parts/part/gygax_left_leg,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) +"bc" = (/obj/machinery/light,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) +"bd" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/item/weapon/gun/projectile/pistol,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) +"be" = (/obj/structure/closet/crate/trashcart,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bf" = (/obj/structure/loot_pile/maint/trash,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bg" = (/obj/structure/table/standard,/obj/item/weapon/storage/bag/trash,/obj/item/weapon/storage/bag/trash,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bh" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bi" = (/obj/machinery/light,/obj/structure/table/standard,/obj/item/weapon/pen,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bj" = (/obj/machinery/door/airlock/security{icon_state = "door_locked"; locked = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bk" = (/obj/machinery/light,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bl" = (/obj/structure/table/rack,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/gun/projectile/automatic/c20r,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bm" = (/obj/machinery/portable_atmospherics/hydroponics,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bn" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bo" = (/mob/living/bot/farmbot{faction = "malf_drone"; name = "Mr. Weddleton"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bp" = (/obj/machinery/portable_atmospherics/hydroponics,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bq" = (/obj/machinery/vending/cola,/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"br" = (/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bs" = (/obj/machinery/light{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bt" = (/obj/structure/door_assembly,/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bu" = (/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bv" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/cobweb2,/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bw" = (/mob/living/simple_animal/hostile/malf_drone/lesser,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bx" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"by" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bz" = (/obj/effect/decal/remains,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bA" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) +"bB" = (/obj/machinery/vending/snack,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bC" = (/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bD" = (/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bE" = (/obj/item/stack/rods,/obj/structure/girder,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bF" = (/obj/effect/decal/remains,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bG" = (/obj/machinery/light,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bH" = (/obj/effect/decal/cleanable/blood,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bI" = (/obj/item/mecha_parts/part/gygax_right_arm,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bJ" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) +"bK" = (/obj/machinery/door/airlock/engineering,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bL" = (/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bM" = (/turf/simulated/wall,/area/submap/Rockybase) +"bN" = (/obj/structure/table/standard,/obj/item/device/kit/paint/gygax/darkgygax,/obj/item/borg/upgrade/syndicate,/obj/item/borg/upgrade/vtec,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bO" = (/obj/structure/table/standard,/obj/item/weapon/paper{info = "I've decided to go forward and start some small scale tests of the Vicerator delivery grenades, Might as wall make sure they work like the real ones. There are a few Fauna areas nearbye and we're working to make sure the kinks in the code are worked out. Once we've made sure they stay flying we'll work on the IFF signals."; name = "V-Grenade Notice 2"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bP" = (/obj/structure/table/standard,/obj/random/toolbox,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bQ" = (/obj/structure/table/standard,/obj/random/toolbox,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bR" = (/obj/structure/table/standard,/obj/item/weapon/paper{info = "We've finally been able to get the Vicerator delivery grenades working, Took awhile to make sure the latching mechanism didn't fail but we're sure we've got it this time. Vel'Shem's worried about the miners having there own drone fab now but I say it's a small price to pay to keep the metal flowing, Especially since there telling us NT's starting to monopolize the metal rich parts."; name = "V-Grenade Notice 1"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bS" = (/obj/structure/table/standard,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bT" = (/obj/structure/table/standard,/obj/item/weapon/grenade/spawnergrenade/manhacks,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bU" = (/obj/structure/table/standard,/obj/item/stack/material/steel,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bV" = (/obj/structure/table/standard,/obj/machinery/light{dir = 1},/obj/item/weapon/circuitboard/mecha/gygax/main,/obj/item/weapon/circuitboard/mecha/gygax/peripherals,/obj/item/weapon/circuitboard/mecha/gygax/targeting,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bW" = (/obj/structure/door_assembly,/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bX" = (/obj/item/weapon/material/shard,/turf/simulated/floor,/area/submap/Rockybase) +"bY" = (/obj/structure/table/standard,/obj/fiftyspawner/rods,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bZ" = (/obj/machinery/vending/engivend,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"ca" = (/obj/machinery/vending/tool,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cb" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cc" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cd" = (/obj/item/mecha_parts/part/gygax_torso,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"ce" = (/obj/machinery/light{dir = 1},/obj/structure/closet/crate/medical,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cf" = (/obj/structure/table/standard,/obj/structure/table/standard,/obj/effect/decal/cleanable/dirt,/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/burn,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cg" = (/obj/structure/table/standard,/obj/item/clothing/mask/breath/medical,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"ch" = (/obj/structure/closet/secure_closet/medical2,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"ci" = (/obj/structure/toilet{dir = 4},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) +"cj" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) +"ck" = (/obj/structure/table/standard,/obj/item/device/mmi/digital/robot,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cl" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cn" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/port_gen/pacman,/turf/simulated/floor,/area/submap/Rockybase) +"co" = (/obj/structure/door_assembly,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cp" = (/obj/item/stack/rods,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cq" = (/obj/effect/decal/cleanable/dirt,/obj/structure/girder,/turf/simulated/floor,/area/submap/Rockybase) +"cr" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/submap/Rockybase) +"cs" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/turf/simulated/floor,/area/submap/Rockybase) +"ct" = (/obj/structure/girder,/turf/simulated/floor,/area/submap/Rockybase) +"cu" = (/obj/structure/closet/secure_closet/medical1,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cv" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) +"cw" = (/obj/machinery/drone_fabricator,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cx" = (/obj/machinery/mecha_part_fabricator,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cy" = (/obj/machinery/pros_fabricator,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cz" = (/obj/structure/table/standard,/obj/item/mecha_parts/mecha_equipment/repair_droid,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cA" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cB" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cC" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cD" = (/obj/machinery/power/smes/buildable/point_of_interest,/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor,/area/submap/Rockybase) +"cE" = (/obj/machinery/vending/medical,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cF" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cG" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/submap/Rockybase) +"cH" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/item/weapon/material/shard,/turf/simulated/floor,/area/submap/Rockybase) +"cI" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/submap/Rockybase) +"cJ" = (/obj/item/mecha_parts/part/gygax_armour,/turf/simulated/floor,/area/submap/Rockybase) +"cK" = (/obj/item/mecha_parts/chassis/gygax,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cL" = (/mob/living/simple_animal/hostile/mecha/malf_drone{name = "Autonomous Mechanized Drone"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cM" = (/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cN" = (/obj/machinery/vending/robotics,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cO" = (/obj/machinery/power/apc{cell_type = /obj/item/weapon/cell/super; dir = 8; name = "Unknown APC"; pixel_x = -24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cP" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cQ" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cR" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cS" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/blood,/turf/simulated/floor,/area/submap/Rockybase) +"cT" = (/obj/item/mecha_parts/part/gygax_right_leg,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cU" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/item/mecha_parts/part/gygax_left_arm,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) +"cV" = (/obj/machinery/vending,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cW" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cX" = (/obj/machinery/power/smes/buildable/point_of_interest,/obj/structure/cable/green,/turf/simulated/floor,/area/submap/Rockybase) +"cY" = (/obj/machinery/light{dir = 8},/obj/structure/closet/secure_closet/medical3,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cZ" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/malf_drone/lesser,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"da" = (/obj/structure/closet/secure_closet/hydroponics,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"db" = (/obj/machinery/mech_recharger,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dc" = (/obj/structure/table/standard,/obj/item/stack/material/plasteel,/obj/item/stack/material/glass/reinforced,/obj/item/stack/material/phoron{amount = 25},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dd" = (/obj/structure/table/standard,/obj/item/stack/material/glass,/obj/item/stack/material/steel,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"de" = (/obj/structure/table/standard,/obj/item/mecha_parts/part/gygax_head,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"df" = (/obj/structure/closet/toolcloset,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dg" = (/obj/structure/closet/secure_closet/medical3,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dh" = (/obj/item/weapon/surgical/surgicaldrill,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"di" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dj" = (/obj/item/clothing/suit/space/void/medical,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dk" = (/obj/effect/decal/cleanable/dirt,/mob/living/bot/medbot{faction = "malf_drone"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dl" = (/obj/machinery/vending/hydroseeds,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dm" = (/obj/structure/closet/crate/secure/hydrosec,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dn" = (/obj/effect/decal/remains,/turf/template_noop,/area/template_noop) (1,1,1) = {" aaabababababababababababababababababababaaababababababababababababababababababababababababababababaa @@ -164,26 +178,26 @@ abadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadad abadadafafafafafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadab abadadafafafafafafagadadadafafafafafadadadadadadadadahahahahahahadadadadadadadadadafafafagadadadadab abadafafafafafafafafafafafafafafafafafadadadadadaiahahajahahahahahaiadadadadadafafafafafafafafafadab -akadafafafafafafafafafafafafafafafafafafafafafahahalahahahahahajalahahafafafafafafafafafafafafafadab -abadafafamamamamamamamamamamamamamamamamamamamamamamamanaoaoanamamamamamamamamamamamamamafafafafadab -abadafamamapaqaramasatauavawawataxayaxatazamamaAaBaCaDamaEaEamaFaGaHaIaJaKamaEaLamaMaNamamafafafadab -abafafamamaOaqaPamawawawawawawawawawawawawamamaQaEaEaRamaSaEamaTaUaEaEaEaVamaEaWamaEaXamamafafafadab -abafafamamaOaqaYamawaZawawbaawatbbataxataxamambcaEbdbeamaEaEambfbgaEaEaEaEbhbibjamaEbkamamafafafadab -abafafamamaqaqaqamamamblamamamamamamamamamamamamblamamamaoaoamamamamamblamamamamambmbnamamafafafadab -abafafamamamblamamboaEaEaEaEaJaEaEaEaEbpaEaJaEaEaEaEaEaEaEaEaEaEaJaEaEaEaEbqbqbramaEbkamamafafafadab -abafafamamaSaEaEaEaEaEaEbsbqbqaEbtbuaEaEaEaEaEaEaEaEaEaEbqaEaEaEaEaEaEaEaEbsbqbqblaEbkamamafafafadab -abadafamamambvamambwaEaEbqbqbqaEaEaEbxaEahbubiaEbtaEbqbqbqaEaEaEaEaEbiaEaEaEaEbyamaEbnamamafafafadab -abadafamambzaqaqamamamamamamamamamamamahahamamamambAamamamamaEamamamamamamamamamamaEbkamamafafafadab -abadafamambBbBaqambCbDbEbFbGbHbIbJbKbpahbLbMambNbOaEbPbQambRaEaEbSbTbUbqaEaEaEbVamaEbkamamafafafadab -abadafamambWbvbXamaEaEaEaEaEaEaEaEaEaEaEahbYamaEaEbZcacbambpaEbqbqcccdcecfcgaEchamaEbnamamafafafaeab -abadafamambBbBciamaEcjaEaEcjaEaEckaEclaEahcmamcnbqcocpcqamcraEbqcsctcucvctcwahaEamaEbkamamafafadadab -abadafamambWbvaqamcnaEaEcxaEcyaEbqbqaEaEaEczamcAcBcCcBcDamaEaEbqcEcvcvctcfahbLaEamaEcFamamafafadadab -abadafamambBbBcGamaEcjaEaEahahbqbqbqbqaEaEcHamaEaEcIcpcJamcKaEaEcLctcecececeahbqamaEcMamamafagadadab -abadafamambWbvaqamaEaEaEaEaEaEbicNaEcNaEaEbOamcOcPcQaEcRamcSaEcTaEaEcUcgcUcVbqcWamcXcYamamafafadadab -abadafafamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamafafadadadab +akadafafafafafafafafafafafafafafafafafafafafafalalamalalalalalanamalalafafafafafafafafafafafafafadab +abadafafaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoapaqaqapaoaoaoaoaoaoaoaoaoaoaoaoaoafafafafadab +abadafaoaoarasataoauavawaxayayavazaAazavaBaoaoaCaDaEaFaoaGaGaoaHaIaJaKaLaMaoaGaNaoaOaPaoaoafafafadab +abafafaoaoaQasaRaoayayayayayayayayayayayayaoaoaSaGaGaTaoaUaGaoaVaWaGaGaGaXaoaGaYaoaGaZaoaoafafafadab +abafafaoaoaQasbaaoaybbayaybcayavbdavazavazaoaobeaGbfbgaoaGaGaobhbiaGaGaGaGbjbkblaoaGbmaoaoafafafadab +abafafaoaoasasasaoaoaobnaoaoaoaoaoaoaoaoaoaoaoaobnaoaoaoaqaqaoaoaoaoaobnaoaoaoaoaobobpaoaoafafafadab +abafafaoaoaobnaoaobqbrbrbrbrbsbrbrbrbrbtbrbsbrbrbrbrbrbrbrbrbrbrbsbrbrbrbrbububvaoaGbmaoaoafafafadab +abafafaoaoaUaGaGaGaGaGaGbwbxbxaGbybzaGaGaGaGaGaGaGaGaGaGbxaGaGaGaGaGaGaGaGbwbxbxbnaGbmaoaoafafafadab +abadafaoaoaobAaoaobBbCbCbDbDbDbCbCbCbEaGahbFbGbCbHbCbDbDbDbCbCbCbCbCbGbCbCbCbCbIaoaGbpaoaoafafafadab +abadafaoaobJasasaoaoaoaoaoaoaoaoaoaoaoahahaoaoaoaobKaoaoaoaobLaoaoaoaoaoaoaoaoaoaoaGbmaoaoafafafadab +abadafaoaobMbMasaobNbObPbQbRbSbTbUbVbWahbXbYaobZcaaGcbccaocdbLaGcecfcgbxaGaGaGchaoaGbmaoaoafafafadab +abadafaoaocibAcjaoaGaGaGaGaGaGaGaGaGbLbLahckaoaGaGclcmcnaocoaGbxbxcpcqcrcsctaGcuaoaGbpaoaoafafafaeab +abadafaoaobMbMcvaoaGcwaGaGcwaGaGcxaGcybLahczaocAbxcBcCcDaocEaGbxcFcGcHcIcGcJahaGaoaGbmaoaoafafadadab +abadafaoaocibAasaocAaGaGcKaGcLaGcMbxcMbLbLcNaocOcPcQcPcRaoaGaGbxcScIcIcGcsahbXaGaoaGcTaoaoafafadadab +abadafaoaobMbMcUaoaGcwaGaGahahbxbxbxbxaGaGcVaoaGaGcWcCcXaocYaGaGcZcGcrcrcrcrahbxaoaGdaaoaoafagadadab +abadafaoaocibAasaoaGaGaGaGaGaGbkdbaGdbaGaGcaaodcdddeaGdfaodgaGdhaGaGdictdidjbxdkaodldmaoaoafafadadab +abadafafaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoafafadadadab abadafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafadadadab abadafafafafafafafafafafafafafafafafafafafafafafafafafafafafafadafafafadadadafafafafafafafadadadadab abadadafafafafafafafafafafafafagadadadafafafafafafadadadadadadadadadadadadadadadadadadadadadadadadab abadaeadadadadadadafafafafafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadab -aaabcZababababababababababababababababababaaababababababababababababababababakababababababcZabakabab +aaabdnababababababababababababababababababaaababababababababababababababababakababababababdnabakabab "} diff --git a/maps/submaps/surface_submaps/wilderness/wilderness.dm b/maps/submaps/surface_submaps/wilderness/wilderness.dm index 1a18123b05..dc62645edb 100644 --- a/maps/submaps/surface_submaps/wilderness/wilderness.dm +++ b/maps/submaps/surface_submaps/wilderness/wilderness.dm @@ -23,6 +23,7 @@ #include "DecoupledEngine.dmm" #include "DoomP.dmm" #include "CaveS.dmm" +#include "Drugden.dmm" #endif @@ -178,4 +179,10 @@ name = "CaveS" desc = "Chitter chitter!" mappath = 'maps/submaps/surface_submaps/wilderness/CaveS.dmm' + cost = 20 + +/datum/map_template/surface/wilderness/normal/Drugden + name = "Drugden" + desc = "The remains of ill thought out whims." + mappath = 'maps/submaps/surface_submaps/wilderness/Drugden.dmm' cost = 20 \ No newline at end of file diff --git a/maps/submaps/surface_submaps/wilderness/wilderness_areas.dm b/maps/submaps/surface_submaps/wilderness/wilderness_areas.dm index 0c52e7c840..3751fa3be6 100644 --- a/maps/submaps/surface_submaps/wilderness/wilderness_areas.dm +++ b/maps/submaps/surface_submaps/wilderness/wilderness_areas.dm @@ -71,3 +71,7 @@ /area/submap/CaveS name = "CaveS" + +/area/submap/Drugd + name = "DrugDen" + diff --git a/polaris.dme b/polaris.dme index 719cc3fc72..16fc5082af 100644 --- a/polaris.dme +++ b/polaris.dme @@ -1849,6 +1849,7 @@ #include "code\modules\mob\living\silicon\robot\subtypes\syndicate.dm" #include "code\modules\mob\living\simple_animal\corpse.dm" #include "code\modules\mob\living\simple_animal\simple_animal.dm" +#include "code\modules\mob\living\simple_animal\simple_hud.dm" #include "code\modules\mob\living\simple_animal\aliens\alien.dm" #include "code\modules\mob\living\simple_animal\aliens\creature.dm" #include "code\modules\mob\living\simple_animal\aliens\drone.dm"