Merge branch 'master' of https://github.com/PolarisSS13/Polaris into steals_more_armor

This commit is contained in:
Anewbe
2018-02-17 01:07:21 -06:00
65 changed files with 1848 additions and 404 deletions

View File

@@ -201,6 +201,7 @@
L.resist()
if("mov_intent")
if(isliving(usr))
if(iscarbon(usr))
var/mob/living/carbon/C = usr
if(C.legcuffed)
@@ -208,13 +209,14 @@
C.m_intent = "walk" //Just incase
C.hud_used.move_intent.icon_state = "walking"
return 1
switch(usr.m_intent)
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()

View File

@@ -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(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))
target_mob = A
PunchTarget()
target_mob = null
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
A.attack_generic(src, rand(melee_damage_lower, melee_damage_upper), attacktext)
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())

View File

@@ -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"

View File

@@ -51,6 +51,10 @@
/area/proc/atmosalert(danger_level, var/alarm_source)
if (danger_level == 0)
atmosphere_alarm.clearAlarm(src, alarm_source)
else
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)

View File

@@ -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

View File

@@ -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()

View File

@@ -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 << "<span class='warning'>You need at least two rods to do this.</span>"
to_chat(user, "<span class='warning'>You need at least two rods to do this.</span>")
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 << "<span class='warning'>You need at least two rods to do this.</span>"
to_chat(user, "<span class='warning'>You need at least two rods to do this.</span>")
return
usr << "<span class='notice'>Assembling grille...</span>"
to_chat(usr, "<span class='notice'>Assembling grille...</span>")
in_use = 1
if (!do_after(usr, 10))
in_use = 0
return
var/obj/structure/grille/F = new /obj/structure/grille/ ( usr.loc )
usr << "<span class='notice'>You assemble a grille</span>"
to_chat(usr, "<span class='notice'>You assemble a grille</span>")
in_use = 0
F.add_fingerprint(usr)
use(2)

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -104,7 +104,7 @@
playsound(src, W.usesound, 100, 1)
anchored = !anchored
user.visible_message("<span class='notice'>[user] [anchored ? "fastens" : "unfastens"] the grille.</span>", \
"<span class='notice'>You have [anchored ? "fastened the grille to" : "unfastened the grill from"] the floor.</span>")
"<span class='notice'>You have [anchored ? "fastened the grille to" : "unfastened the grille from"] the floor.</span>")
return
//window placing begin //TODO CONVERT PROPERLY TO MATERIAL DATUM

View File

@@ -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]

View File

@@ -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

View File

@@ -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

View File

@@ -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"

View File

@@ -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

View File

@@ -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 = "<font color='#6b5d00'>tile at [start_T.x], [start_T.y], [start_T.z] in area [get_area(start_T)]</font>"
var/end_T_descriptor = "<font color='#6b4400'>tile at [end_T.x], [end_T.y], [end_T.z] in area [get_area(end_T)]</font>"
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been thrown by [usr.name] ([usr.ckey]) from [start_T_descriptor] with the target [end_T_descriptor]</font>")
usr.attack_log += text("\[[time_stamp()]\] <font color='red'>Has thrown [M.name] ([M.ckey]) from [start_T_descriptor] with the target [end_T_descriptor]</font>")
msg_admin_attack("[usr.name] ([usr.ckey]) has thrown [M.name] ([M.ckey]) from [start_T_descriptor] with the target [end_T_descriptor] (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[usr.x];Y=[usr.y];Z=[usr.z]'>JMP</a>)")
src.drop_from_inventory(item)
if(!item || !isturf(item.loc))
return
//actually throw it!
src.visible_message("<span class='warning'>[src] has thrown [item].</span>")
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)
..()

View File

@@ -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 << "<font color='red'>You can't use your hand.</font>"
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)

View File

@@ -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))

View File

@@ -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)

View File

@@ -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 = "<font color='#6b5d00'>tile at [start_T.x], [start_T.y], [start_T.z] in area [get_area(start_T)]</font>"
var/end_T_descriptor = "<font color='#6b4400'>tile at [end_T.x], [end_T.y], [end_T.z] in area [get_area(end_T)]</font>"
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been thrown by [usr.name] ([usr.ckey]) from [start_T_descriptor] with the target [end_T_descriptor]</font>")
usr.attack_log += text("\[[time_stamp()]\] <font color='red'>Has thrown [M.name] ([M.ckey]) from [start_T_descriptor] with the target [end_T_descriptor]</font>")
msg_admin_attack("[usr.name] ([usr.ckey]) has thrown [M.name] ([M.ckey]) from [start_T_descriptor] with the target [end_T_descriptor] (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[usr.x];Y=[usr.y];Z=[usr.z]'>JMP</a>)")
src.drop_from_inventory(item)
if(!item || !isturf(item.loc))
return
//actually throw it!
src.visible_message("<span class='warning'>[src] has thrown [item].</span>")
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)

View File

@@ -51,4 +51,6 @@
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!

View File

@@ -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)

View File

@@ -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,18 +215,14 @@
//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 << "<span class='notice'>Mob AI disabled while you are controlling the mob.</span>"
..()
to_chat(src,"<span class='notice'>Mob AI disabled while you are controlling the mob.</span><br><b>You are \the [src]. [player_msg]</b>")
//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.
@@ -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("<span class='danger'>\The [src] has been attacked with \the [O] by [user].</span>")
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 << "<span class='danger'>This weapon is ineffective, it does no damage.</span>"
to_chat(user,"<span class='danger'>This weapon is ineffective, it does no damage.</span>")
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()]\] <font color='red'>attacked [L.name] ([L.ckey])</font>")
L.attack_log += text("\[[time_stamp()]\] <font color='orange'>was attacked by [src.name] ([src.ckey])</font>")
src.visible_message("<span class='danger'>[src] misses [L]!</span>")
src.do_attack_animation(src)
visible_message("<span class='danger'>[src] misses [L]!</span>")
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)

View File

@@ -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

View File

@@ -1130,3 +1130,10 @@ mob/proc/yank_out_object()
if(client && client.color)
animate(client, color = null, time = 10)
return
/mob/proc/swap_hand()
return
//Throwing stuff
/mob/proc/throw_item(atom/target)
return

View File

@@ -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

View File

@@ -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

View File

@@ -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 << "<font color='red'>This mob type cannot throw items.</font>"
return
if(NORTHWEST)
if(iscarbon(usr))
if(isliving(usr))
var/mob/living/carbon/C = usr
if(!C.get_active_hand())
usr << "<font color='red'>You have nothing to drop in your hand.</font>"
@@ -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()

View File

@@ -5,6 +5,7 @@
return
/mob/proc/update_icons()
update_icon() //Ugh.
return
/mob/proc/update_icons_layers(var/update_icons = TRUE)

View File

@@ -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

View File

@@ -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]",

View File

@@ -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", "<BR>")
info = parsepencode(info)
return
/obj/item/weapon/paper/alien
name = "alien tablet"
desc = "It looks highly advanced"

View File

@@ -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)

View File

@@ -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."

View File

@@ -0,0 +1,4 @@
author: PrismaticGynoid
delete-after: True
changes:
- tweak: "Changed department ponchos to be open to any job, just like department jackets."

View File

@@ -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."

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 KiB

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 29 KiB

View File

@@ -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
"}

View File

@@ -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
"}

View File

@@ -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
"}

View File

@@ -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
"}

View File

@@ -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
"}

View File

@@ -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

View File

@@ -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
"}

View File

@@ -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
"}

View File

@@ -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.
@@ -95,3 +109,75 @@
desc = "A regular field with a tug on it"
mappath = 'maps/submaps/surface_submaps/plains/Field1.dmm'
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

View File

@@ -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"

View File

@@ -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
"}

View File

@@ -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
"}

View File

@@ -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
"}

View File

@@ -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
"}

View File

@@ -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
"}

View File

@@ -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
"}

View File

@@ -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
"}

View File

@@ -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
"}

View File

@@ -23,6 +23,7 @@
#include "DecoupledEngine.dmm"
#include "DoomP.dmm"
#include "CaveS.dmm"
#include "Drugden.dmm"
#endif
@@ -179,3 +180,9 @@
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

View File

@@ -71,3 +71,7 @@
/area/submap/CaveS
name = "CaveS"
/area/submap/Drugd
name = "DrugDen"

View File

@@ -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"