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() L.resist()
if("mov_intent") if("mov_intent")
if(isliving(usr))
if(iscarbon(usr)) if(iscarbon(usr))
var/mob/living/carbon/C = usr var/mob/living/carbon/C = usr
if(C.legcuffed) if(C.legcuffed)
@@ -208,13 +209,14 @@
C.m_intent = "walk" //Just incase C.m_intent = "walk" //Just incase
C.hud_used.move_intent.icon_state = "walking" C.hud_used.move_intent.icon_state = "walking"
return 1 return 1
switch(usr.m_intent) var/mob/living/L = usr
switch(L.m_intent)
if("run") if("run")
usr.m_intent = "walk" L.m_intent = "walk"
usr.hud_used.move_intent.icon_state = "walking" L.hud_used.move_intent.icon_state = "walking"
if("walk") if("walk")
usr.m_intent = "run" L.m_intent = "run"
usr.hud_used.move_intent.icon_state = "running" L.hud_used.move_intent.icon_state = "running"
if("m_intent") if("m_intent")
if(!usr.m_int) if(!usr.m_int)
switch(usr.m_intent) switch(usr.m_intent)
@@ -485,8 +487,6 @@
if(isAI(usr)) if(isAI(usr))
var/mob/living/silicon/ai/AI = usr var/mob/living/silicon/ai/AI = usr
AI.view_images() AI.view_images()
else
return 0
return 1 return 1
/obj/screen/inventory/Click() /obj/screen/inventory/Click()

View File

@@ -73,27 +73,38 @@
Animals Animals
*/ */
/mob/living/simple_animal/UnarmedAttack(var/atom/A, var/proximity) /mob/living/simple_animal/UnarmedAttack(var/atom/A, var/proximity)
if(!..()) 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]!")
return return
setClickCooldown(get_attack_speed()) 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)) if(isliving(A))
target_mob = A custom_emote(1,"[pick(friendly)] [A]!")
PunchTarget()
target_mob = null 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 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) /mob/living/simple_animal/RangedAttack(var/atom/A)
setClickCooldown(get_attack_speed()) setClickCooldown(get_attack_speed())

View File

@@ -61,3 +61,17 @@
cost = 15 cost = 15
containertype = /obj/structure/closet/crate/freezer containertype = /obj/structure/closet/crate/freezer
containername = "Pizza crate" 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) /area/proc/atmosalert(danger_level, var/alarm_source)
if (danger_level == 0) if (danger_level == 0)
atmosphere_alarm.clearAlarm(src, alarm_source) 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 else
atmosphere_alarm.triggerAlarm(src, alarm_source, severity = danger_level) atmosphere_alarm.triggerAlarm(src, alarm_source, severity = danger_level)

View File

@@ -81,6 +81,8 @@
var/report_danger_level = 1 var/report_danger_level = 1
var/alarms_hidden = FALSE //If the alarms from this machine are visible on consoles
/obj/machinery/alarm/nobreach /obj/machinery/alarm/nobreach
breach_detection = 0 breach_detection = 0
@@ -88,6 +90,9 @@
report_danger_level = 0 report_danger_level = 0
breach_detection = 0 breach_detection = 0
/obj/machinery/alarm/alarms_hidden
alarms_hidden = TRUE
/obj/machinery/alarm/server/New() /obj/machinery/alarm/server/New()
..() ..()
req_access = list(access_rd, access_atmospherics, access_engine_equip) req_access = list(access_rd, access_atmospherics, access_engine_equip)
@@ -812,6 +817,10 @@ FIRE ALARM
panel_open = 0 panel_open = 0
var/seclevel var/seclevel
circuit = /obj/item/weapon/circuitboard/firealarm 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() /obj/machinery/firealarm/update_icon()
overlays.Cut() overlays.Cut()
@@ -980,7 +989,7 @@ FIRE ALARM
return return
var/area/area = get_area(src) var/area/area = get_area(src)
for(var/obj/machinery/firealarm/FA in area) 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() update_icon()
//playsound(src.loc, 'sound/ambience/signal.ogg', 75, 0) //playsound(src.loc, 'sound/ambience/signal.ogg', 75, 0)
return return

View File

@@ -27,7 +27,8 @@
/obj/item/toy/waterflower = 1, /obj/item/toy/waterflower = 1,
/obj/random/action_figure = 1, /obj/random/action_figure = 1,
/obj/random/plushie = 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() /obj/machinery/computer/arcade/New()

View File

@@ -36,7 +36,7 @@
icon_state = "rods" icon_state = "rods"
var/global/list/datum/stack_recipe/rods_recipes = list( \ 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)) 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) /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 var/obj/item/weapon/weldingtool/WT = W
if(get_amount() < 2) 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 return
if(WT.remove_fuel(0,user)) if(WT.remove_fuel(0,user))
@@ -91,15 +91,15 @@ var/global/list/datum/stack_recipe/rods_recipes = list( \
else if(!in_use) else if(!in_use)
if(get_amount() < 2) 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 return
usr << "<span class='notice'>Assembling grille...</span>" to_chat(usr, "<span class='notice'>Assembling grille...</span>")
in_use = 1 in_use = 1
if (!do_after(usr, 10)) if (!do_after(usr, 10))
in_use = 0 in_use = 0
return return
var/obj/structure/grille/F = new /obj/structure/grille/ ( usr.loc ) 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 in_use = 0
F.add_fingerprint(usr) F.add_fingerprint(usr)
use(2) use(2)

View File

@@ -16,6 +16,7 @@
* Action figures * Action figures
* Plushies * Plushies
* Toy cult sword * Toy cult sword
* Bouquets
*/ */
@@ -872,6 +873,19 @@
w_class = ITEMSIZE_LARGE w_class = ITEMSIZE_LARGE
attack_verb = list("attacked", "slashed", "stabbed", "poked") 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. /* NYET.
/obj/item/weapon/toddler /obj/item/weapon/toddler
icon_state = "toddler" icon_state = "toddler"

View File

@@ -10,6 +10,8 @@
* Candle Box * Candle Box
* Crayon Box * Crayon Box
* Cigarette Box * Cigarette Box
* Vial Box
* Box of Chocolates
*/ */
/obj/item/weapon/storage/fancy/ /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) /obj/item/weapon/storage/lockbox/vials/attackby(obj/item/weapon/W as obj, mob/user as mob)
..() ..()
update_icon() 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) if(!canremove)
return 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? if (istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech. why?
return return

View File

@@ -104,7 +104,7 @@
playsound(src, W.usesound, 100, 1) playsound(src, W.usesound, 100, 1)
anchored = !anchored anchored = !anchored
user.visible_message("<span class='notice'>[user] [anchored ? "fastens" : "unfastens"] the grille.</span>", \ 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 return
//window placing begin //TODO CONVERT PROPERLY TO MATERIAL DATUM //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_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/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/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 src.origin = origin
cameras() // Sets up both cameras and last alarm area. 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() /datum/alarm/proc/process()
// Has origin gone missing? // Has origin gone missing?
@@ -43,17 +44,19 @@
AS.duration = 0 AS.duration = 0
AS.end_time = world.time + ALARM_RESET_DELAY 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] var/datum/alarm_source/AS = sources_assoc[source]
if(!AS) if(!AS)
AS = new/datum/alarm_source(source) AS = new/datum/alarm_source(source)
sources += AS sources += AS
sources_assoc[source] = AS sources_assoc[source] = AS
src.hidden = hidden
// Currently only non-0 durations can be altered (normal alarms VS EMP blasts) // Currently only non-0 durations can be altered (normal alarms VS EMP blasts)
if(AS.duration) if(AS.duration)
duration = SecondsToTicks(duration) duration = SecondsToTicks(duration)
AS.duration = duration AS.duration = duration
AS.severity = severity AS.severity = severity
src.hidden = min(src.hidden, hidden)
/datum/alarm/proc/clear(var/source) /datum/alarm/proc/clear(var/source)
var/datum/alarm_source/AS = sources_assoc[source] var/datum/alarm_source/AS = sources_assoc[source]

View File

@@ -12,7 +12,7 @@
A.process() A.process()
check_alarm_cleared(A) 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 var/new_alarm
//Proper origin and source mandatory //Proper origin and source mandatory
if(!(origin && source)) if(!(origin && source))
@@ -23,9 +23,9 @@
//see if there is already an alarm of this origin //see if there is already an alarm of this origin
var/datum/alarm/existing = alarms_assoc[origin] var/datum/alarm/existing = alarms_assoc[origin]
if(existing) if(existing)
existing.set_source_data(source, duration, severity) existing.set_source_data(source, duration, severity, hidden)
else else
existing = new/datum/alarm(origin, source, duration, severity) existing = new/datum/alarm(origin, source, duration, severity, hidden)
new_alarm = 1 new_alarm = 1
alarms |= existing alarms |= existing
@@ -48,10 +48,10 @@
return check_alarm_cleared(existing) return check_alarm_cleared(existing)
/datum/alarm_handler/proc/major_alarms() /datum/alarm_handler/proc/major_alarms()
return alarms return visible_alarms()
/datum/alarm_handler/proc/minor_alarms() /datum/alarm_handler/proc/minor_alarms()
return alarms return visible_alarms()
/datum/alarm_handler/proc/check_alarm_cleared(var/datum/alarm/alarm) /datum/alarm_handler/proc/check_alarm_cleared(var/datum/alarm/alarm)
if ((alarm.end_time && world.time > alarm.end_time) || !alarm.sources.len) 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) /datum/alarm_handler/proc/on_alarm_change(var/datum/alarm/alarm, var/was_raised)
for(var/obj/machinery/camera/C in alarm.cameras()) for(var/obj/machinery/camera/C in alarm.cameras())
if(was_raised) if(was_raised && !alarm.hidden)
C.add_network(category) C.add_network(category)
else else
C.remove_network(category) C.remove_network(category)
@@ -95,3 +95,10 @@
/datum/alarm_handler/proc/notify_listeners(var/alarm, var/was_raised) /datum/alarm_handler/proc/notify_listeners(var/alarm, var/was_raised)
for(var/listener in listeners) for(var/listener in listeners)
call(listener, listeners[listener])(src, alarm, was_raised) 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 /datum/alarm_handler/atmosphere
category = "Atmosphere Alarms" 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() /datum/alarm_handler/atmosphere/major_alarms()
var/list/major_alarms = new() 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) if(A.max_severity() > 1)
major_alarms.Add(A) major_alarms.Add(A)
return major_alarms return major_alarms
/datum/alarm_handler/atmosphere/minor_alarms() /datum/alarm_handler/atmosphere/minor_alarms()
var/list/minor_alarms = new() 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) if(A.max_severity() == 1)
minor_alarms.Add(A) minor_alarms.Add(A)
return minor_alarms return minor_alarms

View File

@@ -181,27 +181,22 @@
/datum/gear/suit/roles/poncho/security /datum/gear/suit/roles/poncho/security
display_name = "poncho, security" display_name = "poncho, security"
path = /obj/item/clothing/accessory/poncho/roles/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 /datum/gear/suit/roles/poncho/medical
display_name = "poncho, medical" display_name = "poncho, medical"
path = /obj/item/clothing/accessory/poncho/roles/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 /datum/gear/suit/roles/poncho/engineering
display_name = "poncho, engineering" display_name = "poncho, engineering"
path = /obj/item/clothing/accessory/poncho/roles/engineering path = /obj/item/clothing/accessory/poncho/roles/engineering
allowed_roles = list("Chief Engineer","Atmospheric Technician", "Station Engineer")
/datum/gear/suit/roles/poncho/science /datum/gear/suit/roles/poncho/science
display_name = "poncho, science" display_name = "poncho, science"
path = /obj/item/clothing/accessory/poncho/roles/science path = /obj/item/clothing/accessory/poncho/roles/science
allowed_roles = list("Research Director","Scientist", "Roboticist", "Xenobiologist")
/datum/gear/suit/roles/poncho/cargo /datum/gear/suit/roles/poncho/cargo
display_name = "poncho, cargo" display_name = "poncho, cargo"
path = /obj/item/clothing/accessory/poncho/roles/cargo path = /obj/item/clothing/accessory/poncho/roles/cargo
allowed_roles = list("Quartermaster","Cargo Technician")
/datum/gear/suit/roles/poncho/cloak/hos /datum/gear/suit/roles/poncho/cloak/hos
display_name = "cloak, head of security" display_name = "cloak, head of security"

View File

@@ -28,6 +28,7 @@
name = "Daedalus Pocket Newscaster" 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." 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" icon_state = "newscodex"
w_class = ITEMSIZE_SMALL
root_type = /datum/lore/codex/category/main_news root_type = /datum/lore/codex/category/main_news
// Combines SOP/Regs/Law // Combines SOP/Regs/Law

View File

@@ -137,33 +137,6 @@
return shock_damage 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) /mob/living/carbon/proc/help_shake_act(mob/living/carbon/M)
if (src.health >= config.health_threshold_crit) if (src.health >= config.health_threshold_crit)
if(src == M && istype(src, /mob/living/carbon/human)) 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_layers(FALSE) //apply the now updated overlays to the mob
update_icons_body() 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) /mob/living/carbon/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
..() ..()

View File

@@ -8,7 +8,7 @@
return u_attack return u_attack
return null 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/datum/gender/TT = gender_datums[M.get_visible_gender()]
var/mob/living/carbon/human/H = M var/mob/living/carbon/human/H = M
if(istype(H)) if(istype(H))
@@ -18,7 +18,8 @@
if(!temp || !temp.is_usable()) if(!temp || !temp.is_usable())
H << "<font color='red'>You can't use your hand.</font>" H << "<font color='red'>You can't use your hand.</font>"
return return
H.break_cloak() M.break_cloak()
..() ..()
// Should this all be in Touch()? // Should this all be in Touch()?
@@ -64,7 +65,8 @@
return return
if(istype(M,/mob/living/carbon)) 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) switch(M.a_intent)
if(I_HELP) if(I_HELP)

View File

@@ -189,7 +189,7 @@
volume *= 0.5 volume *= 0.5
else if(shoes) else if(shoes)
var/obj/item/clothing/shoes/feet = shoes var/obj/item/clothing/shoes/feet = shoes
if(feet) if(istype(feet))
volume *= feet.step_volume_mod volume *= feet.step_volume_mod
if(!has_organ(BP_L_FOOT) && !has_organ(BP_R_FOOT)) if(!has_organ(BP_L_FOOT) && !has_organ(BP_R_FOOT))

View File

@@ -207,7 +207,7 @@
return TRUE return TRUE
else if(glow_toggle) 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 else
set_light(0) set_light(0)

View File

@@ -1085,3 +1085,80 @@ default behaviour is:
else // No colors, so remove the client's color. else // No colors, so remove the client's color.
animate(client, color = null, time = 10) 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/image/dsoverlay = null //Overlay used for darksight eye adjustments
var/glow_toggle = 0 // If they're glowing! 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! 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) /mob/living/silicon/proc/receive_alarm(var/datum/alarm_handler/alarm_handler, var/datum/alarm/alarm, was_raised)
if(!next_alarm_notice) if(!next_alarm_notice)
next_alarm_notice = world.time + SecondsToTicks(10) next_alarm_notice = world.time + SecondsToTicks(10)
if(alarm.hidden)
return
var/list/alarms = queued_alarms[alarm_handler] var/list/alarms = queued_alarms[alarm_handler]
if(was_raised) if(was_raised)

View File

@@ -16,6 +16,12 @@
//Settings for played mobs //Settings for played mobs
var/show_stat_health = 1 // Does the percentage health show in the stat panel for the mob 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/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 //Mob icon/appearance settings
var/icon_living = "" // The iconstate if we're alive, required 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/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/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/max_oxy = 0 // Oxygen in moles, maximum, 0 is 'no maximum'
var/min_tox = 0 // Phoron min var/min_tox = 0 // Phoron min
var/max_tox = 1 // Phoron max var/max_tox = 1 // Phoron max
@@ -170,6 +176,7 @@
home_turf = get_turf(src) home_turf = get_turf(src)
path_overlay = new(path_icon,path_icon_state) 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 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) for(var/L in has_langs)
languages |= all_languages[L] languages |= all_languages[L]
@@ -208,18 +215,14 @@
//Client attached //Client attached
/mob/living/simple_animal/Login() /mob/living/simple_animal/Login()
if(src && src.client) . = ..()
src.client.screen = list()
src.client.screen += src.client.void
ai_inactive = 1 ai_inactive = 1
handle_stance(STANCE_IDLE) handle_stance(STANCE_IDLE)
LoseTarget() 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 //Client detatched
/mob/living/simple_animal/Logout() /mob/living/simple_animal/Logout()
if(src && !src.client)
spawn(15 SECONDS) //15 seconds to get back into the mob before it goes wild spawn(15 SECONDS) //15 seconds to get back into the mob before it goes wild
if(src && !src.client) if(src && !src.client)
ai_inactive = initial(ai_inactive) //So if they never have an AI, they stay that way. ai_inactive = initial(ai_inactive) //So if they never have an AI, they stay that way.
@@ -242,23 +245,74 @@
if(health > getMaxHealth()) if(health > getMaxHealth())
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() /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 //Awake and normal
if((stat == CONSCIOUS) && (!icon_rest || !resting || !incapacitated(INCAPACITATION_DISABLED) )) if((stat == CONSCIOUS) && (!icon_rest || !resting || !incapacitated(INCAPACITATION_DISABLED) ))
icon_state = icon_living ma.icon_state = icon_living
//Dead //Dead
else if(stat >= DEAD) else if(stat >= DEAD)
icon_state = icon_dead ma.icon_state = icon_dead
//Resting or KO'd //Resting or KO'd
else if(((stat == UNCONSCIOUS) || resting || incapacitated(INCAPACITATION_DISABLED) ) && icon_rest) else if(((stat == UNCONSCIOUS) || resting || incapacitated(INCAPACITATION_DISABLED) ) && icon_rest)
icon_state = icon_rest ma.icon_state = icon_rest
//Backup //Backup
else 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. // 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() /mob/living/simple_animal/update_modifier_visuals()
@@ -293,7 +347,6 @@
handle_paralysed() handle_paralysed()
handle_supernatural() handle_supernatural()
handle_atmos() //Atmos handle_atmos() //Atmos
update_icon()
ai_log("Life() - stance=[stance] ai_inactive=[ai_inactive]", 4) ai_log("Life() - stance=[stance] ai_inactive=[ai_inactive]", 4)
@@ -318,7 +371,7 @@
if(istype(loc,/obj/structure/closet)) if(istype(loc,/obj/structure/closet))
var/obj/structure/closet/C = loc var/obj/structure/closet/C = loc
if(C.welded) if(C.welded)
resist() handle_resist()
else else
C.open() C.open()
@@ -378,7 +431,7 @@
// Handle interacting with and taking damage from atmos // Handle interacting with and taking damage from atmos
// TODO - Refactor this to use handle_environment() like a good /mob/living // TODO - Refactor this to use handle_environment() like a good /mob/living
/mob/living/simple_animal/proc/handle_atmos() /mob/living/simple_animal/proc/handle_atmos()
var/atmos_suitable = 1 var/atmos_unsuitable = 0
var/atom/A = src.loc var/atom/A = src.loc
@@ -394,41 +447,52 @@
if(min_oxy) if(min_oxy)
if(Environment.gas["oxygen"] < min_oxy) if(Environment.gas["oxygen"] < min_oxy)
atmos_suitable = 0 atmos_unsuitable = 1
if(max_oxy) if(max_oxy)
if(Environment.gas["oxygen"] > max_oxy) if(Environment.gas["oxygen"] > max_oxy)
atmos_suitable = 0 atmos_unsuitable = 1
if(min_tox) if(min_tox)
if(Environment.gas["phoron"] < min_tox) if(Environment.gas["phoron"] < min_tox)
atmos_suitable = 0 atmos_unsuitable = 2
if(max_tox) if(max_tox)
if(Environment.gas["phoron"] > max_tox) if(Environment.gas["phoron"] > max_tox)
atmos_suitable = 0 atmos_unsuitable = 2
if(min_n2) if(min_n2)
if(Environment.gas["nitrogen"] < min_n2) if(Environment.gas["nitrogen"] < min_n2)
atmos_suitable = 0 atmos_unsuitable = 1
if(max_n2) if(max_n2)
if(Environment.gas["nitrogen"] > max_n2) if(Environment.gas["nitrogen"] > max_n2)
atmos_suitable = 0 atmos_unsuitable = 1
if(min_co2) if(min_co2)
if(Environment.gas["carbon_dioxide"] < min_co2) if(Environment.gas["carbon_dioxide"] < min_co2)
atmos_suitable = 0 atmos_unsuitable = 1
if(max_co2) if(max_co2)
if(Environment.gas["carbon_dioxide"] > max_co2) if(Environment.gas["carbon_dioxide"] > max_co2)
atmos_suitable = 0 atmos_unsuitable = 1
//Atmos effect //Atmos effect
if(bodytemperature < minbodytemp) if(bodytemperature < minbodytemp)
fire_alert = 2 fire_alert = 2
adjustBruteLoss(cold_damage_per_tick) adjustBruteLoss(cold_damage_per_tick)
if(fire)
fire.icon_state = "fire1"
else if(bodytemperature > maxbodytemp) else if(bodytemperature > maxbodytemp)
fire_alert = 1 fire_alert = 1
adjustBruteLoss(heat_damage_per_tick) adjustBruteLoss(heat_damage_per_tick)
if(fire)
fire.icon_state = "fire2"
else else
fire_alert = 0 fire_alert = 0
if(fire)
fire.icon_state = "fire0"
if(!atmos_suitable) if(atmos_unsuitable)
adjustBruteLoss(unsuitable_atoms_damage) 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 // For setting the stance WITHOUT processing it
/mob/living/simple_animal/proc/set_stance(var/new_stance) /mob/living/simple_animal/proc/set_stance(var/new_stance)
@@ -498,26 +562,19 @@
custom_emote(2, act_desc) custom_emote(2, act_desc)
/mob/living/simple_animal/bullet_act(var/obj/item/projectile/Proj) /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) ai_log("bullet_act() I was shot by: [Proj.firer]",2)
if(Proj.taser_effect) //Projectiles with bonus SA damage
stun_effect_act(0, Proj.agony)
if(!Proj.nodamage) if(!Proj.nodamage)
var/true_damage = Proj.damage var/true_damage = Proj.damage
if(!Proj.SA_vulnerability || Proj.SA_vulnerability == intelligence_level) if(!Proj.SA_vulnerability || Proj.SA_vulnerability == intelligence_level)
true_damage += Proj.SA_bonus_damage Proj.damage += Proj.SA_bonus_damage
adjustBruteLoss(true_damage)
. = ..()
if(Proj.firer) if(Proj.firer)
react_to_attack(Proj.firer) react_to_attack(Proj.firer)
Proj.on_hit(src)
return 0
// When someone clicks us with an empty hand // When someone clicks us with an empty hand
/mob/living/simple_animal/attack_hand(mob/living/carbon/human/M as mob) /mob/living/simple_animal/attack_hand(mob/living/carbon/human/M as mob)
..() ..()
@@ -591,24 +648,25 @@
if(O.force) if(O.force)
react_to_attack(user) react_to_attack(user)
/mob/living/simple_animal/hit_with_weapon(obj/item/O, mob/living/user, var/effective_force, var/hit_zone) return ..()
visible_message("<span class='danger'>\The [src] has been attacked with \the [O] by [user].</span>")
/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) 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 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) ai_log("hit_with_weapon() I was h_w_weapon'd by: [user]",2)
react_to_attack(user) react_to_attack(user)
return 0 . = ..()
// When someone throws something at us // When someone throws something at us
/mob/living/simple_animal/hitby(atom/movable/AM) /mob/living/simple_animal/hitby(atom/movable/AM)
@@ -641,6 +699,9 @@
tally = 1 tally = 1
tally *= purge tally *= purge
if(m_intent == "walk")
tally *= 1.5
return tally+config.animal_delay return tally+config.animal_delay
/mob/living/simple_animal/Stat() /mob/living/simple_animal/Stat()
@@ -655,6 +716,7 @@
icon_state = icon_rest icon_state = icon_rest
else else
icon_state = icon_living icon_state = icon_living
update_icon()
/mob/living/simple_animal/death(gibbed, deathmessage = "dies!") /mob/living/simple_animal/death(gibbed, deathmessage = "dies!")
density = 0 //We don't block even if we did before density = 0 //We don't block even if we did before
@@ -738,7 +800,6 @@
/mob/living/simple_animal/handle_fire() /mob/living/simple_animal/handle_fire()
return return
/mob/living/simple_animal/update_fire() /mob/living/simple_animal/update_fire()
return return
/mob/living/simple_animal/IgniteMob() /mob/living/simple_animal/IgniteMob()
@@ -748,7 +809,7 @@
//We got hit! Consider hitting them back! //We got hit! Consider hitting them back!
/mob/living/simple_animal/proc/react_to_attack(var/mob/living/M) /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... if(M in friends || M.faction == faction) return //I'll overlook it THIS time...
ai_log("react_to_attack([M])",1) ai_log("react_to_attack([M])",1)
if(retaliate && set_target(M, 1)) if(retaliate && set_target(M, 1))
@@ -1187,8 +1248,8 @@
if(prob(melee_miss_chance)) if(prob(melee_miss_chance))
src.attack_log += text("\[[time_stamp()]\] <font color='red'>attacked [L.name] ([L.ckey])</font>") 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>") 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>") visible_message("<span class='danger'>[src] misses [L]!</span>")
src.do_attack_animation(src) do_attack_animation(src)
return L return L
else else
DoPunch(L) DoPunch(L)
@@ -1200,7 +1261,7 @@
// This is the actual act of 'punching'. Override for special behaviour. // This is the actual act of 'punching'. Override for special behaviour.
/mob/living/simple_animal/proc/DoPunch(var/atom/A) /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 return FALSE
var/damage_to_do = rand(melee_damage_lower, melee_damage_upper) var/damage_to_do = rand(melee_damage_lower, melee_damage_upper)
@@ -1209,16 +1270,15 @@
if(!isnull(M.outgoing_melee_damage_percent)) if(!isnull(M.outgoing_melee_damage_percent))
damage_to_do *= 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. // SA attacks can be blocked with shields.
if(ishuman(A)) if(ishuman(A))
var/mob/living/carbon/human/H = 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")) if(H.check_shields(damage = damage_to_do, damage_source = src, attacker = src, def_zone = null, attack_text = "the attack"))
return FALSE 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 return TRUE
//The actual top-level ranged attack proc //The actual top-level ranged attack proc
@@ -1491,10 +1551,134 @@
/mob/living/simple_animal/is_sentient() /mob/living/simple_animal/is_sentient()
return intelligence_level != SA_PLANT && intelligence_level != SA_ROBOTIC 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 //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) /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 var/mob/living/L = speaker
if(L.faction == faction) if(L.faction == faction)
spawn(10) 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) if(client && client.color)
animate(client, color = null, time = 10) animate(client, color = null, time = 10)
return 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 //Updating pixelshift, position and direction
//Gets called on process, when the grab gets upgraded or the assailant moves //Gets called on process, when the grab gets upgraded or the assailant moves
/obj/item/weapon/grab/proc/adjust_position() /obj/item/weapon/grab/proc/adjust_position()
if(!affecting)
qdel(src)
return
if(affecting.buckled) if(affecting.buckled)
animate(affecting, pixel_x = 0, pixel_y = 0, 4, 1, LINEAR_EASING) animate(affecting, pixel_x = 0, pixel_y = 0, 4, 1, LINEAR_EASING)
return return

View File

@@ -328,7 +328,7 @@ var/list/intents = list(I_HELP,I_DISARM,I_GRAB,I_HURT)
set name = "a-intent" set name = "a-intent"
set hidden = 1 set hidden = 1
if(ishuman(src) || isbrain(src) || isslime(src)) if(isliving(src))
switch(input) switch(input)
if(I_HELP,I_DISARM,I_GRAB,I_HURT) if(I_HELP,I_DISARM,I_GRAB,I_HURT)
a_intent = input a_intent = input

View File

@@ -51,14 +51,14 @@
attack_self() attack_self()
return return
if(SOUTHWEST) if(SOUTHWEST)
if(iscarbon(usr)) if(isliving(usr))
var/mob/living/carbon/C = usr var/mob/living/carbon/C = usr
C.toggle_throw_mode() C.toggle_throw_mode()
else else
usr << "<font color='red'>This mob type cannot throw items.</font>" usr << "<font color='red'>This mob type cannot throw items.</font>"
return return
if(NORTHWEST) if(NORTHWEST)
if(iscarbon(usr)) if(isliving(usr))
var/mob/living/carbon/C = usr var/mob/living/carbon/C = usr
if(!C.get_active_hand()) if(!C.get_active_hand())
usr << "<font color='red'>You have nothing to drop in your hand.</font>" usr << "<font color='red'>You have nothing to drop in your hand.</font>"
@@ -79,8 +79,9 @@
/client/verb/swap_hand() /client/verb/swap_hand()
set hidden = 1 set hidden = 1
if(istype(mob, /mob/living/carbon)) if(istype(mob, /mob/living))
mob:swap_hand() var/mob/living/L = mob
L.swap_hand()
if(istype(mob,/mob/living/silicon/robot)) if(istype(mob,/mob/living/silicon/robot))
var/mob/living/silicon/robot/R = mob var/mob/living/silicon/robot/R = mob
R.cycle_modules() R.cycle_modules()

View File

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

View File

@@ -26,7 +26,7 @@
/datum/nano_module/alarm_monitor/proc/all_alarms() /datum/nano_module/alarm_monitor/proc/all_alarms()
var/list/all_alarms = new() var/list/all_alarms = new()
for(var/datum/alarm_handler/AH in alarm_handlers) for(var/datum/alarm_handler/AH in alarm_handlers)
all_alarms += AH.alarms all_alarms += AH.visible_alarms()
return all_alarms return all_alarms

View File

@@ -36,6 +36,8 @@
// TODO: Move these to a cache, similar to cameras // TODO: Move these to a cache, similar to cameras
for(var/obj/machinery/alarm/alarm in (monitored_alarms.len ? monitored_alarms : machines)) 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( alarms[++alarms.len] = list(
"name" = sanitize(alarm.name), "name" = sanitize(alarm.name),
"ref"= "\ref[alarm]", "ref"= "\ref[alarm]",

View File

@@ -35,6 +35,50 @@
var/const/signfont = "Times New Roman" var/const/signfont = "Times New Roman"
var/const/crayonfont = "Comic Sans MS" 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 /obj/item/weapon/paper/alien
name = "alien tablet" name = "alien tablet"
desc = "It looks highly advanced" desc = "It looks highly advanced"

View File

@@ -56,6 +56,9 @@
/obj/machinery/power/apc/hyper /obj/machinery/power/apc/hyper
cell_type = /obj/item/weapon/cell/hyper cell_type = /obj/item/weapon/cell/hyper
/obj/machinery/power/apc/alarms_hidden
alarms_hidden = TRUE
/obj/machinery/power/apc /obj/machinery/power/apc
name = "area power controller" name = "area power controller"
desc = "A control terminal for the area electrical systems." desc = "A control terminal for the area electrical systems."
@@ -107,12 +110,12 @@
var/failure_timer = 0 var/failure_timer = 0
var/force_update = 0 var/force_update = 0
var/updating_icon = 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_lock
var/global/list/status_overlays_charging var/global/list/status_overlays_charging
var/global/list/status_overlays_equipment var/global/list/status_overlays_equipment
var/global/list/status_overlays_lighting var/global/list/status_overlays_lighting
var/global/list/status_overlays_environ 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() /obj/machinery/power/apc/updateDialog()
if (stat & (BROKEN|MAINT)) if (stat & (BROKEN|MAINT))
@@ -226,7 +229,7 @@
area.apc = src area.apc = src
if(istype(area, /area/submap)) if(istype(area, /area/submap))
secret = TRUE alarms_hidden = TRUE
update_icon() update_icon()
@@ -1113,8 +1116,7 @@
equipment = autoset(equipment, 0) equipment = autoset(equipment, 0)
lighting = autoset(lighting, 0) lighting = autoset(lighting, 0)
environ = autoset(environ, 0) environ = autoset(environ, 0)
if(!secret) power_alarm.triggerAlarm(loc, src, hidden=alarms_hidden)
power_alarm.triggerAlarm(loc, src)
autoflag = 0 autoflag = 0
// update icon & area power if anything changed // update icon & area power if anything changed
@@ -1144,24 +1146,21 @@
equipment = autoset(equipment, 2) equipment = autoset(equipment, 2)
lighting = autoset(lighting, 1) lighting = autoset(lighting, 1)
environ = autoset(environ, 1) environ = autoset(environ, 1)
if(!secret) power_alarm.triggerAlarm(loc, src, hidden=alarms_hidden)
power_alarm.triggerAlarm(loc, src)
autoflag = 2 autoflag = 2
else if(cell.percent() <= 15) // <15%, turn off lighting & equipment else if(cell.percent() <= 15) // <15%, turn off lighting & equipment
if((autoflag > 1 && longtermpower < 0) || (autoflag > 1 && longtermpower >= 0)) if((autoflag > 1 && longtermpower < 0) || (autoflag > 1 && longtermpower >= 0))
equipment = autoset(equipment, 2) equipment = autoset(equipment, 2)
lighting = autoset(lighting, 2) lighting = autoset(lighting, 2)
environ = autoset(environ, 1) environ = autoset(environ, 1)
if(!secret) power_alarm.triggerAlarm(loc, src, hidden=alarms_hidden)
power_alarm.triggerAlarm(loc, src)
autoflag = 1 autoflag = 1
else // zero charge, turn all off else // zero charge, turn all off
if(autoflag != 0) if(autoflag != 0)
equipment = autoset(equipment, 0) equipment = autoset(equipment, 0)
lighting = autoset(lighting, 0) lighting = autoset(lighting, 0)
environ = autoset(environ, 0) environ = autoset(environ, 0)
if(!secret) power_alarm.triggerAlarm(loc, src, hidden=alarms_hidden)
power_alarm.triggerAlarm(loc, src)
autoflag = 0 autoflag = 0
// val 0=off, 1=off(auto) 2=on 3=on(auto) // val 0=off, 1=off(auto) 2=on 3=on(auto)

View File

@@ -376,6 +376,29 @@
reagents.add_reagent("coco", 2) reagents.add_reagent("coco", 2)
bitesize = 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 /obj/item/weapon/reagent_containers/food/snacks/chocolateegg
name = "Chocolate Egg" name = "Chocolate Egg"
desc = "Such sweet, fattening food." 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) "a" = (/turf/template_noop,/area/template_noop)
"b" = (/turf/template_noop,/area/submap/Shakden) "b" = (/turf/template_noop,/area/submap/Shakden)
"c" = (/turf/simulated/mineral/ignore_mapgen,/area/submap/Shakden) "c" = (/turf/simulated/mineral/ignore_mapgen,/area/submap/Shakden)
"d" = (/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,/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,/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,/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,/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" = (/obj/item/weapon/reagent_containers/food/snacks/meat,/turf/simulated/floor/outdoors/dirt,/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,/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) "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) = {" (1,1,1) = {"
aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa
@@ -25,7 +26,7 @@ abcedddddddddccdddba
accddgddgdddcccdddba accddgddgdddcccdddba
acccdddddddcccdddbba acccdddddddcccdddbba
acccddgdddfcccdddbba acccddgdddfcccdddbba
accccdddgijcccddcbba accccdddijkcccddcbba
abccccddddecccddccba abccccddddecccddccba
abccccccccccccccccba abccccccccccccccccba
abbccccccbbbbccccbba 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 "bonfire.dmm"
#include "Rocky5.dmm" #include "Rocky5.dmm"
#include "Field1.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 #endif
// The 'plains' is the area outside the immediate perimeter of the big outpost. // 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. // 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" desc = "A regular field with a tug on it"
mappath = 'maps/submaps/surface_submaps/plains/Field1.dmm' mappath = 'maps/submaps/surface_submaps/plains/Field1.dmm'
cost = 20 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 /area/submap/Field1
name = "Field 1" 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) "ai" = (/obj/machinery/porta_turret/stationary,/turf/simulated/floor,/area/submap/Rockybase)
"aj" = (/obj/effect/decal/cleanable/blood,/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) "ak" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/template_noop)
"al" = (/obj/machinery/light,/turf/simulated/floor,/area/submap/Rockybase) "al" = (/obj/effect/floor_decal/industrial/danger,/turf/simulated/floor,/area/submap/Rockybase)
"am" = (/turf/simulated/wall/r_wall,/area/submap/Rockybase) "am" = (/obj/machinery/light,/obj/effect/floor_decal/industrial/danger,/turf/simulated/floor,/area/submap/Rockybase)
"an" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/submap/Rockybase) "an" = (/obj/effect/decal/cleanable/blood,/obj/effect/floor_decal/industrial/danger,/turf/simulated/floor,/area/submap/Rockybase)
"ao" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/tiled,/area/submap/Rockybase) "ao" = (/turf/simulated/wall/r_wall,/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) "ap" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/submap/Rockybase)
"aq" = (/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) "aq" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/tiled,/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) "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" = (/obj/structure/table/woodentable,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) "as" = (/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase)
"at" = (/obj/structure/table/woodentable,/turf/simulated/floor/holofloor/lino,/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/item/device/flashlight/lamp,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) "au" = (/obj/structure/table/woodentable,/obj/effect/decal/cleanable/cobweb,/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) "av" = (/obj/structure/table/woodentable,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase)
"aw" = (/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/bed,/obj/item/weapon/bedsheet,/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" = (/obj/structure/table/woodentable,/obj/machinery/light{dir = 1},/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,/obj/item/toy/plushie/spider,/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/closet/l3closet/janitor,/turf/simulated/floor/tiled,/area/submap/Rockybase) "aA" = (/obj/structure/table/woodentable,/obj/machinery/light{dir = 1},/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase)
"aB" = (/mob/living/bot/cleanbot{faction = "malf_drone"},/turf/simulated/floor/tiled,/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/item/weapon/stool,/turf/simulated/floor/tiled,/area/submap/Rockybase) "aC" = (/obj/structure/closet/l3closet/janitor,/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) "aD" = (/mob/living/bot/cleanbot{faction = "malf_drone"},/turf/simulated/floor/tiled,/area/submap/Rockybase)
"aE" = (/turf/simulated/floor/tiled,/area/submap/Rockybase) "aE" = (/obj/item/weapon/stool,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"aF" = (/obj/structure/table/standard,/obj/item/device/laptop,/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" = (/obj/structure/table/standard,/turf/simulated/floor/tiled,/area/submap/Rockybase) "aG" = (/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) "aH" = (/obj/structure/table/standard,/obj/item/device/laptop,/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) "aI" = (/obj/structure/table/standard,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"aJ" = (/obj/machinery/light{dir = 1},/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/machinery/vending/coffee,/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/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) "aL" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase)
"aM" = (/obj/machinery/vending/hydronutrients,/turf/simulated/floor/tiled,/area/submap/Rockybase) "aM" = (/obj/machinery/vending/coffee,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"aN" = (/obj/structure/closet/crate/hydroponics,/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/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) "aO" = (/obj/machinery/vending/hydronutrients,/turf/simulated/floor/tiled,/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) "aP" = (/obj/structure/closet/crate/hydroponics,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"aQ" = (/obj/structure/janitorialcart,/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/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) "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/machinery/light/small{dir = 8},/turf/simulated/floor/tiled,/area/submap/Rockybase) "aS" = (/obj/structure/janitorialcart,/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) "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/structure/bed/chair{dir = 8},/turf/simulated/floor/tiled,/area/submap/Rockybase) "aU" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled,/area/submap/Rockybase)
"aV" = (/obj/machinery/vending/security,/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/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) "aW" = (/obj/structure/bed/chair{dir = 8},/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) "aX" = (/obj/machinery/vending/security,/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) "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/item/mecha_parts/part/gygax_left_leg,/turf/simulated/floor/holofloor/lino,/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/light,/turf/simulated/floor/holofloor/lino,/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/structure/bed,/obj/item/weapon/bedsheet,/obj/item/weapon/gun/projectile/pistol,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) "bb" = (/obj/item/mecha_parts/part/gygax_left_leg,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase)
"bc" = (/obj/structure/closet/crate/trashcart,/turf/simulated/floor/tiled,/area/submap/Rockybase) "bc" = (/obj/machinery/light,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase)
"bd" = (/obj/structure/loot_pile/maint/trash,/turf/simulated/floor/tiled,/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/table/standard,/obj/item/weapon/storage/bag/trash,/obj/item/weapon/storage/bag/trash,/turf/simulated/floor/tiled,/area/submap/Rockybase) "be" = (/obj/structure/closet/crate/trashcart,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bf" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin,/turf/simulated/floor/tiled,/area/submap/Rockybase) "bf" = (/obj/structure/loot_pile/maint/trash,/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) "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/machinery/door/airlock/security{icon_state = "door_locked"; locked = 1},/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,/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/structure/table/rack,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/gun/projectile/automatic/c20r,/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/portable_atmospherics/hydroponics,/turf/simulated/floor/tiled,/area/submap/Rockybase) "bk" = (/obj/machinery/light,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bl" = (/obj/machinery/door/airlock,/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" = (/mob/living/bot/farmbot{faction = "malf_drone"; name = "Mr. Weddleton"},/turf/simulated/floor/tiled,/area/submap/Rockybase) "bm" = (/obj/machinery/portable_atmospherics/hydroponics,/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) "bn" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bo" = (/obj/machinery/vending/cola,/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/structure/door_assembly,/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/effect/decal/cleanable/dirt,/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/decal/cleanable/dirt,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/tiled,/area/submap/Rockybase) "br" = (/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bs" = (/mob/living/simple_animal/hostile/malf_drone/lesser,/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/effect/decal/cleanable/blood,/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/remains,/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/machinery/door/airlock,/turf/simulated/floor/tiled/hydro,/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" = (/obj/machinery/vending/snack,/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/item/stack/rods,/obj/structure/girder,/turf/simulated/floor/tiled,/area/submap/Rockybase) "bx" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"by" = (/obj/item/mecha_parts/part/gygax_right_arm,/turf/simulated/floor/tiled,/area/submap/Rockybase) "by" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bz" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) "bz" = (/obj/effect/decal/remains,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bA" = (/obj/machinery/door/airlock/engineering,/turf/simulated/floor/tiled,/area/submap/Rockybase) "bA" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase)
"bB" = (/turf/simulated/wall,/area/submap/Rockybase) "bB" = (/obj/machinery/vending/snack,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bC" = (/obj/structure/table/standard,/obj/item/device/kit/paint/gygax/darkgygax,/turf/simulated/floor/tiled,/area/submap/Rockybase) "bC" = (/obj/effect/floor_decal/borderfloor,/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) "bD" = (/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/borderfloor,/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) "bE" = (/obj/item/stack/rods,/obj/structure/girder,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bF" = (/obj/structure/table/standard,/obj/random/toolbox,/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/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) "bG" = (/obj/machinery/light,/obj/effect/floor_decal/borderfloor,/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) "bH" = (/obj/effect/decal/cleanable/blood,/obj/effect/floor_decal/borderfloor,/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) "bI" = (/obj/item/mecha_parts/part/gygax_right_arm,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bJ" = (/obj/structure/table/standard,/obj/item/stack/material/steel,/turf/simulated/floor/tiled,/area/submap/Rockybase) "bJ" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/hydro,/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) "bK" = (/obj/machinery/door/airlock/engineering,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bL" = (/obj/item/weapon/material/shard,/turf/simulated/floor,/area/submap/Rockybase) "bL" = (/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bM" = (/obj/structure/table/standard,/obj/fiftyspawner/rods,/turf/simulated/floor/tiled,/area/submap/Rockybase) "bM" = (/turf/simulated/wall,/area/submap/Rockybase)
"bN" = (/obj/machinery/vending/engivend,/turf/simulated/floor/tiled,/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/machinery/vending/tool,/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/item/weapon/storage/toolbox,/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/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/tiled,/area/submap/Rockybase) "bQ" = (/obj/structure/table/standard,/obj/random/toolbox,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bR" = (/obj/item/mecha_parts/part/gygax_torso,/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/machinery/light{dir = 1},/obj/structure/closet/crate/medical,/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/structure/table/standard,/obj/effect/decal/cleanable/dirt,/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/burn,/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/clothing/mask/breath/medical,/obj/effect/decal/cleanable/dirt,/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/closet/secure_closet/medical2,/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/toilet{dir = 4},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) "bW" = (/obj/structure/door_assembly,/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled,/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) "bX" = (/obj/item/weapon/material/shard,/turf/simulated/floor,/area/submap/Rockybase)
"bY" = (/obj/structure/table/standard,/obj/item/device/mmi/digital/robot,/turf/simulated/floor/tiled,/area/submap/Rockybase) "bY" = (/obj/structure/table/standard,/obj/fiftyspawner/rods,/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) "bZ" = (/obj/machinery/vending/engivend,/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) "ca" = (/obj/machinery/vending/tool,/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) "cb" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox,/turf/simulated/floor/tiled,/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) "cc" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"cd" = (/obj/effect/decal/cleanable/dirt,/obj/structure/girder,/turf/simulated/floor,/area/submap/Rockybase) "cd" = (/obj/item/mecha_parts/part/gygax_torso,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"ce" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/submap/Rockybase) "ce" = (/obj/machinery/light{dir = 1},/obj/structure/closet/crate/medical,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"cf" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/turf/simulated/floor,/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/girder,/turf/simulated/floor,/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/medical1,/turf/simulated/floor/tiled,/area/submap/Rockybase) "ch" = (/obj/structure/closet/secure_closet/medical2,/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) "ci" = (/obj/structure/toilet{dir = 4},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase)
"cj" = (/obj/machinery/drone_fabricator,/turf/simulated/floor/tiled,/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/machinery/mecha_part_fabricator,/turf/simulated/floor/tiled,/area/submap/Rockybase) "ck" = (/obj/structure/table/standard,/obj/item/device/mmi/digital/robot,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"cl" = (/obj/machinery/pros_fabricator,/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/table/standard,/obj/item/mecha_parts/mecha_equipment/repair_droid,/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/machinery/light{dir = 8},/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/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) "co" = (/obj/structure/door_assembly,/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) "cp" = (/obj/item/stack/rods,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/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) "cq" = (/obj/effect/decal/cleanable/dirt,/obj/structure/girder,/turf/simulated/floor,/area/submap/Rockybase)
"cr" = (/obj/machinery/vending/medical,/turf/simulated/floor/tiled,/area/submap/Rockybase) "cr" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/submap/Rockybase)
"cs" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) "cs" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/turf/simulated/floor,/area/submap/Rockybase)
"ct" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/submap/Rockybase) "ct" = (/obj/structure/girder,/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) "cu" = (/obj/structure/closet/secure_closet/medical1,/turf/simulated/floor/tiled,/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) "cv" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase)
"cw" = (/obj/item/mecha_parts/part/gygax_armour,/turf/simulated/floor,/area/submap/Rockybase) "cw" = (/obj/machinery/drone_fabricator,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"cx" = (/obj/item/mecha_parts/chassis/gygax,/turf/simulated/floor/tiled,/area/submap/Rockybase) "cx" = (/obj/machinery/mecha_part_fabricator,/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) "cy" = (/obj/machinery/pros_fabricator,/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) "cz" = (/obj/structure/table/standard,/obj/item/mecha_parts/mecha_equipment/repair_droid,/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) "cA" = (/obj/machinery/light{dir = 8},/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) "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/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) "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/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) "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/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) "cE" = (/obj/machinery/vending/medical,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"cF" = (/obj/item/mecha_parts/part/gygax_right_leg,/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/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) "cG" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/submap/Rockybase)
"cH" = (/obj/machinery/vending,/turf/simulated/floor/tiled,/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/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/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/machinery/power/smes/buildable/point_of_interest,/obj/structure/cable/green,/turf/simulated/floor,/area/submap/Rockybase) "cJ" = (/obj/item/mecha_parts/part/gygax_armour,/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) "cK" = (/obj/item/mecha_parts/chassis/gygax,/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) "cL" = (/mob/living/simple_animal/hostile/mecha/malf_drone{name = "Autonomous Mechanized Drone"},/turf/simulated/floor/tiled,/area/submap/Rockybase)
"cM" = (/obj/structure/closet/secure_closet/hydroponics,/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/mech_recharger,/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/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) "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/table/standard,/obj/item/stack/material/glass,/obj/item/stack/material/steel,/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/structure/table/standard,/obj/item/mecha_parts/part/gygax_head,/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/structure/closet/toolcloset,/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/structure/closet/secure_closet/medical3,/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/weapon/surgical/surgicaldrill,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) "cT" = (/obj/item/mecha_parts/part/gygax_right_leg,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"cU" = (/obj/structure/loot_pile/maint/technical,/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/item/clothing/suit/space/void/medical,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) "cV" = (/obj/machinery/vending,/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) "cW" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/submap/Rockybase)
"cX" = (/obj/machinery/vending/hydroseeds,/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/structure/closet/crate/secure/hydrosec,/turf/simulated/floor/tiled,/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/remains,/turf/template_noop,/area/template_noop) "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) = {" (1,1,1) = {"
aaabababababababababababababababababababaaababababababababababababababababababababababababababababaa aaabababababababababababababababababababaaababababababababababababababababababababababababababababaa
@@ -164,26 +178,26 @@ abadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadad
abadadafafafafafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadab abadadafafafafafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadab
abadadafafafafafafagadadadafafafafafadadadadadadadadahahahahahahadadadadadadadadadafafafagadadadadab abadadafafafafafafagadadadafafafafafadadadadadadadadahahahahahahadadadadadadadadadafafafagadadadadab
abadafafafafafafafafafafafafafafafafafadadadadadaiahahajahahahahahaiadadadadadafafafafafafafafafadab abadafafafafafafafafafafafafafafafafafadadadadadaiahahajahahahahahaiadadadadadafafafafafafafafafadab
akadafafafafafafafafafafafafafafafafafafafafafahahalahahahahahajalahahafafafafafafafafafafafafafadab akadafafafafafafafafafafafafafafafafafafafafafalalamalalalalalanamalalafafafafafafafafafafafafafadab
abadafafamamamamamamamamamamamamamamamamamamamamamamamanaoaoanamamamamamamamamamamamamamafafafafadab abadafafaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoapaqaqapaoaoaoaoaoaoaoaoaoaoaoaoaoafafafafadab
abadafamamapaqaramasatauavawawataxayaxatazamamaAaBaCaDamaEaEamaFaGaHaIaJaKamaEaLamaMaNamamafafafadab abadafaoaoarasataoauavawaxayayavazaAazavaBaoaoaCaDaEaFaoaGaGaoaHaIaJaKaLaMaoaGaNaoaOaPaoaoafafafadab
abafafamamaOaqaPamawawawawawawawawawawawawamamaQaEaEaRamaSaEamaTaUaEaEaEaVamaEaWamaEaXamamafafafadab abafafaoaoaQasaRaoayayayayayayayayayayayayaoaoaSaGaGaTaoaUaGaoaVaWaGaGaGaXaoaGaYaoaGaZaoaoafafafadab
abafafamamaOaqaYamawaZawawbaawatbbataxataxamambcaEbdbeamaEaEambfbgaEaEaEaEbhbibjamaEbkamamafafafadab abafafaoaoaQasbaaoaybbayaybcayavbdavazavazaoaobeaGbfbgaoaGaGaobhbiaGaGaGaGbjbkblaoaGbmaoaoafafafadab
abafafamamaqaqaqamamamblamamamamamamamamamamamamblamamamaoaoamamamamamblamamamamambmbnamamafafafadab abafafaoaoasasasaoaoaobnaoaoaoaoaoaoaoaoaoaoaoaobnaoaoaoaqaqaoaoaoaoaobnaoaoaoaoaobobpaoaoafafafadab
abafafamamamblamamboaEaEaEaEaJaEaEaEaEbpaEaJaEaEaEaEaEaEaEaEaEaEaJaEaEaEaEbqbqbramaEbkamamafafafadab abafafaoaoaobnaoaobqbrbrbrbrbsbrbrbrbrbtbrbsbrbrbrbrbrbrbrbrbrbrbsbrbrbrbrbububvaoaGbmaoaoafafafadab
abafafamamaSaEaEaEaEaEaEbsbqbqaEbtbuaEaEaEaEaEaEaEaEaEaEbqaEaEaEaEaEaEaEaEbsbqbqblaEbkamamafafafadab abafafaoaoaUaGaGaGaGaGaGbwbxbxaGbybzaGaGaGaGaGaGaGaGaGaGbxaGaGaGaGaGaGaGaGbwbxbxbnaGbmaoaoafafafadab
abadafamamambvamambwaEaEbqbqbqaEaEaEbxaEahbubiaEbtaEbqbqbqaEaEaEaEaEbiaEaEaEaEbyamaEbnamamafafafadab abadafaoaoaobAaoaobBbCbCbDbDbDbCbCbCbEaGahbFbGbCbHbCbDbDbDbCbCbCbCbCbGbCbCbCbCbIaoaGbpaoaoafafafadab
abadafamambzaqaqamamamamamamamamamamamahahamamamambAamamamamaEamamamamamamamamamamaEbkamamafafafadab abadafaoaobJasasaoaoaoaoaoaoaoaoaoaoaoahahaoaoaoaobKaoaoaoaobLaoaoaoaoaoaoaoaoaoaoaGbmaoaoafafafadab
abadafamambBbBaqambCbDbEbFbGbHbIbJbKbpahbLbMambNbOaEbPbQambRaEaEbSbTbUbqaEaEaEbVamaEbkamamafafafadab abadafaoaobMbMasaobNbObPbQbRbSbTbUbVbWahbXbYaobZcaaGcbccaocdbLaGcecfcgbxaGaGaGchaoaGbmaoaoafafafadab
abadafamambWbvbXamaEaEaEaEaEaEaEaEaEaEaEahbYamaEaEbZcacbambpaEbqbqcccdcecfcgaEchamaEbnamamafafafaeab abadafaoaocibAcjaoaGaGaGaGaGaGaGaGaGbLbLahckaoaGaGclcmcnaocoaGbxbxcpcqcrcsctaGcuaoaGbpaoaoafafafaeab
abadafamambBbBciamaEcjaEaEcjaEaEckaEclaEahcmamcnbqcocpcqamcraEbqcsctcucvctcwahaEamaEbkamamafafadadab abadafaoaobMbMcvaoaGcwaGaGcwaGaGcxaGcybLahczaocAbxcBcCcDaocEaGbxcFcGcHcIcGcJahaGaoaGbmaoaoafafadadab
abadafamambWbvaqamcnaEaEcxaEcyaEbqbqaEaEaEczamcAcBcCcBcDamaEaEbqcEcvcvctcfahbLaEamaEcFamamafafadadab abadafaoaocibAasaocAaGaGcKaGcLaGcMbxcMbLbLcNaocOcPcQcPcRaoaGaGbxcScIcIcGcsahbXaGaoaGcTaoaoafafadadab
abadafamambBbBcGamaEcjaEaEahahbqbqbqbqaEaEcHamaEaEcIcpcJamcKaEaEcLctcecececeahbqamaEcMamamafagadadab abadafaoaobMbMcUaoaGcwaGaGahahbxbxbxbxaGaGcVaoaGaGcWcCcXaocYaGaGcZcGcrcrcrcrahbxaoaGdaaoaoafagadadab
abadafamambWbvaqamaEaEaEaEaEaEbicNaEcNaEaEbOamcOcPcQaEcRamcSaEcTaEaEcUcgcUcVbqcWamcXcYamamafafadadab abadafaoaocibAasaoaGaGaGaGaGaGbkdbaGdbaGaGcaaodcdddeaGdfaodgaGdhaGaGdictdidjbxdkaodldmaoaoafafadadab
abadafafamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamafafadadadab abadafafaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoafafadadadab
abadafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafadadadab abadafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafadadadab
abadafafafafafafafafafafafafafafafafafafafafafafafafafafafafafadafafafadadadafafafafafafafadadadadab abadafafafafafafafafafafafafafafafafafafafafafafafafafafafafafadafafafadadadafafafafafafafadadadadab
abadadafafafafafafafafafafafafagadadadafafafafafafadadadadadadadadadadadadadadadadadadadadadadadadab abadadafafafafafafafafafafafafagadadadafafafafafafadadadadadadadadadadadadadadadadadadadadadadadadab
abadaeadadadadadadafafafafafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadab abadaeadadadadadadafafafafafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadab
aaabcZababababababababababababababababababaaababababababababababababababababakababababababcZabakabab aaabdnababababababababababababababababababaaababababababababababababababababakababababababdnabakabab
"} "}

View File

@@ -23,6 +23,7 @@
#include "DecoupledEngine.dmm" #include "DecoupledEngine.dmm"
#include "DoomP.dmm" #include "DoomP.dmm"
#include "CaveS.dmm" #include "CaveS.dmm"
#include "Drugden.dmm"
#endif #endif
@@ -179,3 +180,9 @@
desc = "Chitter chitter!" desc = "Chitter chitter!"
mappath = 'maps/submaps/surface_submaps/wilderness/CaveS.dmm' mappath = 'maps/submaps/surface_submaps/wilderness/CaveS.dmm'
cost = 20 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 /area/submap/CaveS
name = "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\silicon\robot\subtypes\syndicate.dm"
#include "code\modules\mob\living\simple_animal\corpse.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_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\alien.dm"
#include "code\modules\mob\living\simple_animal\aliens\creature.dm" #include "code\modules\mob\living\simple_animal\aliens\creature.dm"
#include "code\modules\mob\living\simple_animal\aliens\drone.dm" #include "code\modules\mob\living\simple_animal\aliens\drone.dm"