mirror of
https://github.com/evilew/GS13-Citadel.git
synced 2026-08-24 21:58:09 +01:00
Merge branch 'master' of https://github.com/Hekto61/GS13-Citadel
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
/datum/map_template/shuttle/feeder
|
||||
shuttle_id = "feeder_ship"
|
||||
port_id = "feeder_ship"
|
||||
suffix = "default"
|
||||
name = "Mysterious Shuttle"
|
||||
can_be_bought = FALSE
|
||||
|
||||
/area/shuttle/feeder_shuttle
|
||||
name = "Mysterious Shuttle"
|
||||
@@ -1,10 +1,10 @@
|
||||
/datum/feeders_den_goodie
|
||||
/// What is the name of the goodie we want to buy?
|
||||
var/name
|
||||
var/name
|
||||
/// How much credits does this cost to buy?
|
||||
var/credit_cost = 0
|
||||
/// How much stock of this can be bought? If this is null, infinite can be bought
|
||||
var/initial_stock
|
||||
var/initial_stock
|
||||
/// What is the path of the item to dispense?
|
||||
var/item_to_dispense
|
||||
|
||||
@@ -13,11 +13,6 @@
|
||||
credit_cost = 100
|
||||
item_to_dispense = /obj/item/vending_refill/mealdor
|
||||
|
||||
/datum/feeders_den_goodie/gizmo
|
||||
name = "Science Tool"
|
||||
credit_cost = 120
|
||||
item_to_dispense = /obj/item/abductor/gizmo/feeder
|
||||
|
||||
/datum/feeders_den_goodie/nutripump_turbo
|
||||
name = "Nutri-Pump TURBO Autosurgeon"
|
||||
credit_cost = 150
|
||||
@@ -85,4 +80,9 @@
|
||||
name = "Livestock Implant"
|
||||
credit_cost = 250
|
||||
item_to_dispense = /obj/item/implantcase/docile/livestock
|
||||
initial_stock = 5
|
||||
|
||||
/datum/feeders_den_goodie/space_suit
|
||||
name = "Boxed Space Suit and Helmet"
|
||||
credit_cost = 300
|
||||
item_to_dispense = /obj/item/storage/box/syndie_kit/space
|
||||
initial_stock = 2
|
||||
|
||||
@@ -26,6 +26,11 @@ GLOBAL_LIST_INIT(uncapped_resize_areas, list(/area/command/bridge, /area/mainten
|
||||
var/fullness = FULLNESS_LEVEL_HALF_FULL
|
||||
var/fullness_reduction_timer = 0 // When was the last time they emoted to reduce their fullness
|
||||
|
||||
/// How many mobs have been digested by this mob?
|
||||
var/prey_digested = 0
|
||||
/// How many humanoid mobs have been digested by this mob?
|
||||
var/human_prey_digested = 0
|
||||
|
||||
/**
|
||||
* Adjusts the fatness level of the parent mob.
|
||||
*
|
||||
@@ -274,6 +279,10 @@ GLOBAL_LIST_INIT(uncapped_resize_areas, list(/area/command/bridge, /area/mainten
|
||||
return needed_fatness
|
||||
|
||||
/mob/living/carbon/proc/applyFatnessDamage(amount)
|
||||
if(!client?.prefs?.weight_gain_weapons) // If we can't fatten them through weapons, apply stamina damage
|
||||
adjustStaminaLoss(amount)
|
||||
return TRUE
|
||||
|
||||
var/fat_to_add = ((amount * CONFIG_GET(number/damage_multiplier)) * FAT_DAMAGE_TO_FATNESS)
|
||||
adjust_fatness(fat_to_add, FATTENING_TYPE_WEAPON)
|
||||
return fat_to_add
|
||||
|
||||
@@ -2,13 +2,24 @@
|
||||
var/food_per_feeding = 5
|
||||
var/food_fed = /datum/reagent/consumable/nutriment
|
||||
|
||||
/mob/living/simple_animal/hostile/feed/CanAttack(atom/the_target)
|
||||
var/mob/living/carbon/target = the_target
|
||||
if(!istype(the_target)|| !check_target_prefs(target))
|
||||
return FALSE
|
||||
|
||||
return ..()
|
||||
|
||||
/// Called when seeing if a target can be attacked. See if the target has the pref on and return accordingly.
|
||||
/mob/living/simple_animal/hostile/proc/check_target_prefs(mob/living/carbon/target)
|
||||
return target?.client?.prefs?.weight_gain_weapons
|
||||
|
||||
/mob/living/simple_animal/hostile/feed/AttackingTarget()
|
||||
. = ..()
|
||||
var/mob/living/carbon/L = target
|
||||
if(L.client?.prefs?.weight_gain_weapons)
|
||||
if(L.reagents)
|
||||
if(!L.is_mouth_covered(head_only = 1))
|
||||
L.reagents.add_reagent(food_fed, food_per_feeding)
|
||||
if(!istype(L) || !L.reagents || !L.is_mouth_covered(head_only = 1))
|
||||
return FALSE
|
||||
|
||||
L.reagents.add_reagent(food_fed, food_per_feeding)
|
||||
|
||||
/mob/living/simple_animal/hostile/feed/chocolate_slime
|
||||
name = "Chocolate slime"
|
||||
@@ -83,13 +94,13 @@
|
||||
/obj/item/projectile/beam/fattening/icecream/on_hit(atom/target, blocked)
|
||||
. = ..()
|
||||
var/mob/living/carbon/L = target
|
||||
if(L.client?.prefs?.weight_gain_weapons)
|
||||
if(L.reagents)
|
||||
if(!L.is_mouth_covered(head_only = 1))
|
||||
L.reagents.add_reagent(food_fed, food_per_feeding)
|
||||
if(HAS_TRAIT(L, TRAIT_VORACIOUS))
|
||||
fullness_add = fullness_add * 0.67
|
||||
L.fullness += (fullness_add)
|
||||
if(!istype(L) || !L.reagents || L.is_mouth_covered(head_only = 1))
|
||||
return FALSE
|
||||
|
||||
L.reagents.add_reagent(food_fed, food_per_feeding)
|
||||
if(HAS_TRAIT(L, TRAIT_VORACIOUS))
|
||||
fullness_add = fullness_add * 0.67
|
||||
L.fullness += (fullness_add)
|
||||
|
||||
|
||||
|
||||
@@ -137,5 +148,17 @@
|
||||
/mob/living/simple_animal/hostile/fatten/AttackingTarget()
|
||||
. = ..()
|
||||
var/mob/living/carbon/L = target
|
||||
if(L.client?.prefs?.weight_gain_magic)
|
||||
L.adjust_fatness(fat_per_hit)
|
||||
if(!istype(L))
|
||||
return FALSE
|
||||
|
||||
L.adjust_fatness(fat_per_hit, FATTENING_TYPE_MAGIC)
|
||||
|
||||
/mob/living/simple_animal/hostile/fatten/CanAttack(atom/the_target)
|
||||
var/mob/living/carbon/target = the_target
|
||||
if(!istype(the_target)|| !check_target_prefs(target))
|
||||
return FALSE
|
||||
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/hostile/fatten/check_target_prefs(mob/living/carbon/target)
|
||||
return target?.client?.prefs?.weight_gain_magic
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
/obj/item/grenade/chem_grenade/lipoifier_strong
|
||||
name = "lipoifier grenade"
|
||||
desc = "For when you want everyone in the room to gain a couple hundred pounds."
|
||||
stage = 3
|
||||
|
||||
/obj/item/grenade/chem_grenade/lipoifier_strong/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -21,6 +22,7 @@
|
||||
/obj/item/grenade/chem_grenade/lipoifier_weak
|
||||
name = "lipoifier grenade"
|
||||
desc = "For when you want everyone in the room to gain a couple dozen pounds."
|
||||
stage = 3
|
||||
|
||||
/obj/item/grenade/chem_grenade/lipoifier_weak/Initialize(mapload)
|
||||
. = ..()
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
/obj/item/melee/baton/stunsword/fattening
|
||||
name = "fattening stunsword"
|
||||
desc = "functions the same as it's standard counterpart, but fattens targets when used aggressively."
|
||||
force = 20
|
||||
damtype = FAT
|
||||
|
||||
/obj/item/melee/baton/fattening
|
||||
name = "fattening stunbaton"
|
||||
desc = "functions the same as it's standard counterpart, but fattens targets when used aggressively."
|
||||
force = 20
|
||||
damtype = FAT
|
||||
@@ -17,19 +17,20 @@
|
||||
"cw" = (/obj/machinery/light{dir = 8},/turf/open/floor/wood,/area/ruin/space/has_grav/feedersden)
|
||||
"cx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 8},/obj/structure/cable{icon_state = "2-8"},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"cy" = (/obj/structure/table/reinforced,/obj/item/reagent_containers/food/snacks/store/cake/chocolate,/obj/machinery/light/small{dir = 1},/turf/open/floor/mineral/basaltstone_floor,/area/ruin/space/has_grav/feedersden)
|
||||
"cR" = (/obj/machinery/door/airlock/abductor,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"cV" = (/turf/open/floor/plating/abductor,/area/ruin/space/has_grav/feedersden)
|
||||
"cR" = (/obj/effect/turf_decal{dir = 4},/obj/structure/fans/tiny,/obj/machinery/door/airlock/hatch{name = "airlock"; req_access_txt = "150"},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"cW" = (/obj/structure/cable{icon_state = "0-4"},/obj/machinery/power/apc{name = "Base Power Controller"; pixel_x = -28},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"dd" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"de" = (/obj/structure/sign/poster/contraband/donut_corp{pixel_y = 32},/turf/open/floor/carpet/black,/area/ruin/space/has_grav/feedersden)
|
||||
"dj" = (/obj/structure/sink{dir = 4; pixel_x = 12},/obj/structure/mirror{pixel_x = 24},/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "borderfloor"},/obj/effect/turf_decal/loading_area{dir = 2; icon_state = "steel_decals9"},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"dl" = (/obj/structure/rack/shelf,/obj/item/stack/sheet/glass/fifty,/obj/item/stack/sheet/metal/fifty,/obj/item/stack/sheet/mineral/titanium/fifty{pixel_x = -4; pixel_y = 4},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"dr" = (/obj/machinery/door/airlock/external,/obj/effect/turf_decal{dir = 8},/obj/effect/turf_decal{dir = 4},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"dv" = (/obj/machinery/chem_dispenser/mutagensaltpeter,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"dz" = (/obj/structure/rack,/obj/item/mop/advanced,/obj/item/storage/bag/trash,/obj/effect/turf_decal/tile/brown{dir = 4},/obj/effect/turf_decal/tile/brown,/obj/item/storage/box/lights/mixed,/obj/structure/window/reinforced/tinted{dir = 4},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"dz" = (/obj/structure/rack,/obj/item/mop/advanced,/obj/item/storage/bag/trash,/obj/effect/turf_decal/tile/brown{dir = 4},/obj/effect/turf_decal/tile/brown,/obj/item/storage/box/lights/mixed,/obj/structure/window/reinforced/tinted{dir = 4},/obj/effect/turf_decal/tile/brown{dir = 4},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"dA" = (/obj/structure/toilet{dir = 8},/obj/machinery/light/small{dir = 4; light_color = "#d8b1b1"},/turf/open/floor/plasteel/freezer,/area/ruin/space/has_grav/feedersden)
|
||||
"dC" = (/obj/machinery/deepfryer,/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"dG" = (/obj/structure/flora/ausbushes/grassybush,/turf/open/floor/plating/asteroid,/area/ruin/space/has_grav/feedersden)
|
||||
"dH" = (/obj/machinery/door/airlock/public/glass{name = "Cell 2"; id_tag = "feederden_cell2"},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
|
||||
"dL" = (/obj/structure/lattice,/turf/closed/mineral/random,/area/ruin/space/has_grav/feedersden)
|
||||
"eb" = (/obj/structure/lattice,/turf/template_noop,/area/ruin/unpowered/no_grav)
|
||||
"ef" = (/obj/structure/table/wood,/obj/item/storage/pill_bottle/breast_enlargement{pixel_y = 5; pixel_x = -5},/turf/open/floor/wood,/area/ruin/space/has_grav/feedersden)
|
||||
"eg" = (/obj/structure/reagent_dispensers/keg/lipoifier,/turf/open/floor/wood,/area/ruin/space/has_grav/feedersden)
|
||||
@@ -50,7 +51,7 @@
|
||||
"fS" = (/obj/structure/table/wood,/obj/machinery/chem_dispenser/drinks/beer/fullupgrade{dir = 1},/turf/open/floor/carpet/orange,/area/ruin/space/has_grav/feedersden)
|
||||
"ga" = (/obj/item/trash/boritos,/obj/structure/sign/poster/contraband/donut_corp{pixel_y = 32},/turf/open/floor/carpet/black,/area/ruin/space/has_grav/feedersden)
|
||||
"gi" = (/obj/structure/sink{dir = 4; pixel_x = 11},/obj/structure/mirror{pixel_x = 24},/turf/open/floor/plasteel/freezer,/area/ruin/space/has_grav/feedersden)
|
||||
"gk" = (/obj/effect/turf_decal/stripes{icon_state = "trim"; dir = 4},/turf/open/floor/plating/abductor,/area/ruin/space/has_grav/feedersden)
|
||||
"gk" = (/obj/effect/turf_decal,/turf/open/floor/mineral/plastitanium/red,/area/ruin/space/has_grav/feedersden)
|
||||
"gn" = (/obj/item/trash/can,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/effect/turf_decal/stripes{icon_state = "steel_decals5"},/obj/effect/turf_decal/stripes{icon_state = "steel_grid"; dir = 5},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"gq" = (/obj/vehicle/ridden/wheelchair,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"gu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4; piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/effect/turf_decal/loading_area{icon_state = "steel_decals_central6"},/obj/effect/turf_decal/stripes/white/line{dir = 4; icon_state = "steel_decals3"},/obj/effect/turf_decal/stripes/white/line{dir = 2; icon_state = "steel_decals3"},/obj/effect/turf_decal/stripes/white/line{dir = 5; icon_state = "steel_decals3"},/obj/effect/turf_decal/stripes/white/line{dir = 6; icon_state = "steel_decals3"},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
@@ -63,7 +64,8 @@
|
||||
"hl" = (/obj/item/storage/toolbox/syndicate,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"hT" = (/obj/machinery/atmospherics/components/unary/vent_pump/on,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"ie" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4; piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/machinery/seed_extractor,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"ik" = (/obj/structure/ore_box,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"ik" = (/obj/effect/turf_decal/tile/brown{dir = 1},/obj/effect/turf_decal/tile/brown{dir = 8},/obj/machinery/quantumpad/supply_only{map_pad_id = "denbase"; map_pad_link_id = "lavalandbase"},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"iu" = (/obj/structure/curtain,/turf/open/floor/plasteel/freezer,/area/ruin/space/has_grav/feedersden)
|
||||
"iv" = (/obj/structure/chair/sofa/corner,/turf/open/floor/carpet/orange,/area/ruin/space/has_grav/feedersden)
|
||||
"iN" = (/obj/machinery/light{dir = 1},/obj/structure/disposalpipe/segment,/obj/machinery/processor,/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"iO" = (/obj/effect/turf_decal/tile/bar,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 1},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
|
||||
@@ -72,7 +74,7 @@
|
||||
"jh" = (/obj/structure/table,/obj/machinery/disposal/bin{pixel_y = -10},/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"jI" = (/turf/open/floor/plating/asteroid,/area/ruin/space/has_grav/feedersden)
|
||||
"jO" = (/obj/effect/turf_decal/tile/red{dir = 1},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
|
||||
"jS" = (/obj/structure/rack/shelf,/obj/item/electropack/shockcollar,/obj/item/clothing/neck/petcollar,/obj/item/melee/baton/stunsword,/obj/item/restraints/handcuffs,/obj/item/restraints/handcuffs/cable/zipties,/obj/effect/turf_decal/tile/brown,/obj/effect/turf_decal/tile/brown{dir = 8},/obj/item/melee/baton/stunsword,/obj/item/clothing/neck/petcollar/calorite,/obj/item/clothing/mask/cowmask/gag,/obj/item/clothing/mask/cowmask/gag,/obj/item/clothing/mask/pig/gag,/obj/item/clothing/mask/pig/gag,/obj/item/stock_parts/cell/high,/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"jS" = (/obj/structure/rack/shelf,/obj/item/electropack/shockcollar,/obj/item/clothing/neck/petcollar,/obj/item/melee/baton/stunsword/fattening,/obj/item/restraints/handcuffs,/obj/item/restraints/handcuffs/cable/zipties,/obj/effect/turf_decal/tile/brown,/obj/effect/turf_decal/tile/brown{dir = 8},/obj/item/melee/baton/stunsword/fattening,/obj/item/clothing/neck/petcollar/calorite,/obj/item/clothing/mask/cowmask/gag,/obj/item/clothing/mask/cowmask/gag,/obj/item/clothing/mask/pig/gag,/obj/item/clothing/mask/pig/gag,/obj/item/stock_parts/cell/high,/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"kd" = (/obj/structure/table,/obj/item/kitchen/rollingpin,/obj/item/kitchen/knife/butcher,/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"kg" = (/obj/effect/spawner/structure/window/reinforced,/obj/machinery/door/poddoor/shutters/old/preopen{id = "feederden_south"},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"ko" = (/obj/machinery/space_heater,/obj/machinery/airalarm/syndicate{pixel_y = 32},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
@@ -85,7 +87,7 @@
|
||||
"lQ" = (/obj/structure/chair/sofa/right,/turf/open/floor/carpet/orange,/area/ruin/space/has_grav/feedersden)
|
||||
"lR" = (/obj/machinery/iv_drip/feeding_tube,/obj/machinery/light/small{dir = 1},/turf/open/floor/carpet/black,/area/ruin/space/has_grav/feedersden)
|
||||
"ma" = (/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"mf" = (/obj/effect/turf_decal/tile/brown{dir = 1},/obj/effect/turf_decal/tile/brown{dir = 8},/obj/machinery/quantumpad/supply_only{map_pad_id = "denbase"; map_pad_link_id = "lavalandbase"},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"mf" = (/obj/effect/turf_decal/tile/brown{dir = 8},/obj/effect/turf_decal/tile/brown{dir = 1},/obj/machinery/computer/shuttle/syndicate{name = "shuttle terminal"; dir = 4; shuttleId = "feeder_ship"; possible_destinations = "feeder_home;whiteship_home;feeder_custom"},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"mm" = (/obj/machinery/vending/mealdor{free = 1},/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
|
||||
"mD" = (/obj/structure/closet/emcloset/anchored,/obj/effect/turf_decal/stripes/white/line{dir = 2},/obj/effect/turf_decal/stripes/white/line{dir = 1; icon_state = "steel_decals_central4"},/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/effect/turf_decal/tile/neutral,/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"mJ" = (/obj/structure/chair/sofa/corner{dir = 4},/turf/open/floor/carpet/orange,/area/ruin/space/has_grav/feedersden)
|
||||
@@ -93,12 +95,11 @@
|
||||
"nd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4; piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/effect/turf_decal/stripes{icon_state = "steel_decals5"; dir = 1},/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "steel_decals9"},/obj/effect/turf_decal/stripes/white/line{dir = 6; icon_state = "steel_decals7"},/obj/effect/turf_decal/stripes/white/line{dir = 9; icon_state = "steel_decals7"},/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"nr" = (/turf/closed/wall/r_wall/syndicate,/area/ruin/space/has_grav/feedersden)
|
||||
"nu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/machinery/door/airlock/public/glass{name = "Cell 1"; id_tag = "feederden_cell1"},/turf/open/floor/mineral/basaltstone_floor,/area/ruin/space/has_grav/feedersden)
|
||||
"nw" = (/obj/machinery/light/small{dir = 1},/obj/effect/turf_decal/stripes{icon_state = "trim"; dir = 1},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"nw" = (/obj/machinery/light/small{dir = 1},/obj/effect/turf_decal/stripes{icon_state = "trim"; dir = 1},/turf/open/floor/mineral/plastitanium/red,/area/ruin/space/has_grav/feedersden)
|
||||
"nA" = (/obj/machinery/atmospherics/pipe/manifold/supply,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4; piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/effect/turf_decal/stripes{icon_state = "steel_decals5"; dir = 1},/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "steel_decals9"},/obj/effect/turf_decal/stripes/white/line{dir = 6; icon_state = "steel_decals7"},/obj/effect/turf_decal/stripes/white/line{dir = 9; icon_state = "steel_decals7"},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"nE" = (/obj/structure/flora/junglebush,/turf/open/floor/plating/asteroid,/area/ruin/space/has_grav/feedersden)
|
||||
"nK" = (/obj/machinery/abductor/feeder_console,/obj/effect/turf_decal/stripes{icon_state = "trim"; dir = 9},/turf/open/floor/plating/abductor,/area/ruin/space/has_grav/feedersden)
|
||||
"nQ" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate{pixel_x = -10},/obj/item/clothing/head/helmet/space/syndicate{pixel_x = -10},/obj/item/clothing/mask/gas{pixel_x = -10; pixel_y = 3},/obj/item/clothing/suit/space/syndicate/orange{pixel_x = 8; name = "extra stretchy space suit"},/obj/item/clothing/head/helmet/space/syndicate/orange{pixel_x = 10},/obj/item/clothing/mask/gas{pixel_x = 10; pixel_y = 3},/obj/item/tank/jetpack/carbondioxide/eva,/obj/effect/turf_decal/stripes/white/line{dir = 9},/obj/effect/turf_decal/stripes/white/line{dir = 1; icon_state = "steel_decals_central4"},/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/effect/turf_decal/tile/neutral,/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"nW" = (/obj/machinery/door/airlock/hatch{name = "airlock"; req_access_txt = "150"},/obj/structure/cable{icon_state = "1-2"},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"nW" = (/obj/machinery/door/airlock/hatch{name = "airlock"; req_access_txt = "150"},/obj/structure/cable{icon_state = "1-2"},/obj/effect/turf_decal{dir = 1},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"oF" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
|
||||
"oH" = (/obj/structure/lattice/catwalk,/turf/template_noop,/area/ruin/space/has_grav/feedersden)
|
||||
"oK" = (/turf/open/floor/wood,/area/ruin/space/has_grav/feedersden)
|
||||
@@ -110,14 +111,14 @@
|
||||
"ph" = (/obj/machinery/vending/gato{free = 1},/turf/open/floor/wood,/area/ruin/space/has_grav/feedersden)
|
||||
"pl" = (/obj/machinery/porta_turret/fattening,/obj/structure/lattice/catwalk,/obj/item/stack/marker_beacon{anchored = 1; icon_state = "markerburgundy-on"; light_color = "#FA644B"; light_power = 3; light_range = 2; name = "landing marker"; picked_color = "Burgundy"},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"pO" = (/obj/structure/table/wood,/obj/item/reagent_containers/food/snacks/meat/bacon,/turf/open/floor/wood,/area/ruin/space/has_grav/feedersden)
|
||||
"qh" = (/obj/machinery/food_cart,/obj/effect/turf_decal/tile/brown{dir = 1},/obj/effect/turf_decal/tile/brown{dir = 8},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"qh" = (/obj/effect/turf_decal/tile/brown{dir = 1},/obj/effect/turf_decal/tile/brown{dir = 8},/obj/structure/ore_box,/obj/item/stack/sheet/mineral/calorite,/obj/item/stack/sheet/mineral/calorite,/obj/item/stack/sheet/mineral/calorite,/obj/item/stack/sheet/mineral/calorite,/obj/item/stack/sheet/mineral/calorite,/obj/item/stack/sheet/mineral/calorite,/obj/item/stack/sheet/mineral/calorite,/obj/item/stack/sheet/mineral/calorite,/obj/item/stack/sheet/mineral/calorite,/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"qi" = (/obj/machinery/atmospherics/components/unary/vent_scrubber/on{piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 4},/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
|
||||
"qq" = (/obj/machinery/atmospherics/pipe/manifold/supply,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4; piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 6},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
|
||||
"qt" = (/obj/effect/mob_spawn/human/feeders_den/fanatic{dir = 8},/obj/item/flashlight/seclite,/obj/effect/turf_decal/tile/red{dir = 4},/obj/effect/turf_decal/tile/red,/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
|
||||
"qC" = (/obj/structure/falsewall/plastitanium,/obj/structure/fans/tiny/invisible,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"qD" = (/obj/machinery/computer/security/telescreen/entertainment,/turf/closed/wall/r_wall/syndicate,/area/ruin/space/has_grav/feedersden)
|
||||
"qF" = (/obj/structure/lattice,/turf/closed/mineral/random,/area/ruin/unpowered/no_grav)
|
||||
"qM" = (/obj/structure/closet/crate/secure/weapon,/obj/item/clothing/glasses/hud/health/night,/obj/item/kitchen/knife/combat,/obj/effect/turf_decal/tile/brown{dir = 1},/obj/effect/turf_decal/tile/brown{dir = 8},/obj/effect/turf_decal/tile/brown,/obj/item/gun/energy/fatoray,/obj/item/book/granter/spell/fattening,/obj/item/gun/energy/laser/alter_ray/gainrate,/obj/item/cookiesynth,/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"qM" = (/obj/item/stack/marker_beacon{anchored = 1; icon_state = "markerburgundy-on"; light_color = "#FA644B"; light_power = 3; light_range = 2; name = "landing marker"; picked_color = "Burgundy"},/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/mineral/plastitanium/red,/area/ruin/space/has_grav/feedersden)
|
||||
"rf" = (/obj/effect/turf_decal/stripes/white/line{dir = 8; icon_state = "steel_decals4"},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"ri" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/components/unary/tank/air,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"rj" = (/obj/machinery/iv_drip/feeding_tube,/turf/open/floor/mineral/basaltstone_floor,/area/ruin/space/has_grav/feedersden)
|
||||
@@ -126,10 +127,13 @@
|
||||
"rt" = (/obj/structure/chair/sofa,/obj/item/reagent_containers/food/snacks/pizzaslice/margherita,/turf/open/floor/carpet/orange,/area/ruin/space/has_grav/feedersden)
|
||||
"rB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4; piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/effect/turf_decal/stripes{icon_state = "steel_decals5"; dir = 1},/obj/effect/turf_decal/stripes/white/line{dir = 6; icon_state = "steel_decals7"},/obj/effect/turf_decal/stripes/white/line{dir = 9; icon_state = "steel_decals7"},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"rE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4; piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/machinery/vending/hydroseeds{slogan_delay = 700; free = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"rH" = (/obj/effect/turf_decal{dir = 1},/obj/item/stack/marker_beacon{anchored = 1; icon_state = "markerburgundy-on"; light_color = "#FA644B"; light_power = 3; light_range = 2; name = "landing marker"; picked_color = "Burgundy"},/turf/open/floor/mineral/plastitanium/red,/area/ruin/space/has_grav/feedersden)
|
||||
"rJ" = (/obj/machinery/atmospherics/pipe/manifold/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/structure/disposalpipe/segment{dir = 10},/obj/structure/cable{icon_state = "2-4"},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
|
||||
"rO" = (/obj/machinery/light/small{brightness = 2; dir = 8},/obj/structure/rack/shelf,/obj/item/reagent_containers/rag/towel/syndicate,/obj/item/reagent_containers/rag/towel/syndicate,/obj/item/soap/syndie,/obj/item/reagent_containers/rag/towel/syndicate,/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "borderfloor"},/turf/open/floor/plasteel/yellowsiding,/area/ruin/space/has_grav/feedersden)
|
||||
"rS" = (/obj/structure/table,/obj/item/reagent_containers/glass/beaker/fizulphite{pixel_x = -8},/obj/item/reagent_containers/glass/beaker/lipoifier{name = "lipoifier beaker"; pixel_y = -5},/obj/item/clothing/glasses/science{pixel_y = 8},/turf/open/floor/mineral/basaltstone_floor,/area/ruin/space/has_grav/feedersden)
|
||||
"rW" = (/turf/open/floor/wood{icon_state = "wood-broken7"},/area/ruin/space/has_grav/feedersden)
|
||||
"sa" = (/obj/effect/turf_decal/stripes{icon_state = "steel_decals5"},/obj/effect/turf_decal/stripes/white/line{dir = 5; icon_state = "steel_decals7"},/obj/effect/turf_decal/stripes/white/line{dir = 5; icon_state = "steel_decals7"},/obj/effect/turf_decal/stripes/white/line{dir = 10; icon_state = "steel_decals7"},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"sn" = (/obj/structure/lattice/catwalk,/obj/machinery/porta_turret/fattening,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"sq" = (/turf/open/floor/mineral/basaltstone_floor,/area/ruin/space/has_grav/feedersden)
|
||||
"su" = (/obj/item/storage/box/ingredients/wildcard,/obj/item/storage/box/ingredients/wildcard,/obj/item/storage/box/ingredients/wildcard,/obj/item/storage/box/ingredients/wildcard,/obj/item/storage/box/ingredients/wildcard,/obj/item/storage/box/ingredients/wildcard,/obj/item/storage/box/ingredients/wildcard,/obj/item/storage/box/ingredients/wildcard,/obj/item/storage/box/ingredients/wildcard,/obj/structure/rack/shelf,/obj/item/storage/box/ingredients/wildcard,/obj/item/storage/box/ingredients/wildcard,/turf/open/floor/plasteel/freezer,/area/ruin/space/has_grav/feedersden)
|
||||
"sC" = (/obj/machinery/vending/hydronutrients{free = 1},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
@@ -140,7 +144,7 @@
|
||||
"tb" = (/obj/structure/table/wood,/obj/machinery/chem_dispenser/drinks/fullupgrade{dir = 1},/turf/open/floor/carpet/orange,/area/ruin/space/has_grav/feedersden)
|
||||
"tf" = (/obj/item/trash/plate{pixel_x = -5; pixel_y = 4},/turf/open/floor/wood{icon_state = "wood-broken7"},/area/ruin/space/has_grav/feedersden)
|
||||
"tj" = (/obj/item/book/manual/blubbery_bartender{pixel_y = -4; pixel_x = -4},/obj/item/book/manual/fatty_chems{pixel_y = -8; pixel_x = -8},/turf/open/floor/plasteel/freezer,/area/ruin/space/has_grav/feedersden)
|
||||
"ty" = (/obj/structure/toilet{dir = 4},/obj/machinery/light/small{brightness = 2; dir = 8},/turf/open/floor/plasteel/freezer,/area/ruin/space/has_grav/feedersden)
|
||||
"ty" = (/obj/effect/turf_decal/stripes/white/line{dir = 8; icon_state = "steel_decals_central4"},/turf/open/floor/plasteel/yellowsiding{dir = 8},/area/ruin/space/has_grav/feedersden)
|
||||
"tB" = (/obj/effect/turf_decal/loading_area{icon_state = "steel_decals_central7"},/obj/effect/turf_decal/loading_area{dir = 9; icon_state = "steel_decals4"},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"tE" = (/obj/structure/table/wood,/obj/item/reagent_containers/food/drinks/soda_cans/cola,/obj/item/reagent_containers/food/drinks/soda_cans/dr_gibb{pixel_y = -7; pixel_x = -5},/turf/open/floor/wood,/area/ruin/space/has_grav/feedersden)
|
||||
"tH" = (/obj/machinery/atmospherics/components/unary/vent_scrubber/on{dir = 4; piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/effect/turf_decal/stripes/white/line{dir = 2; icon_state = "steel_decals_central4"},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
@@ -156,14 +160,16 @@
|
||||
"uF" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/stock_parts/cell/high/plus,/obj/structure/cable{icon_state = "1-2"},/obj/item/gps,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"uO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4; piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
|
||||
"uX" = (/obj/machinery/computer/security/telescreen/entertainment,/obj/structure/disposalpipe/segment,/turf/closed/wall/r_wall/syndicate,/area/ruin/space/has_grav/feedersden)
|
||||
"vf" = (/obj/machinery/button/door{desc = "A remote control-switch for secure storage."; id = "feederden_hangar"; name = "Syndicate Hangar Blast Doors"; req_access_txt = "11"; pixel_y = -24},/obj/effect/turf_decal/caution{dir = 4},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"vk" = (/obj/item/trash/candy{pixel_x = 10; pixel_y = -3},/turf/open/floor/wood,/area/ruin/space/has_grav/feedersden)
|
||||
"vp" = (/obj/effect/turf_decal/stripes{icon_state = "trim"},/turf/open/floor/plating/abductor,/area/ruin/space/has_grav/feedersden)
|
||||
"vp" = (/obj/machinery/abductor/feeder_console,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"vt" = (/obj/effect/turf_decal/loading_area{dir = 2; icon_state = "steel_decals9"},/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "steel_decals9"},/obj/effect/turf_decal/loading_area{dir = 4; icon_state = "steel_decals9"},/obj/effect/turf_decal/loading_area{dir = 8; icon_state = "steel_decals9"},/obj/effect/turf_decal{dir = 4},/obj/effect/turf_decal{dir = 8},/obj/machinery/door/airlock/hatch{name = "airlock"; req_access_txt = "150"},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"vv" = (/obj/structure/table/wood,/turf/open/floor/carpet/orange,/area/ruin/space/has_grav/feedersden)
|
||||
"vw" = (/obj/effect/turf_decal/tile/bar,/obj/effect/turf_decal/tile/bar{dir = 1},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
|
||||
"vH" = (/obj/structure/cable{icon_state = "1-2"},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"vL" = (/obj/effect/turf_decal/stripes/white/line{dir = 6; icon_state = "steel_decals1"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"vY" = (/obj/effect/turf_decal/tile/bar,/obj/effect/turf_decal/tile/bar{dir = 1},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
|
||||
"wk" = (/obj/item/stack/marker_beacon{anchored = 1; icon_state = "markerburgundy-on"; light_color = "#FA644B"; light_power = 3; light_range = 2; name = "landing marker"; picked_color = "Burgundy"},/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/mineral/plastitanium/red,/area/ruin/space/has_grav/feedersden)
|
||||
"wn" = (/obj/machinery/atmospherics/components/unary/vent_pump/on,/obj/structure/rack/shelf,/obj/item/storage/box/beakers/bluespace,/turf/open/floor/mineral/basaltstone_floor,/area/ruin/space/has_grav/feedersden)
|
||||
"ww" = (/obj/structure/flora/rock,/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav)
|
||||
"wy" = (/obj/machinery/button/door{id = "feederden_cell1"; name = "Cell 1 Control"; normaldoorcontrol = 1; specialfunctions = 4; pixel_y = 32; pixel_x = -8},/obj/machinery/button/door{id = "feederden_cell2"; name = "Cell 2 Control"; normaldoorcontrol = 1; specialfunctions = 4; pixel_y = 32; pixel_x = 8},/obj/effect/turf_decal/stripes{icon_state = "steel_decals5"},/obj/effect/turf_decal/stripes/white/line{dir = 5; icon_state = "steel_decals7"},/obj/effect/turf_decal/stripes/white/line{dir = 10; icon_state = "steel_decals7"},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
@@ -179,7 +185,7 @@
|
||||
"yb" = (/obj/structure/sign/poster/contraband/eat{pixel_y = 32},/obj/structure/chair/sofachair,/obj/machinery/light/small{dir = 1},/turf/open/floor/mineral/basaltstone_floor,/area/ruin/space/has_grav/feedersden)
|
||||
"yg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4; piping_layer = 3; pixel_x = 5; pixel_y = 5},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"yk" = (/obj/effect/turf_decal/stripes/white/line{dir = 1; icon_state = "steel_decals_central7"},/obj/effect/turf_decal/stripes/white/line{dir = 2; icon_state = "steel_decals3"},/obj/effect/turf_decal/stripes/white/line{dir = 5; icon_state = "steel_decals3"},/obj/effect/turf_decal/stripes/white/line{dir = 6; icon_state = "steel_decals3"},/obj/effect/turf_decal/stripes/white/line{dir = 4; icon_state = "steel_decals3"},/obj/machinery/light{light_color = "#cee5d2"},/obj/item/storage/bag/plants,/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"yq" = (/obj/structure/ore_box,/obj/effect/turf_decal/tile/brown,/obj/effect/turf_decal/tile/brown{dir = 8},/obj/item/stack/sheet/mineral/calorite,/obj/item/stack/sheet/mineral/calorite,/obj/item/stack/sheet/mineral/calorite,/obj/item/stack/sheet/mineral/calorite,/obj/item/stack/sheet/mineral/calorite,/obj/item/stack/sheet/mineral/calorite,/obj/item/stack/sheet/mineral/calorite,/obj/item/stack/sheet/mineral/calorite,/obj/item/stack/sheet/mineral/calorite,/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"yq" = (/obj/item/stack/marker_beacon{anchored = 1; icon_state = "markerburgundy-on"; light_color = "#FA644B"; light_power = 3; light_range = 2; name = "landing marker"; picked_color = "Burgundy"},/obj/effect/turf_decal/stripes/line{dir = 5},/turf/open/floor/mineral/plastitanium/red,/area/ruin/space/has_grav/feedersden)
|
||||
"zc" = (/obj/effect/turf_decal/loading_area{icon_state = "steel_decals6"},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"zg" = (/obj/machinery/airalarm/syndicate{pixel_y = 32},/obj/effect/turf_decal/tile/red{dir = 4},/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
|
||||
"zl" = (/obj/machinery/autolathe/hacked,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
@@ -195,6 +201,7 @@
|
||||
"zS" = (/obj/structure/chair/sofa/right{dir = 4},/turf/open/floor/carpet/orange,/area/ruin/space/has_grav/feedersden)
|
||||
"zY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/spawner/structure/window/plastitanium,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"Aa" = (/obj/structure/fans/tiny,/obj/effect/turf_decal{dir = 4},/obj/effect/turf_decal{dir = 8},/obj/machinery/door/airlock/hatch{name = "airlock"; req_access_txt = "150"},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"Ae" = (/obj/machinery/shower{dir = 4},/turf/open/pool,/area/ruin/space/has_grav/feedersden)
|
||||
"Ag" = (/obj/machinery/vending/boozeomat/all_access,/turf/open/floor/carpet/orange,/area/ruin/space/has_grav/feedersden)
|
||||
"Aj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4; piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/effect/turf_decal/stripes{icon_state = "steel_decals5"; dir = 1},/obj/effect/turf_decal/stripes/white/line{dir = 9; icon_state = "steel_decals7"},/obj/effect/turf_decal/stripes/white/line{dir = 6; icon_state = "steel_decals7"},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"AD" = (/obj/structure/table/wood,/obj/item/storage/box/drinkingglasses{pixel_y = 10; pixel_x = 4},/obj/item/reagent_containers/glass/beaker/bluespace{pixel_y = 10; pixel_x = -10},/turf/open/floor/carpet/orange,/area/ruin/space/has_grav/feedersden)
|
||||
@@ -205,26 +212,29 @@
|
||||
"Bz" = (/obj/structure/flora/rock/pile,/turf/open/floor/plating/asteroid,/area/ruin/space/has_grav/feedersden)
|
||||
"BD" = (/obj/machinery/atmospherics/pipe/manifold/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; piping_layer = 3; pixel_x = 5; pixel_y = 5},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
|
||||
"BP" = (/obj/structure/rack/shelf,/obj/item/vending_refill/kink,/obj/item/vending_refill/mealdor,/obj/item/vending_refill/mealdor,/obj/item/vending_refill/mealdor,/obj/item/vending_refill/mealdor,/obj/item/vending_refill/cola,/obj/effect/turf_decal/tile/brown{dir = 4},/obj/effect/turf_decal/tile/brown,/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"BV" = (/obj/effect/turf_decal/stripes{icon_state = "trim"},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"BV" = (/obj/effect/turf_decal/stripes{icon_state = "trim"},/turf/open/floor/mineral/plastitanium/red,/area/ruin/space/has_grav/feedersden)
|
||||
"Cc" = (/obj/structure/chair/sofa/left,/turf/open/floor/carpet/orange,/area/ruin/space/has_grav/feedersden)
|
||||
"Cd" = (/obj/structure/lattice/catwalk,/turf/open/floor/plating,/area/ruin/unpowered/no_grav)
|
||||
"Cn" = (/obj/structure/lattice,/turf/closed/wall/r_wall/syndicate/nodiagonal,/area/ruin/space/has_grav/feedersden)
|
||||
"Cu" = (/obj/machinery/door/airlock/hatch{name = "airlock"; req_access_txt = "150"},/obj/effect/turf_decal/stripes/red/line{dir = 4},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
|
||||
"CH" = (/obj/item/reagent_containers/food/snacks/pizzaslice/margherita,/turf/open/floor/mineral/basaltstone_floor,/area/ruin/space/has_grav/feedersden)
|
||||
"CT" = (/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "borderfloor"},/turf/open/floor/plasteel/yellowsiding,/area/ruin/space/has_grav/feedersden)
|
||||
"Dc" = (/turf/closed/wall/r_wall/syndicate/nodiagonal,/area/ruin/space/has_grav/feedersden)
|
||||
"Dq" = (/obj/structure/closet/crate/secure/weapon,/obj/item/clothing/glasses/hud/health/night,/obj/item/kitchen/knife/combat,/obj/effect/turf_decal/tile/brown,/obj/item/gun/energy/fatoray,/obj/item/book/granter/spell/fattening,/obj/item/gun/energy/laser/alter_ray/gainrate,/obj/item/cookiesynth,/obj/effect/turf_decal/tile/brown{dir = 4},/obj/structure/window/reinforced/tinted{dir = 4},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"Ds" = (/turf/closed/mineral/random,/area/template_noop)
|
||||
"Dx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/effect/turf_decal/tile/bar,/obj/effect/turf_decal/tile/bar{dir = 1},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
|
||||
"DB" = (/obj/structure/cable,/obj/machinery/power/smes{charge = 5e+006},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"DK" = (/obj/structure/closet/secure_closet/freezer/kitchen{req_access = null},/obj/item/reagent_containers/food/condiment/flour,/obj/item/reagent_containers/food/condiment/flour,/obj/item/reagent_containers/food/condiment/flour,/obj/item/reagent_containers/food/condiment/milk,/obj/item/reagent_containers/food/condiment/milk,/obj/item/reagent_containers/food/condiment/milk,/obj/item/reagent_containers/food/condiment/rice,/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"DM" = (/obj/machinery/power/rtg/advanced/fullupgrade,/obj/structure/cable,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"DO" = (/obj/effect/turf_decal/tile/brown{dir = 1},/obj/effect/turf_decal/tile/brown{dir = 8},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"DU" = (/obj/machinery/light/small{dir = 1},/obj/structure/cable{icon_state = "4-8"},/obj/structure/cable{icon_state = "2-8"},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"Ef" = (/obj/machinery/light{dir = 1},/obj/effect/turf_decal/stripes{icon_state = "trim"; dir = 1},/turf/open/floor/plating/abductor,/area/ruin/space/has_grav/feedersden)
|
||||
"Eh" = (/obj/structure/cable{icon_state = "1-4"},/obj/structure/cable{icon_state = "1-2"},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"Ek" = (/obj/structure/cable,/obj/machinery/power/rtg/advanced/fullupgrade,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"DM" = (/obj/machinery/power/rtg/advanced/fullupgrade,/obj/structure/cable,/turf/open/floor/mineral/plastitanium/red,/area/ruin/space/has_grav/feedersden)
|
||||
"DO" = (/obj/effect/turf_decal/tile/brown{dir = 1},/obj/effect/turf_decal/tile/brown{dir = 8},/obj/machinery/food_cart,/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"DU" = (/obj/machinery/light/small{dir = 1},/obj/structure/cable{icon_state = "4-8"},/obj/structure/cable{icon_state = "2-8"},/obj/effect/turf_decal/stripes/line,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"Eh" = (/obj/structure/cable{icon_state = "1-4"},/obj/structure/cable{icon_state = "1-2"},/obj/effect/turf_decal/stripes/line,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"Ek" = (/obj/structure/cable,/obj/machinery/power/rtg/advanced/fullupgrade,/turf/open/floor/mineral/plastitanium/red,/area/ruin/space/has_grav/feedersden)
|
||||
"En" = (/obj/item/reagent_containers/food/snacks/chocolatebar,/turf/open/floor/carpet/black,/area/ruin/space/has_grav/feedersden)
|
||||
"Eq" = (/obj/machinery/shower{dir = 8},/obj/effect/turf_decal/loading_area{dir = 4; icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel/freezer,/area/ruin/space/has_grav/feedersden)
|
||||
"Eq" = (/obj/effect/turf_decal/loading_area{dir = 2; icon_state = "steel_decals9"},/obj/effect/turf_decal/loading_area{dir = 4; icon_state = "steel_decals9"},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"Es" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4; piping_layer = 3; pixel_x = 5; pixel_y = 5},/turf/closed/wall/r_wall/syndicate,/area/ruin/space/has_grav/feedersden)
|
||||
"Ex" = (/obj/item/trash/boritos,/turf/open/floor/wood,/area/ruin/space/has_grav/feedersden)
|
||||
"EB" = (/obj/structure/pool/ladder{dir = 8},/turf/open/pool,/area/ruin/space/has_grav/feedersden)
|
||||
"EH" = (/obj/structure/reagent_dispensers/keg/milk,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"EU" = (/obj/structure/table/wood,/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 4},/obj/item/paper/fluff/ruins/feeder_den/report4,/obj/item/pen/red,/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
|
||||
"EW" = (/obj/machinery/porta_turret/fattening,/obj/item/stack/marker_beacon{anchored = 1; icon_state = "markerburgundy-on"; light_color = "#FA644B"; light_power = 3; light_range = 2; name = "landing marker"; picked_color = "Burgundy"},/obj/structure/lattice/catwalk,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
@@ -264,12 +274,11 @@
|
||||
"LN" = (/obj/structure/table,/obj/item/reagent_containers/food/condiment/enzyme{layer = 5; pixel_x = -5; pixel_y = 6},/obj/item/reagent_containers/food/condiment/enzyme{layer = 5; pixel_x = 1; pixel_y = 6},/obj/item/reagent_containers/food/condiment/peppermill{pixel_x = 3},/obj/item/reagent_containers/food/condiment/saltshaker{pixel_x = 9},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"LT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/turf_decal/stripes{icon_state = "steel_decals5"},/obj/effect/turf_decal/stripes{icon_state = "steel_grid"; dir = 5},/obj/effect/turf_decal/loading_area{dir = 8; icon_state = "steel_decals9"},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"LV" = (/obj/machinery/adipoelectric_transformer,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"Ma" = (/obj/structure/sink{dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{pixel_x = -24},/turf/open/floor/plasteel/freezer,/area/ruin/space/has_grav/feedersden)
|
||||
"Ma" = (/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "borderfloor"},/turf/open/floor/plasteel/yellowsiding/corner{dir = 8},/area/ruin/space/has_grav/feedersden)
|
||||
"Md" = (/obj/structure/table,/obj/machinery/microwave,/obj/machinery/button/door{name = "Window Shutters South"; id = "feederden_south"; pixel_y = -25},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"Mi" = (/obj/structure/disposalpipe/segment{dir = 10},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"Mq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/turf_decal/stripes{icon_state = "steel_decals5"},/obj/effect/turf_decal/stripes/white/line{dir = 5; icon_state = "steel_decals7"},/obj/effect/turf_decal/stripes/white/line{dir = 10; icon_state = "steel_decals7"},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"MV" = (/obj/item/trash/boritos,/turf/open/floor/mineral/basaltstone_floor,/area/ruin/space/has_grav/feedersden)
|
||||
"MW" = (/obj/machinery/door/poddoor/shutters/old/preopen{id = "feederden_south"},/obj/effect/spawner/structure/window/plastitanium,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"MY" = (/obj/structure/closet/secure_closet/freezer/fridge,/obj/item/reagent_containers/food/snacks/grown/corn,/obj/item/reagent_containers/food/snacks/grown/corn,/obj/item/reagent_containers/food/snacks/grown/corn,/obj/item/reagent_containers/food/snacks/grown/corn,/obj/item/reagent_containers/food/snacks/grown/corn,/obj/item/reagent_containers/food/snacks/grown/corn,/obj/item/reagent_containers/food/snacks/grown/corn,/obj/item/reagent_containers/food/snacks/grown/corn,/obj/item/reagent_containers/food/snacks/grown/corn,/obj/item/reagent_containers/food/snacks/grown/corn,/obj/item/reagent_containers/food/snacks/grown/corn,/obj/item/reagent_containers/food/snacks/grown/corn,/obj/item/reagent_containers/food/condiment/sugar,/obj/item/reagent_containers/food/condiment/sugar,/obj/item/reagent_containers/food/condiment/sugar,/obj/item/reagent_containers/food/condiment/sugar,/obj/item/reagent_containers/food/snacks/spaghetti,/obj/item/reagent_containers/food/snacks/spaghetti,/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"Ng" = (/obj/structure/closet/wardrobe/mixed,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"Nk" = (/obj/effect/turf_decal{dir = 4},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
@@ -279,14 +288,16 @@
|
||||
"Nz" = (/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 8},/obj/effect/turf_decal/loading_area{dir = 8; icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
|
||||
"NA" = (/obj/structure/sign/poster/contraband/donut_corp{pixel_x = -32},/obj/structure/scale,/turf/open/floor/mineral/basaltstone_floor,/area/ruin/space/has_grav/feedersden)
|
||||
"NB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5; piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/effect/turf_decal/stripes{icon_state = "steel_decals5"; dir = 1},/obj/effect/turf_decal/stripes{icon_state = "steel_grid"; dir = 10},/obj/effect/turf_decal/loading_area{dir = 4; icon_state = "steel_decals9"},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"NJ" = (/obj/structure/curtain,/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "borderfloor"},/turf/open/floor/plasteel/freezer,/area/ruin/space/has_grav/feedersden)
|
||||
"NJ" = (/obj/structure/curtain,/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
|
||||
"NR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4; piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/effect/turf_decal/stripes{icon_state = "steel_decals5"; dir = 1},/obj/effect/turf_decal/loading_area{dir = 4; icon_state = "steel_decals9"},/obj/effect/turf_decal/stripes/white/line{dir = 9; icon_state = "steel_decals7"},/obj/effect/turf_decal/stripes/white/line{dir = 6; icon_state = "steel_decals7"},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"NU" = (/obj/machinery/abductor/pad/feeder,/obj/effect/turf_decal/stripes{icon_state = "trim"; dir = 8},/turf/open/floor/plating/abductor,/area/ruin/space/has_grav/feedersden)
|
||||
"NX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4; piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/structure/railing,/turf/open/floor/plasteel/stairs/left{dir = 4},/area/ruin/space/has_grav/feedersden)
|
||||
"Oc" = (/turf/open/floor/wood{icon_state = "wood-broken"},/area/ruin/space/has_grav/feedersden)
|
||||
"Ow" = (/obj/effect/turf_decal/sand/plating,/turf/open/floor/plating/asteroid,/area/ruin/space/has_grav/feedersden)
|
||||
"OE" = (/obj/item/trash/can,/obj/effect/mob_spawn/human/feeders_den/victim{dir = 8},/turf/open/floor/carpet/black,/area/ruin/space/has_grav/feedersden)
|
||||
"OH" = (/obj/item/stack/marker_beacon{anchored = 1; icon_state = "markerburgundy-on"; light_color = "#FA644B"; light_power = 3; light_range = 2; name = "landing marker"; picked_color = "Burgundy"},/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/floor/mineral/plastitanium/red,/area/ruin/space/has_grav/feedersden)
|
||||
"Pg" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/medkit_cabinet{pixel_y = 27},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"Pk" = (/obj/effect/turf_decal{dir = 1},/turf/open/floor/mineral/plastitanium/red,/area/ruin/space/has_grav/feedersden)
|
||||
"Pv" = (/obj/effect/turf_decal/tile/brown{dir = 8},/obj/effect/turf_decal/tile/brown,/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"PI" = (/obj/structure/closet/secure_closet/freezer/meat,/obj/item/reagent_containers/food/snacks/meat/slab/monkey,/obj/item/reagent_containers/food/snacks/meat/slab/monkey,/obj/item/reagent_containers/food/snacks/meat/slab/monkey,/obj/item/reagent_containers/food/snacks/meat/slab/monkey,/obj/item/reagent_containers/food/snacks/meat/slab/spider,/obj/item/reagent_containers/food/snacks/meat/slab/spider,/obj/structure/window/reinforced/tinted{dir = 8},/turf/open/floor/plasteel/freezer,/area/ruin/space/has_grav/feedersden)
|
||||
"PL" = (/obj/structure/sign/poster/contraband/eat{pixel_y = 32},/obj/machinery/light/small{dir = 1},/obj/structure/scale,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"PV" = (/obj/item/paper/fluff/ruins/feeder_den/hidden,/turf/open/floor/plating{icon_state = "panelscorched"},/area/ruin/space/has_grav/feedersden)
|
||||
@@ -294,17 +305,17 @@
|
||||
"QK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/turf_decal/stripes{icon_state = "steel_decals5"},/obj/effect/turf_decal/loading_area{dir = 8; icon_state = "steel_decals9"},/obj/effect/turf_decal/stripes/white/line{dir = 5; icon_state = "steel_decals7"},/obj/effect/turf_decal/stripes/white/line{dir = 10; icon_state = "steel_decals7"},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"QW" = (/obj/structure/table/wood,/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 8},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
|
||||
"Ra" = (/obj/machinery/door/airlock/hatch{name = "airlock"; req_access_txt = "150"},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"Rc" = (/obj/machinery/computer/camera_advanced/abductor/feeder,/obj/effect/turf_decal/stripes{icon_state = "trim"; dir = 10},/obj/item/paper/fluff/ruins/feeder_den/tool_warning,/turf/open/floor/plating/abductor,/area/ruin/space/has_grav/feedersden)
|
||||
"Rc" = (/obj/docking_port/stationary{dir = 8; height = 7; name = "Outpost"; width = 7; roundstart_template = /datum/map_template/shuttle/feeder; shuttle_id = "feeder_home"; area_type = /area/ruin/space/has_grav/feedersden; dwidth = 3},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"Rh" = (/obj/structure/table,/obj/machinery/microwave,/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"Rp" = (/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 4},/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
|
||||
"Rr" = (/obj/structure/table/abductor,/obj/item/abductor/gizmo/feeder,/obj/item/abductor/gizmo/feeder,/obj/effect/turf_decal/stripes{icon_state = "trim"; dir = 6},/turf/open/floor/plating/abductor,/area/ruin/space/has_grav/feedersden)
|
||||
"Ru" = (/obj/machinery/door/poddoor/shutters/old/preopen{id = "feederden_north"},/obj/effect/spawner/structure/window/plastitanium,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"Rp" = (/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 4},/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
|
||||
"Ru" = (/obj/effect/spawner/structure/window/reinforced,/obj/machinery/door/poddoor/shutters/old/preopen{id = "feederden_north"},/obj/effect/turf_decal/tile/red,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"Rw" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 8; piping_layer = 3; pixel_x = 5; pixel_y = 5},/turf/open/floor/plating/airless,/area/ruin/space/has_grav/feedersden)
|
||||
"Rz" = (/obj/structure/railing{dir = 1},/turf/open/floor/plasteel/stairs/left{dir = 8},/area/ruin/space/has_grav/feedersden)
|
||||
"RC" = (/obj/machinery/atmospherics/components/unary/vent_scrubber/on{dir = 8; piping_layer = 3; pixel_x = 5; pixel_y = 5},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"RV" = (/obj/structure/toilet{dir = 8},/obj/effect/turf_decal/loading_area{dir = 2; icon_state = "steel_decals9"},/obj/effect/turf_decal/loading_area{dir = 4; icon_state = "steel_decals9"},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"Sh" = (/obj/machinery/telecomms/relay/preset/ruskie{use_power = 0},/obj/item/multitool{pixel_x = 8},/turf/open/floor/circuit/red,/area/ruin/space/has_grav/feedersden)
|
||||
"Sm" = (/obj/structure/cable{icon_state = "1-8"},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"Sp" = (/obj/structure/sign/warning/radiation{pixel_y = -31},/obj/structure/cable,/obj/machinery/power/rtg/advanced/fullupgrade,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"Sp" = (/obj/structure/sign/warning/radiation{pixel_y = -31},/obj/structure/cable,/obj/machinery/power/rtg/advanced/fullupgrade,/turf/open/floor/mineral/plastitanium/red,/area/ruin/space/has_grav/feedersden)
|
||||
"Ss" = (/obj/effect/turf_decal/tile/bar,/obj/effect/turf_decal/tile/bar{dir = 1},/obj/machinery/chem_master/condimaster{name = "CondiMaster Neo"},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
|
||||
"Sy" = (/obj/structure/table,/obj/item/reagent_containers/food/condiment/sugar{pixel_x = -7},/obj/item/reagent_containers/glass/beaker{pixel_x = 9},/obj/item/reagent_containers/glass/beaker/bluespace{pixel_y = 3},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"SX" = (/obj/structure/filingcabinet,/obj/item/paper/fluff/ruins/feeder_den/report1,/obj/item/paper/fluff/ruins/feeder_den/report2,/obj/item/paper/fluff/ruins/feeder_den/report3,/obj/structure/fluff/paper,/obj/item/paper,/obj/item/paper,/obj/item/paper,/obj/item/paper,/obj/item/paper,/obj/item/paper,/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 8},/obj/effect/turf_decal/tile/red,/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
|
||||
@@ -321,10 +332,11 @@
|
||||
"Ue" = (/obj/machinery/atmospherics/pipe/manifold/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/structure/cable{icon_state = "4-8"},/obj/structure/disposalpipe/segment,/obj/structure/cable{icon_state = "1-4"},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"UB" = (/obj/effect/turf_decal/tile/bar,/obj/effect/turf_decal/tile/bar{dir = 1},/obj/structure/disposalpipe/segment,/obj/effect/turf_decal/stripes{icon_state = "steel_grid"; dir = 5},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
|
||||
"UE" = (/turf/open/floor/carpet/black,/area/ruin/space/has_grav/feedersden)
|
||||
"UJ" = (/obj/structure/cable{icon_state = "2-8"},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"UJ" = (/obj/structure/cable{icon_state = "2-8"},/obj/effect/turf_decal/stripes/line,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"UZ" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plating/airless,/area/ruin/space/has_grav/feedersden)
|
||||
"Ve" = (/obj/structure/flora/junglebush,/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav)
|
||||
"Vx" = (/obj/effect/turf_decal/stripes{icon_state = "trim"; dir = 1},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"Vv" = (/obj/item/stack/marker_beacon{anchored = 1; icon_state = "markerburgundy-on"; light_color = "#FA644B"; light_power = 3; light_range = 2; name = "landing marker"; picked_color = "Burgundy"},/obj/effect/turf_decal/stripes/box,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"Vx" = (/obj/effect/turf_decal/stripes{icon_state = "trim"; dir = 1},/turf/open/floor/mineral/plastitanium/red,/area/ruin/space/has_grav/feedersden)
|
||||
"VF" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/bedsheet,/obj/effect/spawner/lootdrop/bedsheet,/obj/effect/spawner/lootdrop/bedsheet,/obj/effect/spawner/lootdrop/bedsheet,/obj/item/toy/plush/random,/obj/item/toy/plush/random,/obj/item/toy/plush/random,/obj/machinery/light{dir = 4},/obj/effect/turf_decal/tile/brown{dir = 4},/obj/effect/turf_decal/tile/brown,/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"VW" = (/obj/effect/turf_decal/stripes/white/line{dir = 1; icon_state = "steel_decals_central4"},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"Wr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4; piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/effect/turf_decal/stripes{icon_state = "steel_decals5"; dir = 1},/obj/effect/turf_decal/stripes/white/line{dir = 6; icon_state = "steel_decals7"},/obj/effect/turf_decal/stripes/white/line{dir = 9; icon_state = "steel_decals7"},/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
@@ -332,7 +344,6 @@
|
||||
"Wt" = (/obj/structure/lattice/catwalk,/obj/item/stack/marker_beacon{anchored = 1; icon_state = "markerburgundy-on"; light_color = "#FA644B"; light_power = 3; light_range = 2; name = "landing marker"; picked_color = "Burgundy"; pixel_x = 12; pixel_y = -10},/turf/template_noop,/area/ruin/space/has_grav/feedersden)
|
||||
"WH" = (/obj/item/trash/plate{pixel_x = -4; pixel_y = 10},/obj/item/trash/plate{pixel_x = -5; pixel_y = -1},/obj/item/trash/plate{pixel_y = 4},/turf/open/floor/carpet/orange,/area/ruin/space/has_grav/feedersden)
|
||||
"WJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/effect/turf_decal/tile/bar,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 1},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
|
||||
"WK" = (/obj/structure/table/abductor,/obj/item/paper/fluff/ruins/feeder_den/tool_warning,/obj/effect/turf_decal/stripes{icon_state = "trim"; dir = 5},/turf/open/floor/plating/abductor,/area/ruin/space/has_grav/feedersden)
|
||||
"WN" = (/obj/structure/rack/shelf,/obj/item/reagent_containers/food/snacks/syndicake,/obj/item/reagent_containers/food/snacks/syndicake,/obj/item/reagent_containers/food/snacks/chips,/obj/item/reagent_containers/food/snacks/chips,/obj/item/reagent_containers/food/snacks/cornchips,/obj/item/reagent_containers/food/snacks/cornchips,/obj/item/reagent_containers/food/snacks/candy,/obj/item/reagent_containers/food/snacks/candy,/obj/effect/turf_decal/tile/brown{dir = 4},/obj/effect/turf_decal/tile/brown{dir = 1},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"WZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5; piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/structure/cable{icon_state = "1-2"},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"Xa" = (/obj/structure/table/wood,/obj/item/card/id/syndicate{pixel_y = 14},/obj/item/storage/fancy/cigarettes/cigpack_syndicate{pixel_x = -3},/obj/item/lighter{pixel_x = 4},/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 8},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
|
||||
@@ -347,7 +358,9 @@
|
||||
"Yk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/machinery/door/airlock/public/glass{name = "Cell 3"; id_tag = "feederden_cell3"},/obj/structure/cable{icon_state = "1-2"},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"Yp" = (/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 8},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"YA" = (/obj/effect/turf_decal/loading_area{dir = 8; icon_state = "steel_decals9"},/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "steel_decals9"},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"YB" = (/obj/structure/fans/tiny,/obj/machinery/door/poddoor{id = "feederden_hangar"; name = "den hangar door"; dir = 4},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
|
||||
"YE" = (/obj/structure/rack,/obj/item/storage/toolbox/syndicate,/obj/item/multitool,/obj/item/clothing/head/welding,/obj/effect/turf_decal/tile/brown{dir = 4},/obj/effect/turf_decal/tile/brown{dir = 1},/obj/structure/sign/poster/contraband/syndicate_pistol{pixel_y = 32},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"YI" = (/obj/effect/turf_decal,/obj/item/stack/marker_beacon{anchored = 1; icon_state = "markerburgundy-on"; light_color = "#FA644B"; light_power = 3; light_range = 2; name = "landing marker"; picked_color = "Burgundy"},/turf/open/floor/mineral/plastitanium/red,/area/ruin/space/has_grav/feedersden)
|
||||
"YN" = (/obj/item/trash/fatoray_scrap1,/obj/structure/sign/warning/securearea{pixel_y = 32},/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav)
|
||||
"YU" = (/obj/structure/table,/obj/item/reagent_containers/food/snacks/burger/cheese,/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
|
||||
"YX" = (/turf/open/floor/circuit/red,/area/ruin/space/has_grav/feedersden)
|
||||
@@ -380,21 +393,21 @@ FEebebebqFBrBrnrfMsqelzCnrLMelwnnrSXXFXFwODcwYrWOclQeSiXGFCcoKoKoKNzItgUeZICnrhl
|
||||
FEFEFEFEFEBrBrDcnrnrnurkDcgUKHzYDcDcgUdHDcDccwoKoKOcoKoKoKvkrWoKoKNzItDcDcDcDcgUYkzYDcftbxnrnrDcBrBrFEFEFEFEFE
|
||||
FEFEFEFEFEBrBrBrnrtZlltPwyLoJWMqLoKofbcdcdzgcdRpRpqiRpRpRpXhRpRpRpjOkKkKRzKoLusabcQKzwgnLTmmnrBrBrFEFEFEFEFEFE
|
||||
FEFEFEFEfmBrBrBrnrZnNBLvAjNRgZKWNRAjNXTGTGTGTGBDTGXWZhZhZhqquOuOuOuOuOrJZOWrndWrsNnArBxJLfZnnrqFebebebFEFEFEFE
|
||||
FEFEFEfmfmBrBrBrDcDcNJNJDcnrnrnrnrnrnrnrnrnrDcWJiONxgUgUgUuXZpTKDcnrnrQFnrnrnrnrnrnrDcNJNJDcDcBrFEFEFEFEFEFEFE
|
||||
FEFEBrZCfmISBrBrBrnrMaEqnrikNggqnrWNYEfncnbanrDxvYFDLNdCsRiNvYSsnrZeIoxCkoPgnrridlkCnrfNginrBrBrBrFEFEFEFEFEFE
|
||||
FEFEBrBrfmfmBrBrBrnrtyEqnrIGJhJhWsDOlsuklslsvtDxvYSyBeaaaaUBvYmUnrcWmaUerscxtVbXJhkMnrfNdAnrBrBrBrFEFEFEFEFEFE
|
||||
FEFEFEBrwwfmeEBrBrDcnrnrDcxGHpEHNkDOtHguboygaQoYvYvYvYvYvYvwvYkdnrgFXsFHYpDBnrzlJhXPDcnrnrDcBrBrBrFEFEFEFEFEFE
|
||||
FEFEFEBrxZfmfmBrBrBrBrBrDcDcnrnrDcmflsucaEBPnrvYaDMYMdRhDKjhANYUnrnrnrTPJhfKDcnrRanrDcBrEWYNxZBrBrBrFEFEFEFEFE
|
||||
FEFEFEFEfmfmBrBrBrBrBrBrnrnKEfWKnrqhlslszcVFDczAnrnrnrMWnrnrnrnrDcmDnQddRCuFnrNtVWdvnrISVefmfmfxBrBrFEFEFEFEFE
|
||||
FEFEFEFEFEfmBrBrBrBrBrBrnrNUcVgkcRDOrfrfYhdzPItjfhnroHoHoHdrVxnwAaYAtBTYzGzEHivLMisCkgeEfmFEFEebFEFEFEFEFEFEFE
|
||||
FEFEFEFEFEFEBrBrBrBrBrBrnrRcvpRrnrqMyqzJjSTUbWTxsunroHoHoHdrBVBVAaYApeWZlhFmEsieuqrEuyRwfmFEFEebFEFEFEFEFEFEFE
|
||||
FEFEFEFEFEFEFEBrBrBrBrBrDcnrnrnrDcnrnrnrnrnrnrnrnrpfgDoHWtpfnrnrnrnrnrnWnrnrDcaMsIaMtIUZFEFEFEebFEFEFEFEFEFEFE
|
||||
FEFEFEFEFEFEFEFEBrBrBrBrBrBrBrBrBrBrBrBrBrBrXLBrqFebebebebebqFXLBrBrDcEhDUUJDcaMsIaMDcqFebebqFqFFEFEFEFEFEFEFE
|
||||
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBrBrBrBrBrplVeFEFEFEFEFEFEVeEWVefmDcEkSpDMDcaMykaMDcDsFEFEBrBrFEFEFEFEFEFEFE
|
||||
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBrBrISfmFEFEFEFEFEFEfmISZCISDcDcDcDcDcDcDcDcDcDsFEFEFEFEFEFEFEFEFEFEFE
|
||||
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBrBrFEFEFEFEFEFEFEBrfmfmwwxZfmfmfmBrBrqFqFDsDsFEFEFEFEFEFEFEFEFEFEFE
|
||||
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBrBrVefmfmfmfmeEfmKuqFqFKuFEFEFEFEFEFEFEFEFEFEFEFE
|
||||
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBrBrBrBrZCZCfmFEFEFEebebFEFEFEFEFEFEFEFEFEFEFEFEFE
|
||||
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBrBrBrBrBrFEFEFEFEFEebFEFEFEFEFEFEFEFEFEFEFEFEFE
|
||||
FEFEFEfmfmBrBrDcDcDcNJNJDcnrnrnrnrnrnrnrnrnrDcWJiONxgUgUgUuXZpTKDcnrnrQFnrnrnrnrnrnrDciuiuDcDcBrFEFEFEFEFEFEFE
|
||||
FEFEBrZCfmISBrDcrOCTMadjnrNggqvpnrWNYEfncnbanrDxvYFDLNdCsRiNvYSsnrZeIoxCkoPgnrridlkCnrfNginrBrBrBrFEFEFEFEFEFE
|
||||
FEFEBrBrfmfmBrDcAeEBtyEqnrIGJhJhWslslsuklslsvtDxvYSyBeaaaaUBvYmUnrcWmaUerscxtVbXJhkMnrfNdAnrBrBrBrFEFEFEFEFEFE
|
||||
FEFEFEBrfmfmeEDcAeEBtyRVDcxGHpEHNklstHguboygaQoYvYvYvYvYvYvwvYkdnrgFXsFHYpDBnrzlJhXPDcnrnrDcBrBrBrFEFEFEFEFEFE
|
||||
FEFEFEBrfmsnVvpfDcDcDcDcDcDcnrnrDcDOlsucaEBPnrvYaDMYMdRhDKjhANYUnrnrnrTPJhfKDcnrRanrDcBrEWYNxZBrBrBrFEFEFEFEFE
|
||||
FEFEFEFEfmfmCdYBYIgkgkqMJhJhJhwknrqhlslszcVFDczAnrnrnrkgnrnrnrnrDcmDnQddRCuFnrNtVWdvnrISVefmfmfxBrBrFEFEFEFEFE
|
||||
FEFEFEFEFEfmCdYBJhJhJhJhJhJhJhJhnrmfrflsYhdzPItjfhnroHoHoHdrVxnwAaYAtBTYzGzEHivLMisCkgeEfmFEFEebFEFEFEFEFEFEFE
|
||||
FEFEFEFEFEFECdYBJhJhJhJhJhJhJhJhnrikrflsYhDqbWTxsunroHoHoHdrBVBVAaYApeWZlhFmEsieuqrEuyRwfmFEFEebFEFEFEFEFEFEFE
|
||||
FEFEFEFEFEFECdYBJhJhJhJhJhJhJhRccRvfPvzJjSTUnrnrnrpfgDoHWtpfnrnrnrnrnrnWnrnrDcaMsIaMtIUZFEFEFEebFEFEFEFEFEFEFE
|
||||
FEFEFEFEFEFECdYBJhJhJhJhJhJhJhJhDcnrnrnrnrnrnrXLdLebebebebebqFXLBrBrDcEhDUUJDcaMsIaMDcqFebebqFqFFEFEFEFEFEFEFE
|
||||
FEFEFEFEFEFECdYBJhJhJhJhJhJhJhJhDcBrBrBrBrBrBrBrplVeFEFEFEFEVeEWVefmDcEkSpDMDcaMykaMDcDsFEFEBrBrFEFEFEFEFEFEFE
|
||||
FEFEFEFEFEFECdYBrHPkPkyqJhJhJhOHDcBrBrBrBrBrBrBrISfmFEFEFEFEfmISZCISDcDcDcDcDcDcDcDcDcDsFEFEFEFEFEFEFEFEFEFEFE
|
||||
FEFEFEFEFEsnVvpfDcDcDcDcDcDcDcDcDcBrBrBrFEBrBrFEFEFEFEFEFEFEBrfmfmwwxZfmfmfmBrBrqFqFDsDsFEFEFEFEFEFEFEFEFEFEFE
|
||||
FEFEFEFEFEBrBrBrBrBrBrBrBrBrBrBrBrBrBrFEFEFEFEFEFEFEFEFEFEFEBrBrVefmfmfmfmeEfmKuqFqFKuFEFEFEFEFEFEFEFEFEFEFEFE
|
||||
FEFEFEFEFEFEBrBrBrBrBrBrBrBrBrBrBrBrFEFEFEFEFEFEFEFEFEFEFEFEBrBrBrBrZCZCfmFEFEFEebebFEFEFEFEFEFEFEFEFEFEFEFEFE
|
||||
FEFEFEFEFEFEFEFEBrBrBrBrBrFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBrBrBrBrBrFEFEFEFEFEebFEFEFEFEFEFEFEFEFEFEFEFEFE
|
||||
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBrBrBrBrFEFEFEFEFEebFEFEFEFEFEFEFEFEFEFEFEFEFE
|
||||
"}
|
||||
|
||||
@@ -0,0 +1,236 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"a" = (
|
||||
/turf/closed/wall/mineral/plastitanium,
|
||||
/area/space)
|
||||
"c" = (
|
||||
/obj/structure/chair/office/dark{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/space)
|
||||
"g" = (
|
||||
/turf/open/floor/wood,
|
||||
/area/space)
|
||||
"h" = (
|
||||
/obj/machinery/light{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/wood,
|
||||
/area/space)
|
||||
"j" = (
|
||||
/turf/open/floor/mineral/basaltstone_floor,
|
||||
/area/space)
|
||||
"l" = (
|
||||
/obj/machinery/light/small{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/chair/sofachair{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/mineral/basaltstone_floor,
|
||||
/area/space)
|
||||
"n" = (
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 8;
|
||||
icon_state = "drain";
|
||||
name = "drain"
|
||||
},
|
||||
/obj/machinery/door/window/brigdoor/westleft,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/space)
|
||||
"o" = (
|
||||
/obj/structure/chair/sofachair{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/mineral/basaltstone_floor,
|
||||
/area/space)
|
||||
"p" = (
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 8;
|
||||
icon_state = "drain";
|
||||
name = "drain"
|
||||
},
|
||||
/obj/structure/window/reinforced/spawner/west,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/space)
|
||||
"u" = (
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
dir = 8;
|
||||
icon_state = "drain";
|
||||
name = "drain"
|
||||
},
|
||||
/obj/structure/window/reinforced/spawner/west,
|
||||
/obj/structure/closet/secure_closet{
|
||||
req_one_access_txt = "150"
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/space)
|
||||
"y" = (
|
||||
/obj/structure/chair/sofa/left{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/wood,
|
||||
/area/space)
|
||||
"z" = (
|
||||
/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate{
|
||||
name = "shuttle navigation computer";
|
||||
desc = "Used to designate a precise transit location for the shuttle."
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/space)
|
||||
"G" = (
|
||||
/obj/structure/chair/sofa/right{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/wood,
|
||||
/area/space)
|
||||
"H" = (
|
||||
/obj/machinery/light,
|
||||
/obj/structure/chair/sofa{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/wood,
|
||||
/area/space)
|
||||
"J" = (
|
||||
/obj/machinery/computer/shuttle/syndicate{
|
||||
name = "shuttle terminal"
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/space)
|
||||
"K" = (
|
||||
/obj/machinery/door/airlock/abductor,
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/space)
|
||||
"M" = (
|
||||
/obj/structure/shuttle/engine/propulsion{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/space)
|
||||
"P" = (
|
||||
/obj/item/kirbyplants/photosynthetic,
|
||||
/turf/open/floor/wood,
|
||||
/area/space)
|
||||
"Q" = (
|
||||
/turf/open/space/basic,
|
||||
/area/space)
|
||||
"S" = (
|
||||
/obj/structure/falsewall/plastitanium,
|
||||
/obj/machinery/door/window/brigdoor/northright{
|
||||
layer = 1
|
||||
},
|
||||
/turf/open/floor/mineral/basaltstone_floor,
|
||||
/area/space)
|
||||
"Y" = (
|
||||
/obj/structure/shuttle/engine/heater{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/space)
|
||||
"Z" = (
|
||||
/obj/effect/spawner/structure/window/plastitanium,
|
||||
/turf/open/floor/plating,
|
||||
/area/space)
|
||||
|
||||
(1,1,1) = {"
|
||||
Q
|
||||
M
|
||||
M
|
||||
M
|
||||
Q
|
||||
Q
|
||||
Q
|
||||
Q
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
a
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
K
|
||||
g
|
||||
g
|
||||
G
|
||||
S
|
||||
j
|
||||
j
|
||||
a
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
a
|
||||
h
|
||||
g
|
||||
H
|
||||
a
|
||||
l
|
||||
o
|
||||
a
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
Z
|
||||
P
|
||||
g
|
||||
y
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
Z
|
||||
u
|
||||
n
|
||||
p
|
||||
a
|
||||
Q
|
||||
Q
|
||||
Q
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
a
|
||||
J
|
||||
c
|
||||
z
|
||||
a
|
||||
Q
|
||||
Q
|
||||
Q
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Q
|
||||
Q
|
||||
Q
|
||||
"}
|
||||
@@ -0,0 +1,241 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"a" = (
|
||||
/obj/structure/window/reinforced/survival_pod{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/closet/emcloset/anchored,
|
||||
/obj/item/clothing/mask/breath,
|
||||
/obj/item/clothing/mask/breath,
|
||||
/obj/item/tank/internals/emergency_oxygen/double,
|
||||
/obj/item/tank/internals/emergency_oxygen/double,
|
||||
/turf/open/floor/mineral/plastitanium/red,
|
||||
/area/shuttle/feeder_shuttle)
|
||||
"g" = (
|
||||
/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate{
|
||||
name = "shuttle navigation computer";
|
||||
desc = "Used to designate a precise transit location for the shuttle.";
|
||||
dir = 4;
|
||||
shuttleId = "feeder_ship";
|
||||
shuttlePortId = "feeder_custom";
|
||||
jump_to_ports = list("whiteship_home" = 1, "feeder_home" = 1)
|
||||
},
|
||||
/turf/open/floor/mineral/plastitanium/red,
|
||||
/area/shuttle/feeder_shuttle)
|
||||
"j" = (
|
||||
/turf/closed/wall/r_wall/syndicate,
|
||||
/area/shuttle/feeder_shuttle)
|
||||
"k" = (
|
||||
/obj/structure/shuttle/engine/heater{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/window/reinforced/survival_pod{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/window/reinforced/survival_pod{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/feeder_shuttle)
|
||||
"l" = (
|
||||
/turf/open/floor/mineral/plastitanium,
|
||||
/area/shuttle/feeder_shuttle)
|
||||
"o" = (
|
||||
/obj/machinery/computer{
|
||||
dir = 4;
|
||||
name = "Shuttle computer"
|
||||
},
|
||||
/turf/open/floor/mineral/plastitanium/red,
|
||||
/area/shuttle/feeder_shuttle)
|
||||
"p" = (
|
||||
/obj/structure/chair/comfy/shuttle,
|
||||
/obj/machinery/door/window/survival_pod,
|
||||
/turf/open/floor/mineral/plastitanium/red,
|
||||
/area/shuttle/feeder_shuttle)
|
||||
"r" = (
|
||||
/obj/machinery/light{
|
||||
dir = 4;
|
||||
light_color = "#c1caff"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/red/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/medkit_cabinet{
|
||||
pixel_x = 24
|
||||
},
|
||||
/turf/open/floor/mineral/plastitanium,
|
||||
/area/shuttle/feeder_shuttle)
|
||||
"y" = (
|
||||
/obj/structure/chair/comfy/shuttle{
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/door/window/survival_pod{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/mineral/plastitanium/red,
|
||||
/area/shuttle/feeder_shuttle)
|
||||
"z" = (
|
||||
/obj/structure/shuttle/engine/propulsion/left{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/space/basic,
|
||||
/area/shuttle/feeder_shuttle)
|
||||
"C" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/machinery/cell_charger,
|
||||
/turf/open/floor/mineral/plastitanium/red,
|
||||
/area/shuttle/feeder_shuttle)
|
||||
"D" = (
|
||||
/obj/structure/shuttle/engine/heater{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/window/reinforced/survival_pod{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/window/reinforced/survival_pod,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/feeder_shuttle)
|
||||
"F" = (
|
||||
/obj/machinery/light{
|
||||
dir = 4;
|
||||
light_color = "#c1caff"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/red/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/extinguisher_cabinet{
|
||||
pixel_x = 24
|
||||
},
|
||||
/turf/open/floor/mineral/plastitanium,
|
||||
/area/shuttle/feeder_shuttle)
|
||||
"G" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/machinery/recharger,
|
||||
/turf/open/floor/mineral/plastitanium/red,
|
||||
/area/shuttle/feeder_shuttle)
|
||||
"I" = (
|
||||
/turf/closed/wall/r_wall/syndicate/nodiagonal,
|
||||
/area/shuttle/feeder_shuttle)
|
||||
"J" = (
|
||||
/obj/machinery/door/airlock/hatch{
|
||||
name = "airlock";
|
||||
req_access_txt = "150"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/obj/docking_port/mobile{
|
||||
dir = 8;
|
||||
shuttle_id = "feeder_ship";
|
||||
port_direction = 4;
|
||||
shuttle_areas = /area/shuttle/feeder_shuttle;
|
||||
dwidth = 3;
|
||||
height = 7;
|
||||
width = 7
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/feeder_shuttle)
|
||||
"M" = (
|
||||
/obj/machinery/porta_turret/fattening,
|
||||
/turf/closed/wall/r_wall/syndicate,
|
||||
/area/shuttle/feeder_shuttle)
|
||||
"P" = (
|
||||
/obj/structure/chair/comfy/shuttle{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/mineral/plastitanium,
|
||||
/area/shuttle/feeder_shuttle)
|
||||
"Q" = (
|
||||
/turf/template_noop,
|
||||
/area/template_noop)
|
||||
"S" = (
|
||||
/obj/structure/window/reinforced/survival_pod{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/suit_storage_unit/syndicatemod,
|
||||
/turf/open/floor/mineral/plastitanium/red,
|
||||
/area/shuttle/feeder_shuttle)
|
||||
"X" = (
|
||||
/obj/machinery/computer/shuttle/syndicate{
|
||||
name = "shuttle terminal";
|
||||
dir = 4;
|
||||
shuttleId = "feeder_ship";
|
||||
possible_destinations = "feeder_home;whiteship_home;feeder_custom"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/red/line{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/mineral/plastitanium,
|
||||
/area/shuttle/feeder_shuttle)
|
||||
"Y" = (
|
||||
/obj/effect/spawner/structure/window/plastitanium,
|
||||
/obj/structure/grille,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/feeder_shuttle)
|
||||
"Z" = (
|
||||
/obj/effect/turf_decal/stripes/red/line{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/mineral/plastitanium,
|
||||
/area/shuttle/feeder_shuttle)
|
||||
|
||||
(1,1,1) = {"
|
||||
Q
|
||||
M
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
M
|
||||
Q
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
Q
|
||||
Y
|
||||
o
|
||||
X
|
||||
g
|
||||
Y
|
||||
Q
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
Q
|
||||
j
|
||||
G
|
||||
P
|
||||
C
|
||||
j
|
||||
Q
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
j
|
||||
I
|
||||
a
|
||||
l
|
||||
S
|
||||
I
|
||||
j
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
j
|
||||
p
|
||||
l
|
||||
l
|
||||
l
|
||||
y
|
||||
j
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
j
|
||||
D
|
||||
F
|
||||
Z
|
||||
r
|
||||
k
|
||||
j
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
Q
|
||||
z
|
||||
I
|
||||
J
|
||||
I
|
||||
z
|
||||
Q
|
||||
"}
|
||||
@@ -30,6 +30,7 @@
|
||||
#define COLOR_YELLOW "#FFFF00"
|
||||
#define COLOR_VIVID_YELLOW "#FBFF23"
|
||||
#define COLOR_VERY_SOFT_YELLOW "#FAE48E"
|
||||
#define COLOR_GOLD "#FFD700"
|
||||
|
||||
#define COLOR_OLIVE "#808000"
|
||||
#define COLOR_VIBRANT_LIME "#00FF00"
|
||||
|
||||
@@ -279,5 +279,5 @@
|
||||
#define FAT "fat"
|
||||
#define PERMA_FAT "perma_fat"
|
||||
/// What is the rate that one damage is converted to fatness?
|
||||
#define FAT_DAMAGE_TO_FATNESS 4
|
||||
#define PERMA_FAT_DAMAGE_TO_FATNESS 4
|
||||
#define FAT_DAMAGE_TO_FATNESS 8
|
||||
#define PERMA_FAT_DAMAGE_TO_FATNESS 8
|
||||
|
||||
@@ -214,6 +214,8 @@
|
||||
#define COMSIG_TURF_MULTIZ_DEL "turf_multiz_del"
|
||||
///from base of turf/multiz_turf_new: (turf/source, direction)
|
||||
#define COMSIG_TURF_MULTIZ_NEW "turf_multiz_new"
|
||||
/// from base of turf/proc/afterShuttleMove: (turf/new_turf)
|
||||
#define COMSIG_TURF_AFTER_SHUTTLE_MOVE "turf_after_shuttle_move"
|
||||
|
||||
// /atom/movable signals
|
||||
#define COMSIG_MOVABLE_PRE_MOVE "movable_pre_move" ///from base of atom/movable/Moved(): (/atom)
|
||||
|
||||
@@ -23,3 +23,5 @@
|
||||
#define COMPONENT_NO_MOUSEDROP (1<<0)
|
||||
///from base of atom/MouseDrop_T: (/atom/from, /mob/user)
|
||||
#define COMSIG_MOUSEDROPPED_ONTO "mousedropped_onto" //from base of atom/MouseDrop_T: (/atom/from, /mob/user)
|
||||
/// From /atom/movable/screen/click(): (atom/target, atom/location, control, params, mob/user)
|
||||
#define COMSIG_SCREEN_ELEMENT_CLICK "screen_element_click"
|
||||
|
||||
@@ -1,2 +1,5 @@
|
||||
/// a person somewhere has thrown something : (mob/living/carbon/carbon_thrower, target)
|
||||
#define COMSIG_GLOB_CARBON_THROW_THING "!throw_thing"
|
||||
|
||||
/// Global signal sent before we decide what job everyone has
|
||||
#define COMSIG_GLOB_PRE_JOBS_ASSIGNED "!pre_roles_assigned"
|
||||
|
||||
@@ -2,3 +2,5 @@
|
||||
#define COMSIG_HUD_LOBBY_COLLAPSED "hud_lobby_collapsed"
|
||||
/// Sent from /atom/movable/screen/lobby/button/collapse/proc/expand_buttons() : ()
|
||||
#define COMSIG_HUD_LOBBY_EXPANDED "hud_lobby_expanded"
|
||||
/// Sent from /atom/movable/screen/lobby/button/ready/Click() : ()
|
||||
#define COMSIG_HUD_PLAYER_READY_TOGGLE "hud_player_ready_toggle"
|
||||
|
||||
@@ -99,6 +99,7 @@
|
||||
#define ui_internal "EAST-1:28,CENTER+1:19"//CIT CHANGE - moves internal icon up a little bit to accommodate for the stamina meter
|
||||
#define ui_mood "EAST-1:28,CENTER-3:10"
|
||||
#define ui_arousal "EAST-1:28,CENTER-4:8"
|
||||
#define ui_stamina "EAST-1:28,CENTER-0:14"
|
||||
// #define ui_spacesuit "EAST-1:28,CENTER-4:10"
|
||||
|
||||
//Pop-up inventory
|
||||
@@ -209,7 +210,6 @@
|
||||
#define ui_ghost_spawners "SOUTH: 6, CENTER+1:24" // LEGACY. SAME LOC AS PAI
|
||||
|
||||
//UI position overrides for 1:1 screen layout. (default is 7:5)
|
||||
#define ui_stamina "EAST-1:28,CENTER:17" // replacing internals button
|
||||
#define ui_overridden_resist "EAST-3:24,SOUTH+1:7"
|
||||
#define ui_clickdelay "CENTER,SOUTH+1:-31"
|
||||
#define ui_resistdelay "EAST-3:24,SOUTH+1:4"
|
||||
@@ -232,6 +232,8 @@
|
||||
#define SCRN_OBJ_IN_LIST "list"
|
||||
/// In the collapseable palette
|
||||
#define SCRN_OBJ_IN_PALETTE "palette"
|
||||
///Inserted first in the list
|
||||
#define SCRN_OBJ_INSERT_FIRST "first"
|
||||
|
||||
/// The filter name for the hover outline
|
||||
#define HOVER_OUTLINE_FILTER "hover_outline"
|
||||
|
||||
@@ -4,10 +4,21 @@
|
||||
#define LANGUAGE_HIDE_ICON_IF_NOT_UNDERSTOOD 8
|
||||
|
||||
// LANGUAGE SOURCE DEFINES
|
||||
#define LANGUAGE_ALL "all" // For use in full removal only.
|
||||
#define LANGUAGE_ATOM "atom"
|
||||
#define LANGUAGE_MIND "mind"
|
||||
/// For use in full removal only.
|
||||
#define LANGUAGE_ALL "all"
|
||||
// Generic language sources.
|
||||
/// Language is linked to the movable directly.
|
||||
#define LANGUAGE_ATOM "atom"
|
||||
/// Language is linked to the mob's mind.
|
||||
/// If a mind transfer happens, language follows.
|
||||
#define LANGUAGE_MIND "mind"
|
||||
/// Language is linked to the mob's species.
|
||||
/// If a species change happens, language goes away.
|
||||
/// If applied to a non-human (no species) atom, this is effectively the same as [LANGUAGE_ATOM].
|
||||
#define LANGUAGE_SPECIES "species"
|
||||
|
||||
// More specific language sources.
|
||||
// Only ever goes away when dismissed directly.
|
||||
#define LANGUAGE_ABSORB "absorb"
|
||||
#define LANGUAGE_APHASIA "aphasia"
|
||||
#define LANGUAGE_BLOODSUCKER "bloodsucker"
|
||||
@@ -25,3 +36,9 @@
|
||||
#define LANGUAGE_VASSAL "vassal"
|
||||
#define LANGUAGE_VOICECHANGE "voicechange"
|
||||
#define LANGUAGE_MULTILINGUAL "multilingual"
|
||||
|
||||
// Language flags. Used in granting and removing languages.
|
||||
/// This language can be spoken.
|
||||
#define SPOKEN_LANGUAGE (1<<0)
|
||||
/// This language can be understood.
|
||||
#define UNDERSTOOD_LANGUAGE (1<<1)
|
||||
|
||||
@@ -200,5 +200,8 @@
|
||||
#define SPLASHSCREEN_PLANE 90
|
||||
#define SPLASHSCREEN_RENDER_TARGET "SPLASHSCREEN_PLANE"
|
||||
|
||||
///Plane master controller keys
|
||||
#define PLANE_MASTERS_GAME "plane_masters_game"
|
||||
|
||||
///Layer for screentips
|
||||
#define SCREENTIP_LAYER 40
|
||||
|
||||
@@ -744,6 +744,13 @@
|
||||
else
|
||||
L1[key] = other_value
|
||||
|
||||
/// Turns an associative list into a flat list of keys
|
||||
/proc/assoc_to_keys(list/input)
|
||||
var/list/keys = list()
|
||||
for(var/key in input)
|
||||
UNTYPED_LIST_ADD(keys, key)
|
||||
return keys
|
||||
|
||||
/proc/assoc_list_strip_value(list/input)
|
||||
var/list/ret = list()
|
||||
for(var/key in input)
|
||||
|
||||
@@ -5,10 +5,11 @@
|
||||
var/datum/hud/our_hud
|
||||
var/actiontooltipstyle = ""
|
||||
screen_loc = null
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
|
||||
var/button_icon_state
|
||||
var/appearance_cache
|
||||
|
||||
var/mutable_appearance/button_overlay
|
||||
/// Where we are currently placed on the hud. SCRN_OBJ_DEFAULT asks the linked action what it thinks
|
||||
var/location = SCRN_OBJ_DEFAULT
|
||||
/// A unique bitflag, combined with the name of our linked action this lets us persistently remember any user changes to our position
|
||||
@@ -199,6 +200,7 @@
|
||||
icon = 'icons/hud/64x16_actions.dmi'
|
||||
icon_state = "screen_gen_palette"
|
||||
screen_loc = ui_action_palette
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
var/datum/hud/our_hud
|
||||
var/expanded = FALSE
|
||||
/// Id of any currently running timers that set our color matrix
|
||||
@@ -324,6 +326,7 @@ GLOBAL_LIST_INIT(palette_removed_matrix, list(1.4,0,0,0, 0.7,0.4,0,0, 0.4,0,0.6,
|
||||
/atom/movable/screen/palette_scroll
|
||||
icon = 'icons/mob/screen_gen.dmi'
|
||||
screen_loc = ui_palette_scroll
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
/// How should we move the palette's actions?
|
||||
/// Positive scrolls down the list, negative scrolls back
|
||||
var/scroll_direction = 0
|
||||
|
||||
+19
-36
@@ -1,5 +1,6 @@
|
||||
/atom/movable/screen/ai
|
||||
icon = 'icons/mob/screen_ai.dmi'
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
|
||||
/atom/movable/screen/ai/Click()
|
||||
if(isobserver(usr) || usr.incapacitated())
|
||||
@@ -193,109 +194,91 @@
|
||||
var/atom/movable/screen/using
|
||||
|
||||
// Language menu
|
||||
using = new /atom/movable/screen/language_menu
|
||||
using = new /atom/movable/screen/language_menu(null, src)
|
||||
using.screen_loc = ui_ai_language_menu
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
//AI core
|
||||
using = new /atom/movable/screen/ai/aicore()
|
||||
using = new /atom/movable/screen/ai/aicore(null, src)
|
||||
using.screen_loc = ui_ai_core
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
//Camera list
|
||||
using = new /atom/movable/screen/ai/camera_list()
|
||||
using = new /atom/movable/screen/ai/camera_list(null, src)
|
||||
using.screen_loc = ui_ai_camera_list
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
//Track
|
||||
using = new /atom/movable/screen/ai/camera_track()
|
||||
using = new /atom/movable/screen/ai/camera_track(null, src)
|
||||
using.screen_loc = ui_ai_track_with_camera
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
//Camera light
|
||||
using = new /atom/movable/screen/ai/camera_light()
|
||||
using = new /atom/movable/screen/ai/camera_light(null, src)
|
||||
using.screen_loc = ui_ai_camera_light
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
//Crew Monitoring
|
||||
using = new /atom/movable/screen/ai/crew_monitor()
|
||||
using = new /atom/movable/screen/ai/crew_monitor(null, src)
|
||||
using.screen_loc = ui_ai_crew_monitor
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
//Crew Manifest
|
||||
using = new /atom/movable/screen/ai/crew_manifest()
|
||||
using = new /atom/movable/screen/ai/crew_manifest(null, src)
|
||||
using.screen_loc = ui_ai_crew_manifest
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
//Alerts
|
||||
using = new /atom/movable/screen/ai/alerts()
|
||||
using = new /atom/movable/screen/ai/alerts(null, src)
|
||||
using.screen_loc = ui_ai_alerts
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
//Announcement
|
||||
using = new /atom/movable/screen/ai/announcement()
|
||||
using = new /atom/movable/screen/ai/announcement(null, src)
|
||||
using.screen_loc = ui_ai_announcement
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
//Shuttle
|
||||
using = new /atom/movable/screen/ai/call_shuttle()
|
||||
using = new /atom/movable/screen/ai/call_shuttle(null, src)
|
||||
using.screen_loc = ui_ai_shuttle
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
//Laws
|
||||
using = new /atom/movable/screen/ai/state_laws()
|
||||
using = new /atom/movable/screen/ai/state_laws(null, src)
|
||||
using.screen_loc = ui_ai_state_laws
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
//PDA message
|
||||
using = new /atom/movable/screen/ai/pda_msg_send()
|
||||
using = new /atom/movable/screen/ai/pda_msg_send(null, src)
|
||||
using.screen_loc = ui_ai_pda_send
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
//PDA log
|
||||
using = new /atom/movable/screen/ai/pda_msg_show()
|
||||
using = new /atom/movable/screen/ai/pda_msg_show(null, src)
|
||||
using.screen_loc = ui_ai_pda_log
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
//Take image
|
||||
using = new /atom/movable/screen/ai/image_take()
|
||||
using = new /atom/movable/screen/ai/image_take(null, src)
|
||||
using.screen_loc = ui_ai_take_picture
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
//View images
|
||||
using = new /atom/movable/screen/ai/image_view()
|
||||
using = new /atom/movable/screen/ai/image_view(null, src)
|
||||
using.screen_loc = ui_ai_view_images
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
//Medical/Security sensors
|
||||
using = new /atom/movable/screen/ai/sensors()
|
||||
using = new /atom/movable/screen/ai/sensors(null, src)
|
||||
using.screen_loc = ui_ai_sensor
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
//Multicamera mode
|
||||
using = new /atom/movable/screen/ai/multicam()
|
||||
using = new /atom/movable/screen/ai/multicam(null, src)
|
||||
using.screen_loc = ui_ai_multicam
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
//Add multicamera camera
|
||||
using = new /atom/movable/screen/ai/add_multicam()
|
||||
using = new /atom/movable/screen/ai/add_multicam(null, src)
|
||||
using.screen_loc = ui_ai_add_multicam
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
+114
-25
@@ -91,6 +91,8 @@
|
||||
name = "Alert"
|
||||
desc = "Something seems to have gone wrong with this alert, so report this bug please"
|
||||
mouse_opacity = MOUSE_OPACITY_ICON
|
||||
/// do we glow to represent we do stuff when clicked
|
||||
var/clickable_glow = FALSE
|
||||
var/timeout = 0 //If set to a number, this alert will clear itself after that many deciseconds
|
||||
var/severity = 0
|
||||
var/alerttooltipstyle = ""
|
||||
@@ -100,6 +102,12 @@
|
||||
/// Boolean. If TRUE, the Click() proc will attempt to Click() on the master first if there is a master.
|
||||
var/click_master = TRUE
|
||||
|
||||
/atom/movable/screen/alert/Initialize(mapload, datum/hud/hud_owner)
|
||||
. = ..()
|
||||
if(clickable_glow)
|
||||
add_filter("clickglow", 2, outline_filter(color = COLOR_GOLD, size = 1))
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
|
||||
/atom/movable/screen/alert/MouseEntered(location,control,params)
|
||||
if(!QDELETED(src))
|
||||
openToolTip(usr,src,params,title = name,content = desc,theme = alerttooltipstyle)
|
||||
@@ -247,13 +255,14 @@ or something covering your eyes."
|
||||
name = "Mind Control"
|
||||
desc = "Your mind has been hijacked! Click to view the mind control command."
|
||||
icon_state = "mind_control"
|
||||
clickable_glow = TRUE
|
||||
var/command
|
||||
|
||||
/atom/movable/screen/alert/mind_control/Click()
|
||||
var/mob/living/L = usr
|
||||
if(L != owner)
|
||||
. = ..()
|
||||
if(!.)
|
||||
return
|
||||
to_chat(L, "<span class='mind_control'>[command]</span>")
|
||||
to_chat(usr, "<span class='mind_control'>[command]</span>")
|
||||
|
||||
/atom/movable/screen/alert/hypnosis
|
||||
name = "Hypnosis"
|
||||
@@ -271,11 +280,16 @@ or something covering your eyes."
|
||||
desc = "Something got lodged into your flesh and is causing major bleeding. It might fall out with time, but surgery is the safest way. \
|
||||
If you're feeling frisky, examine yourself and click the underlined item to pull the object out."
|
||||
icon_state = "embeddedobject"
|
||||
clickable_glow = TRUE
|
||||
|
||||
/atom/movable/screen/alert/embeddedobject/Click()
|
||||
if(isliving(usr) && usr == owner)
|
||||
var/mob/living/carbon/M = usr
|
||||
return M.help_shake_act(M)
|
||||
. = ..()
|
||||
if(!.)
|
||||
return
|
||||
if(!isliving(usr))
|
||||
return
|
||||
var/mob/living/carbon/M = usr
|
||||
return M.help_shake_act(M)
|
||||
|
||||
/atom/movable/screen/alert/weightless
|
||||
name = "Weightless"
|
||||
@@ -299,10 +313,14 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
|
||||
name = "On Fire"
|
||||
desc = "You're on fire. Stop, drop and roll to put the fire out or move to a vacuum area."
|
||||
icon_state = "fire"
|
||||
clickable_glow = TRUE
|
||||
|
||||
/atom/movable/screen/alert/fire/Click()
|
||||
. = ..()
|
||||
if(!.)
|
||||
return
|
||||
var/mob/living/L = usr
|
||||
if(!istype(L) || !L.can_resist() || L != owner)
|
||||
if(!istype(L) || !L.can_resist())
|
||||
return
|
||||
L.MarkResistTime()
|
||||
if(CHECK_MOBILITY(L, MOBILITY_MOVE))
|
||||
@@ -310,8 +328,29 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
|
||||
|
||||
/atom/movable/screen/alert/give // information set when the give alert is made
|
||||
icon_state = "default"
|
||||
clickable_glow = TRUE
|
||||
var/mob/living/carbon/offerer
|
||||
var/obj/item/receiving
|
||||
/// Additional text displayed in the description of the alert.
|
||||
var/additional_desc_text = "Click this alert to take it, or shift click it to examine it."
|
||||
/// Text to override what appears in screentips for the alert
|
||||
var/screentip_override_text
|
||||
/// Whether the offered item can be examined by shift-clicking the alert
|
||||
var/examinable = TRUE
|
||||
|
||||
/atom/movable/screen/alert/give/Initialize(mapload, datum/hud/hud_owner)
|
||||
. = ..()
|
||||
register_context()
|
||||
|
||||
/atom/movable/screen/alert/give/Destroy()
|
||||
offerer = null
|
||||
receiving = null
|
||||
return ..()
|
||||
|
||||
/atom/movable/screen/alert/give/add_context(atom/source, list/context, obj/item/held_item, mob/user)
|
||||
LAZYSET(context[SCREENTIP_CONTEXT_LMB], INTENT_ANY, screentip_override_text || "Take [receiving.name]")
|
||||
LAZYSET(context[SCREENTIP_CONTEXT_SHIFT_LMB], INTENT_ANY, "Examine")
|
||||
return CONTEXTUAL_SCREENTIP_SET
|
||||
|
||||
/**
|
||||
* Handles assigning most of the variables for the alert that pops up when an item is offered
|
||||
@@ -341,6 +380,16 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
|
||||
CRASH("User for [src] is of type \[[usr.type]\]. This should never happen.")
|
||||
handle_transfer()
|
||||
|
||||
/atom/movable/screen/alert/give/examine(mob/user)
|
||||
if(!examinable)
|
||||
return ..()
|
||||
|
||||
return list(
|
||||
span_boldnotice(name),
|
||||
span_info("[offerer] is offering you the following item (click the alert to take it!):"),
|
||||
"<hr>[jointext(receiving.examine(user), "\n")]",
|
||||
)
|
||||
|
||||
/// An overrideable proc used simply to hand over the item when claimed, this is a proc so that high-fives can override them since nothing is actually transferred
|
||||
/atom/movable/screen/alert/give/proc/handle_transfer()
|
||||
var/mob/living/carbon/taker = owner
|
||||
@@ -354,6 +403,11 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
|
||||
to_chat(owner, span_warning("You moved out of range of [offerer]!"))
|
||||
owner.clear_alert("[offerer]")
|
||||
|
||||
/atom/movable/screen/alert/give/highfive
|
||||
additional_desc_text = "Click this alert to slap it."
|
||||
screentip_override_text = "High Five"
|
||||
examinable = FALSE
|
||||
|
||||
/atom/movable/screen/alert/give/highfive/setup(mob/living/carbon/taker, mob/living/carbon/offerer, obj/item/receiving)
|
||||
. = ..()
|
||||
name = "[offerer] is offering a high-five!"
|
||||
@@ -404,6 +458,9 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
|
||||
/// Families handshakes
|
||||
/atom/movable/screen/alert/give/secret_handshake
|
||||
icon_state = "default"
|
||||
additional_desc_text = "Click this alert to accept."
|
||||
screentip_override_text = "Handshake"
|
||||
examinable = FALSE
|
||||
|
||||
/atom/movable/screen/alert/give/secret_handshake/setup(mob/living/carbon/taker, mob/living/carbon/offerer, obj/item/receiving)
|
||||
name = "[offerer] is offering a Handshake"
|
||||
@@ -666,18 +723,21 @@ so as to remain in compliance with the most up-to-date laws."
|
||||
complete, you will have exclusive control of it, and you will gain \
|
||||
additional processing time to unlock more malfunction abilities."
|
||||
icon_state = "hackingapc"
|
||||
timeout = 600
|
||||
timeout = 60 SECONDS
|
||||
clickable_glow = TRUE
|
||||
var/atom/target = null
|
||||
|
||||
/atom/movable/screen/alert/hackingapc/Click()
|
||||
if(!usr || !usr.client || usr != owner)
|
||||
. = ..()
|
||||
if(!.)
|
||||
return
|
||||
if(!target)
|
||||
return
|
||||
var/mob/living/silicon/ai/AI = usr
|
||||
var/turf/T = get_turf(target)
|
||||
if(T)
|
||||
AI.eyeobj.setLoc(T)
|
||||
if(!T)
|
||||
return
|
||||
AI.eyeobj.setLoc(T)
|
||||
|
||||
//MECHS
|
||||
|
||||
@@ -693,25 +753,30 @@ so as to remain in compliance with the most up-to-date laws."
|
||||
name = "Revival"
|
||||
desc = "Someone is trying to revive you. Re-enter your corpse if you want to be revived!"
|
||||
icon_state = "template"
|
||||
timeout = 300
|
||||
timeout = 30 SECONDS
|
||||
clickable_glow = TRUE
|
||||
|
||||
/atom/movable/screen/alert/notify_cloning/Click()
|
||||
if(!usr || !usr.client || usr != owner)
|
||||
. = ..()
|
||||
if(!.)
|
||||
return
|
||||
var/mob/dead/observer/G = usr
|
||||
G.reenter_corpse()
|
||||
var/mob/dead/observer/dead_owner = usr
|
||||
dead_owner.reenter_corpse()
|
||||
|
||||
/atom/movable/screen/alert/notify_action
|
||||
name = "Body created"
|
||||
desc = "A body was created. You can enter it."
|
||||
icon_state = "template"
|
||||
timeout = 300
|
||||
timeout = 30 SECONDS
|
||||
clickable_glow = TRUE
|
||||
var/atom/target = null
|
||||
var/action = NOTIFY_JUMP
|
||||
|
||||
/atom/movable/screen/alert/notify_action/Click()
|
||||
if(!usr || !usr.client || usr != owner)
|
||||
. = ..()
|
||||
if(!.)
|
||||
return
|
||||
|
||||
if(!target)
|
||||
return
|
||||
var/mob/dead/observer/G = usr
|
||||
@@ -729,29 +794,43 @@ so as to remain in compliance with the most up-to-date laws."
|
||||
|
||||
//OBJECT-BASED
|
||||
|
||||
/atom/movable/screen/alert/restrained/buckled
|
||||
/atom/movable/screen/alert/buckled
|
||||
name = "Buckled"
|
||||
desc = "You've been buckled to something. Click the alert to unbuckle unless you're handcuffed."
|
||||
icon_state = "buckled"
|
||||
clickable_glow = TRUE
|
||||
|
||||
/atom/movable/screen/alert/restrained
|
||||
clickable_glow = TRUE
|
||||
|
||||
/atom/movable/screen/alert/restrained/handcuffed
|
||||
name = "Handcuffed"
|
||||
desc = "You're handcuffed and can't act. If anyone drags you, you won't be able to move. Click the alert to free yourself."
|
||||
click_master = FALSE
|
||||
|
||||
/atom/movable/screen/alert/restrained/legcuffed
|
||||
name = "Legcuffed"
|
||||
desc = "You're legcuffed, which slows you down considerably. Click the alert to free yourself."
|
||||
click_master = FALSE
|
||||
|
||||
/atom/movable/screen/alert/restrained/Click()
|
||||
. = ..()
|
||||
if(!.)
|
||||
return
|
||||
|
||||
var/mob/living/L = usr
|
||||
if(!istype(L) || !L.can_resist() || L != owner)
|
||||
if(!istype(L) || !L.can_resist())
|
||||
return
|
||||
L.MarkResistTime()
|
||||
return L.resist_restraints()
|
||||
|
||||
/atom/movable/screen/alert/restrained/buckled/Click()
|
||||
/atom/movable/screen/alert/buckled/Click()
|
||||
. = ..()
|
||||
if(!.)
|
||||
return
|
||||
|
||||
var/mob/living/L = usr
|
||||
if(!istype(L) || !L.can_resist() || L != owner)
|
||||
if(!istype(L) || !L.can_resist())
|
||||
return
|
||||
L.MarkResistTime()
|
||||
return L.resist_buckle()
|
||||
@@ -765,10 +844,14 @@ so as to remain in compliance with the most up-to-date laws."
|
||||
name = "Knotted Shoes"
|
||||
desc = "Someone tied your shoelaces together! Click the alert or your shoes to undo the knot."
|
||||
icon_state = "shoealert"
|
||||
clickable_glow = TRUE
|
||||
|
||||
/atom/movable/screen/alert/shoes/Click()
|
||||
. = ..()
|
||||
if(!.)
|
||||
return
|
||||
var/mob/living/carbon/C = usr
|
||||
if(!istype(C) || !C.can_resist() || C != owner || !C.shoes)
|
||||
if(!istype(C) || !C.can_resist() || !C.shoes)
|
||||
return
|
||||
C.MarkResistTime()
|
||||
C.shoes.handle_tying(C)
|
||||
@@ -814,9 +897,9 @@ so as to remain in compliance with the most up-to-date laws."
|
||||
return FALSE
|
||||
if(usr != owner)
|
||||
return FALSE
|
||||
var/paramslist = params2list(params)
|
||||
if(paramslist["shift"]) // screen objects don't do the normal Click() stuff so we'll cheat
|
||||
to_chat(usr, "<span class='boldnotice'>[name]</span> - <span class='info'>[desc]</span>")
|
||||
var/modifiers = params2list(params)
|
||||
if(LAZYACCESS(modifiers, SHIFT_CLICK)) // screen objects don't do the normal Click() stuff so we'll cheat
|
||||
to_chat(usr, "<blockquote class='info'>[jointext(examine(usr), "\n")]</blockquote>")
|
||||
return FALSE
|
||||
if(master && click_master)
|
||||
return usr.client.Click(master, location, control, params)
|
||||
@@ -829,3 +912,9 @@ so as to remain in compliance with the most up-to-date laws."
|
||||
master = null
|
||||
owner = null
|
||||
screen_loc = ""
|
||||
|
||||
/atom/movable/screen/alert/examine(mob/user)
|
||||
return list(
|
||||
span_boldnotice(name),
|
||||
span_info(desc),
|
||||
)
|
||||
|
||||
+13
-26
@@ -39,84 +39,71 @@
|
||||
|
||||
//begin buttons
|
||||
|
||||
using = new /atom/movable/screen/swap_hand()
|
||||
using = new /atom/movable/screen/swap_hand(null, src)
|
||||
using.icon = ui_style
|
||||
using.icon_state = "swap_1"
|
||||
using.screen_loc = ui_swaphand_position(owner,1)
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/swap_hand()
|
||||
using = new /atom/movable/screen/swap_hand(null, src)
|
||||
using.icon = ui_style
|
||||
using.icon_state = "swap_2"
|
||||
using.screen_loc = ui_swaphand_position(owner,2)
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
action_intent = new /atom/movable/screen/act_intent/alien()
|
||||
action_intent = new /atom/movable/screen/act_intent/alien(null, src)
|
||||
action_intent.icon_state = mymob.a_intent
|
||||
action_intent.hud = src
|
||||
static_inventory += action_intent
|
||||
|
||||
if(isalienhunter(mymob))
|
||||
var/mob/living/carbon/alien/humanoid/hunter/H = mymob
|
||||
H.leap_icon = new /atom/movable/screen/alien/leap()
|
||||
H.leap_icon = new /atom/movable/screen/alien/leap(null, src)
|
||||
H.leap_icon.screen_loc = ui_alien_storage_r
|
||||
static_inventory += H.leap_icon
|
||||
|
||||
using = new/atom/movable/screen/language_menu
|
||||
using = new/atom/movable/screen/language_menu(null, src)
|
||||
using.screen_loc = ui_alien_language_menu
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/drop()
|
||||
using = new /atom/movable/screen/drop(null, src)
|
||||
using.icon = ui_style
|
||||
using.screen_loc = ui_drop_throw
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/resist()
|
||||
using = new /atom/movable/screen/resist(null, src)
|
||||
using.icon = ui_style
|
||||
using.screen_loc = ui_pull_resist
|
||||
using.hud = src
|
||||
hotkeybuttons += using
|
||||
|
||||
throw_icon = new /atom/movable/screen/throw_catch()
|
||||
throw_icon = new /atom/movable/screen/throw_catch(null, src)
|
||||
throw_icon.icon = ui_style
|
||||
throw_icon.screen_loc = ui_drop_throw
|
||||
throw_icon.hud = src
|
||||
hotkeybuttons += throw_icon
|
||||
|
||||
pull_icon = new /atom/movable/screen/pull()
|
||||
pull_icon = new /atom/movable/screen/pull(null, src)
|
||||
pull_icon.icon = ui_style
|
||||
pull_icon.hud = src
|
||||
pull_icon.update_icon()
|
||||
pull_icon.screen_loc = ui_pull_resist
|
||||
static_inventory += pull_icon
|
||||
|
||||
//begin indicators
|
||||
|
||||
healths = new /atom/movable/screen/healths/alien()
|
||||
healths.hud = src
|
||||
healths = new /atom/movable/screen/healths/alien(null, src)
|
||||
infodisplay += healths
|
||||
|
||||
alien_plasma_display = new /atom/movable/screen/alien/plasma_display()
|
||||
alien_plasma_display.hud = src
|
||||
alien_plasma_display = new /atom/movable/screen/alien/plasma_display(null, src)
|
||||
infodisplay += alien_plasma_display
|
||||
|
||||
if(!isalienqueen(mymob))
|
||||
alien_queen_finder = new /atom/movable/screen/alien/alien_queen_finder
|
||||
alien_queen_finder.hud = src
|
||||
alien_queen_finder = new /atom/movable/screen/alien/alien_queen_finder(null, src)
|
||||
infodisplay += alien_queen_finder
|
||||
|
||||
zone_select = new /atom/movable/screen/zone_sel/alien()
|
||||
zone_select.hud = src
|
||||
zone_select = new /atom/movable/screen/zone_sel/alien(null, src)
|
||||
zone_select.update_icon()
|
||||
static_inventory += zone_select
|
||||
|
||||
for(var/atom/movable/screen/inventory/inv in (static_inventory + toggleable_inventory))
|
||||
if(inv.slot_id)
|
||||
inv.hud = src
|
||||
inv_slots[TOBITSHIFT(inv.slot_id) + 1] = inv
|
||||
inv.update_icon()
|
||||
|
||||
|
||||
@@ -5,32 +5,26 @@
|
||||
..()
|
||||
var/atom/movable/screen/using
|
||||
|
||||
action_intent = new /atom/movable/screen/act_intent/alien()
|
||||
action_intent = new /atom/movable/screen/act_intent/alien(null, src)
|
||||
action_intent.icon_state = mymob.a_intent
|
||||
action_intent.hud = src
|
||||
static_inventory += action_intent
|
||||
|
||||
healths = new /atom/movable/screen/healths/alien()
|
||||
healths.hud = src
|
||||
healths = new /atom/movable/screen/healths/alien(null, src)
|
||||
infodisplay += healths
|
||||
|
||||
alien_queen_finder = new /atom/movable/screen/alien/alien_queen_finder()
|
||||
alien_queen_finder.hud = src
|
||||
alien_queen_finder = new /atom/movable/screen/alien/alien_queen_finder(null, src)
|
||||
infodisplay += alien_queen_finder
|
||||
|
||||
pull_icon = new /atom/movable/screen/pull()
|
||||
pull_icon = new /atom/movable/screen/pull(null, src)
|
||||
pull_icon.icon = 'icons/mob/screen_alien.dmi'
|
||||
pull_icon.hud = src
|
||||
pull_icon.update_icon()
|
||||
pull_icon.screen_loc = ui_pull_resist
|
||||
hotkeybuttons += pull_icon
|
||||
|
||||
using = new/atom/movable/screen/language_menu
|
||||
using = new/atom/movable/screen/language_menu(null, src)
|
||||
using.screen_loc = ui_alien_language_menu
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
zone_select = new /atom/movable/screen/zone_sel/alien()
|
||||
zone_select.hud = src
|
||||
zone_select = new /atom/movable/screen/zone_sel/alien(null, src)
|
||||
zone_select.update_icon()
|
||||
static_inventory += zone_select
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
|
||||
/atom/movable/screen/blob
|
||||
icon = 'icons/mob/blob.dmi'
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
|
||||
/atom/movable/screen/blob/MouseEntered(location,control,params)
|
||||
openToolTip(usr,src,params,title = name,content = desc, theme = "blob")
|
||||
@@ -126,61 +127,50 @@
|
||||
..()
|
||||
var/atom/movable/screen/using
|
||||
|
||||
blobpwrdisplay = new /atom/movable/screen()
|
||||
blobpwrdisplay = new /atom/movable/screen(null, src)
|
||||
blobpwrdisplay.name = "blob power"
|
||||
blobpwrdisplay.icon_state = "block"
|
||||
blobpwrdisplay.screen_loc = ui_health
|
||||
blobpwrdisplay.mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
blobpwrdisplay.layer = ABOVE_HUD_LAYER
|
||||
blobpwrdisplay.plane = ABOVE_HUD_PLANE
|
||||
blobpwrdisplay.hud = src
|
||||
infodisplay += blobpwrdisplay
|
||||
|
||||
healths = new /atom/movable/screen/healths/blob()
|
||||
healths.hud = src
|
||||
healths = new /atom/movable/screen/healths/blob(null, src)
|
||||
infodisplay += healths
|
||||
|
||||
using = new /atom/movable/screen/blob/BlobHelp()
|
||||
using = new /atom/movable/screen/blob/BlobHelp(null, src)
|
||||
using.screen_loc = "WEST:6,NORTH:-3"
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/blob/JumpToNode()
|
||||
using = new /atom/movable/screen/blob/JumpToNode(null, src)
|
||||
using.screen_loc = ui_inventory
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/blob/JumpToCore()
|
||||
using = new /atom/movable/screen/blob/JumpToCore(null, src)
|
||||
using.screen_loc = ui_zonesel
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/blob/Blobbernaut()
|
||||
using = new /atom/movable/screen/blob/Blobbernaut(null, src)
|
||||
using.screen_loc = ui_belt
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/blob/ResourceBlob()
|
||||
using = new /atom/movable/screen/blob/ResourceBlob(null, src)
|
||||
using.screen_loc = ui_back
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/blob/NodeBlob()
|
||||
using = new /atom/movable/screen/blob/NodeBlob(null, src)
|
||||
using.screen_loc = ui_hand_position(2)
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/blob/FactoryBlob()
|
||||
using = new /atom/movable/screen/blob/FactoryBlob(null, src)
|
||||
using.screen_loc = ui_hand_position(1)
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/blob/ReadaptStrain()
|
||||
using = new /atom/movable/screen/blob/ReadaptStrain(null, src)
|
||||
using.screen_loc = ui_storage1
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/blob/RelocateCore()
|
||||
using = new /atom/movable/screen/blob/RelocateCore(null, src)
|
||||
using.screen_loc = ui_storage2
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
@@ -2,10 +2,8 @@
|
||||
/datum/hud/blobbernaut/New(mob/owner)
|
||||
..()
|
||||
|
||||
blobpwrdisplay = new /atom/movable/screen/healths/blob/naut/core()
|
||||
blobpwrdisplay.hud = src
|
||||
blobpwrdisplay = new /atom/movable/screen/healths/blob/naut/core(null, src)
|
||||
infodisplay += blobpwrdisplay
|
||||
|
||||
healths = new /atom/movable/screen/healths/blob/naut()
|
||||
healths.hud = src
|
||||
healths = new /atom/movable/screen/healths/blob/naut(null, src)
|
||||
infodisplay += healths
|
||||
|
||||
@@ -7,14 +7,14 @@
|
||||
..()
|
||||
var/atom/movable/screen/using
|
||||
|
||||
healths = new /atom/movable/screen/healths/clock()
|
||||
healths = new /atom/movable/screen/healths/clock(null, src)
|
||||
infodisplay += healths
|
||||
|
||||
hosthealth = new /atom/movable/screen/healths/clock()
|
||||
hosthealth = new /atom/movable/screen/healths/clock(null, src)
|
||||
hosthealth.screen_loc = ui_internal
|
||||
infodisplay += hosthealth
|
||||
|
||||
using = new /atom/movable/screen/marauder/emerge()
|
||||
using = new /atom/movable/screen/marauder/emerge(null, src)
|
||||
using.screen_loc = ui_zonesel
|
||||
static_inventory += using
|
||||
|
||||
|
||||
@@ -3,13 +3,11 @@
|
||||
|
||||
/datum/hud/constructs/New(mob/owner)
|
||||
..()
|
||||
pull_icon = new /atom/movable/screen/pull()
|
||||
pull_icon = new /atom/movable/screen/pull(null, src)
|
||||
pull_icon.icon = ui_style
|
||||
pull_icon.hud = src
|
||||
pull_icon.update_icon()
|
||||
pull_icon.screen_loc = ui_construct_pull
|
||||
static_inventory += pull_icon
|
||||
|
||||
healths = new /atom/movable/screen/healths/construct()
|
||||
healths.hud = src
|
||||
healths = new /atom/movable/screen/healths/construct(null, src)
|
||||
infodisplay += healths
|
||||
|
||||
@@ -6,51 +6,44 @@
|
||||
..()
|
||||
var/atom/movable/screen/using
|
||||
|
||||
using = new /atom/movable/screen/drop()
|
||||
using = new /atom/movable/screen/drop(null, src)
|
||||
using.icon = ui_style
|
||||
using.screen_loc = ui_drone_drop
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
pull_icon = new /atom/movable/screen/pull()
|
||||
pull_icon = new /atom/movable/screen/pull(null, src)
|
||||
pull_icon.icon = ui_style
|
||||
pull_icon.hud = src
|
||||
pull_icon.update_icon()
|
||||
pull_icon.screen_loc = ui_drone_pull
|
||||
static_inventory += pull_icon
|
||||
|
||||
build_hand_slots()
|
||||
|
||||
using = new /atom/movable/screen/inventory()
|
||||
using = new /atom/movable/screen/inventory(null, src)
|
||||
using.name = "hand"
|
||||
using.icon = ui_style
|
||||
using.icon_state = "swap_1_m"
|
||||
using.screen_loc = ui_swaphand_position(owner,1)
|
||||
using.layer = HUD_LAYER
|
||||
using.plane = HUD_PLANE
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/inventory()
|
||||
using = new /atom/movable/screen/inventory(null, src)
|
||||
using.name = "hand"
|
||||
using.icon = ui_style
|
||||
using.icon_state = "swap_2"
|
||||
using.screen_loc = ui_swaphand_position(owner,2)
|
||||
using.layer = HUD_LAYER
|
||||
using.plane = HUD_PLANE
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
zone_select = new /atom/movable/screen/zone_sel()
|
||||
zone_select = new /atom/movable/screen/zone_sel(null, src)
|
||||
zone_select.icon = ui_style
|
||||
zone_select.hud = src
|
||||
zone_select.update_icon()
|
||||
|
||||
lingchemdisplay = new /atom/movable/screen/ling/chems()
|
||||
lingchemdisplay.hud = src
|
||||
lingchemdisplay = new /atom/movable/screen/ling/chems(null, src)
|
||||
|
||||
devilsouldisplay = new /atom/movable/screen/devil/soul_counter
|
||||
devilsouldisplay.hud = src
|
||||
devilsouldisplay = new /atom/movable/screen/devil/soul_counter(null, src)
|
||||
infodisplay += devilsouldisplay
|
||||
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
..()
|
||||
var/atom/movable/screen/inventory/inv_box
|
||||
|
||||
inv_box = new /atom/movable/screen/inventory()
|
||||
inv_box = new /atom/movable/screen/inventory(null, src)
|
||||
inv_box.name = "internal storage"
|
||||
inv_box.icon = ui_style
|
||||
inv_box.icon_state = "suit_storage"
|
||||
@@ -11,7 +11,7 @@
|
||||
inv_box.slot_id = ITEM_SLOT_DEX_STORAGE
|
||||
static_inventory += inv_box
|
||||
|
||||
inv_box = new /atom/movable/screen/inventory()
|
||||
inv_box = new /atom/movable/screen/inventory(null, src)
|
||||
inv_box.name = "head/mask"
|
||||
inv_box.icon = ui_style
|
||||
inv_box.icon_state = "mask"
|
||||
@@ -22,7 +22,6 @@
|
||||
|
||||
for(var/atom/movable/screen/inventory/inv in (static_inventory + toggleable_inventory))
|
||||
if(inv.slot_id)
|
||||
inv.hud = src
|
||||
inv_slots[TOBITSHIFT(inv.slot_id) + 1] = inv
|
||||
inv.update_icon()
|
||||
|
||||
|
||||
@@ -9,9 +9,6 @@
|
||||
/// Boolean, have the cops arrived? If so, the icon stops changing and remains the same.
|
||||
var/cops_arrived = 0
|
||||
|
||||
/atom/movable/screen/wanted/New()
|
||||
return ..()
|
||||
|
||||
/atom/movable/screen/wanted/Initialize(mapload)
|
||||
. = ..()
|
||||
update_icon()
|
||||
|
||||
@@ -3,63 +3,55 @@
|
||||
..()
|
||||
var/atom/movable/screen/using
|
||||
|
||||
using = new /atom/movable/screen/drop()
|
||||
using = new /atom/movable/screen/drop(null, src)
|
||||
using.icon = ui_style
|
||||
using.screen_loc = ui_drone_drop
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
pull_icon = new /atom/movable/screen/pull()
|
||||
pull_icon = new /atom/movable/screen/pull(null, src)
|
||||
pull_icon.icon = ui_style
|
||||
pull_icon.hud = src
|
||||
pull_icon.update_icon()
|
||||
pull_icon.screen_loc = ui_drone_pull
|
||||
static_inventory += pull_icon
|
||||
|
||||
build_hand_slots()
|
||||
|
||||
using = new /atom/movable/screen/swap_hand()
|
||||
using = new /atom/movable/screen/swap_hand(null, src)
|
||||
using.icon = ui_style
|
||||
using.icon_state = "swap_1_m"
|
||||
using.screen_loc = ui_swaphand_position(owner,1)
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/swap_hand()
|
||||
using = new /atom/movable/screen/swap_hand(null, src)
|
||||
using.icon = ui_style
|
||||
using.icon_state = "swap_2"
|
||||
using.screen_loc = ui_swaphand_position(owner,2)
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
if(mymob.possible_a_intents)
|
||||
if(mymob.possible_a_intents.len == 4)
|
||||
// All possible intents - full intent selector
|
||||
action_intent = new /atom/movable/screen/act_intent/segmented
|
||||
action_intent = new /atom/movable/screen/act_intent/segmented(null, src)
|
||||
else
|
||||
action_intent = new /atom/movable/screen/act_intent
|
||||
action_intent = new /atom/movable/screen/act_intent(null, src)
|
||||
action_intent.icon = ui_style
|
||||
action_intent.icon_state = mymob.a_intent
|
||||
action_intent.hud = src
|
||||
static_inventory += action_intent
|
||||
|
||||
|
||||
zone_select = new /atom/movable/screen/zone_sel()
|
||||
zone_select = new /atom/movable/screen/zone_sel(null, src)
|
||||
zone_select.icon = ui_style
|
||||
zone_select.hud = src
|
||||
zone_select.update_icon()
|
||||
static_inventory += zone_select
|
||||
|
||||
using = new /atom/movable/screen/area_creator
|
||||
using = new /atom/movable/screen/area_creator(null, src)
|
||||
using.icon = ui_style
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
mymob.client.screen = list()
|
||||
|
||||
for(var/atom/movable/screen/inventory/inv in (static_inventory + toggleable_inventory))
|
||||
if(inv.slot_id)
|
||||
inv.hud = src
|
||||
inv_slots[TOBITSHIFT(inv.slot_id) + 1] = inv
|
||||
inv.update_icon()
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/atom/movable/screen/ghost
|
||||
icon = 'icons/mob/screen_ghost.dmi'
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
|
||||
/atom/movable/screen/ghost/MouseEntered()
|
||||
flick(icon_state + "_anim", src)
|
||||
@@ -48,34 +49,28 @@
|
||||
..()
|
||||
var/atom/movable/screen/using
|
||||
|
||||
using = new /atom/movable/screen/ghost/jumptomob()
|
||||
using = new /atom/movable/screen/ghost/jumptomob(null, src)
|
||||
using.screen_loc = ui_ghost_jumptomob
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/ghost/orbit()
|
||||
using = new /atom/movable/screen/ghost/orbit(null, src)
|
||||
using.screen_loc = ui_ghost_orbit
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/ghost/reenter_corpse()
|
||||
using = new /atom/movable/screen/ghost/reenter_corpse(null, src)
|
||||
using.screen_loc = ui_ghost_reenter_corpse
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/ghost/teleport()
|
||||
using = new /atom/movable/screen/ghost/teleport(null, src)
|
||||
using.screen_loc = ui_ghost_teleport
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/ghost/spawners()
|
||||
using = new /atom/movable/screen/ghost/spawners(null, src)
|
||||
using.screen_loc = ui_ghost_spawners
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/language_menu
|
||||
using = new /atom/movable/screen/language_menu(null, src)
|
||||
using.icon = ui_style
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
/datum/hud/ghost/show_hud(version = 0, mob/viewmob)
|
||||
|
||||
@@ -3,33 +3,27 @@
|
||||
..()
|
||||
var/atom/movable/screen/using
|
||||
|
||||
healths = new /atom/movable/screen/healths/guardian()
|
||||
healths.hud = src
|
||||
healths = new /atom/movable/screen/healths/guardian(null, src)
|
||||
infodisplay += healths
|
||||
|
||||
using = new /atom/movable/screen/guardian/Manifest()
|
||||
using = new /atom/movable/screen/guardian/Manifest(null, src)
|
||||
using.screen_loc = ui_hand_position(2)
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/guardian/Recall()
|
||||
using = new /atom/movable/screen/guardian/Recall(null, src)
|
||||
using.screen_loc = ui_hand_position(1)
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new owner.toggle_button_type()
|
||||
using = new owner.toggle_button_type(null, src)
|
||||
using.screen_loc = ui_storage1
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/guardian/ToggleLight()
|
||||
using = new /atom/movable/screen/guardian/ToggleLight(null, src)
|
||||
using.screen_loc = ui_inventory
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/guardian/Communicate()
|
||||
using = new /atom/movable/screen/guardian/Communicate(null, src)
|
||||
using.screen_loc = ui_back
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
/datum/hud/dextrous/guardian/New(mob/living/simple_animal/hostile/guardian/owner) //for a dextrous guardian
|
||||
@@ -38,7 +32,7 @@
|
||||
if(istype(owner, /mob/living/simple_animal/hostile/guardian/dextrous))
|
||||
var/atom/movable/screen/inventory/inv_box
|
||||
|
||||
inv_box = new /atom/movable/screen/inventory()
|
||||
inv_box = new /atom/movable/screen/inventory(null, src)
|
||||
inv_box.name = "internal storage"
|
||||
inv_box.icon = ui_style
|
||||
inv_box.icon_state = "suit_storage"
|
||||
@@ -46,32 +40,32 @@
|
||||
inv_box.slot_id = ITEM_SLOT_DEX_STORAGE
|
||||
static_inventory += inv_box
|
||||
|
||||
using = new /atom/movable/screen/guardian/Communicate()
|
||||
using = new /atom/movable/screen/guardian/Communicate(null, src)
|
||||
using.screen_loc = ui_sstore1
|
||||
static_inventory += using
|
||||
|
||||
else
|
||||
|
||||
using = new /atom/movable/screen/guardian/Communicate()
|
||||
using = new /atom/movable/screen/guardian/Communicate(null, src)
|
||||
using.screen_loc = ui_id
|
||||
static_inventory += using
|
||||
|
||||
healths = new /atom/movable/screen/healths/guardian()
|
||||
healths = new /atom/movable/screen/healths/guardian(null, src)
|
||||
infodisplay += healths
|
||||
|
||||
using = new /atom/movable/screen/guardian/Manifest()
|
||||
using = new /atom/movable/screen/guardian/Manifest(null, src)
|
||||
using.screen_loc = ui_belt
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/guardian/Recall()
|
||||
using = new /atom/movable/screen/guardian/Recall(null, src)
|
||||
using.screen_loc = ui_back
|
||||
static_inventory += using
|
||||
|
||||
using = new owner.toggle_button_type()
|
||||
using = new owner.toggle_button_type(null, src)
|
||||
using.screen_loc = ui_storage2
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/guardian/ToggleLight()
|
||||
using = new /atom/movable/screen/guardian/ToggleLight(null, src)
|
||||
using.screen_loc = ui_inventory
|
||||
static_inventory += using
|
||||
|
||||
@@ -93,6 +87,7 @@
|
||||
|
||||
/atom/movable/screen/guardian
|
||||
icon = 'icons/mob/guardian.dmi'
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
|
||||
/atom/movable/screen/guardian/Manifest
|
||||
icon_state = "manifest"
|
||||
|
||||
@@ -57,7 +57,8 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
|
||||
var/list/inv_slots[SLOTS_AMT] // /atom/movable/screen/inventory objects, ordered by their slot ID.
|
||||
var/list/hand_slots // /atom/movable/screen/inventory/hand objects, assoc list of "[held_index]" = object
|
||||
var/list/atom/movable/screen/plane_master/plane_masters = list() // see "appearance_flags" in the ref, assoc list of "[plane]" = object
|
||||
|
||||
///Assoc list of controller groups, associated with key string group name with value of the plane master controller ref
|
||||
var/list/atom/movable/plane_master_controller/plane_master_controllers = list()
|
||||
|
||||
///UI for screentips that appear when you mouse over things
|
||||
var/atom/movable/screen/screentip/screentip_text
|
||||
@@ -86,7 +87,6 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
|
||||
|
||||
var/atom/movable/screen/healths
|
||||
var/atom/movable/screen/healthdoll
|
||||
var/atom/movable/screen/internals
|
||||
|
||||
//GS13 Port - Add back Arousal
|
||||
var/atom/movable/screen/arousal
|
||||
@@ -112,10 +112,14 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
|
||||
hand_slots = list()
|
||||
|
||||
for(var/mytype in subtypesof(/atom/movable/screen/plane_master))
|
||||
var/atom/movable/screen/plane_master/instance = new mytype()
|
||||
var/atom/movable/screen/plane_master/instance = new mytype(null, src)
|
||||
plane_masters["[instance.plane]"] = instance
|
||||
instance.backdrop(mymob)
|
||||
|
||||
for(var/mytype in subtypesof(/atom/movable/plane_master_controller))
|
||||
var/atom/movable/plane_master_controller/controller_instance = new mytype(null, src)
|
||||
plane_master_controllers[controller_instance.name] = controller_instance
|
||||
|
||||
screentip_text = new(null, src)
|
||||
static_inventory += screentip_text
|
||||
|
||||
@@ -146,8 +150,8 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
|
||||
healths = null
|
||||
healthdoll = null
|
||||
wanted_lvl = null
|
||||
internals = null
|
||||
arousal = null
|
||||
|
||||
lingchemdisplay = null
|
||||
devilsouldisplay = null
|
||||
lingstingdisplay = null
|
||||
@@ -157,6 +161,7 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
|
||||
combo_display = null
|
||||
|
||||
QDEL_LIST_ASSOC_VAL(plane_masters)
|
||||
QDEL_LIST_ASSOC_VAL(plane_master_controllers)
|
||||
QDEL_LIST(screenoverlays)
|
||||
mymob = null
|
||||
|
||||
@@ -322,14 +327,13 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
|
||||
hand_slots = list()
|
||||
var/atom/movable/screen/inventory/hand/hand_box
|
||||
for(var/i in 1 to mymob.held_items.len)
|
||||
hand_box = new /atom/movable/screen/inventory/hand()
|
||||
hand_box = new /atom/movable/screen/inventory/hand(null, src)
|
||||
hand_box.name = mymob.get_held_index_name(i)
|
||||
hand_box.icon = ui_style
|
||||
hand_box.icon_state = "hand_[mymob.held_index_to_dir(i)]"
|
||||
hand_box.screen_loc = ui_hand_position(i)
|
||||
hand_box.held_index = i
|
||||
hand_slots["[i]"] = hand_box
|
||||
hand_box.hud = src
|
||||
static_inventory += hand_box
|
||||
hand_box.update_icon()
|
||||
|
||||
@@ -363,6 +367,9 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
|
||||
listed_actions.insert_action(button)
|
||||
if(SCRN_OBJ_IN_PALETTE)
|
||||
palette_actions.insert_action(button)
|
||||
if(SCRN_OBJ_INSERT_FIRST)
|
||||
listed_actions.insert_action(button, index = 1)
|
||||
position = SCRN_OBJ_IN_LIST
|
||||
else // If we don't have it as a define, this is a screen_loc, and we should be floating
|
||||
floating_actions += button
|
||||
button.screen_loc = position
|
||||
|
||||
+50
-83
@@ -4,6 +4,7 @@
|
||||
/atom/movable/screen/human/toggle
|
||||
name = "toggle"
|
||||
icon_state = "toggle"
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
|
||||
/atom/movable/screen/human/toggle/Click()
|
||||
|
||||
@@ -26,6 +27,7 @@
|
||||
/atom/movable/screen/human/equip
|
||||
name = "equip"
|
||||
icon_state = "act_equip"
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
|
||||
/atom/movable/screen/human/equip/Click()
|
||||
if(ismecha(usr.loc)) // stops inventory actions in a mech
|
||||
@@ -68,6 +70,7 @@
|
||||
/atom/movable/screen/ling/sting
|
||||
name = "current sting"
|
||||
screen_loc = ui_lingstingdisplay
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
|
||||
/atom/movable/screen/ling/sting/Click()
|
||||
if(isobserver(usr))
|
||||
@@ -183,54 +186,47 @@
|
||||
var/atom/movable/screen/using
|
||||
var/atom/movable/screen/inventory/inv_box
|
||||
|
||||
using = new/atom/movable/screen/language_menu
|
||||
using = new/atom/movable/screen/language_menu(null, src)
|
||||
using.icon = ui_style
|
||||
if(!widescreenlayout) // CIT CHANGE
|
||||
using.screen_loc = ui_boxlang // CIT CHANGE
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/area_creator
|
||||
using = new /atom/movable/screen/area_creator(null, src)
|
||||
using.icon = ui_style
|
||||
if(!widescreenlayout) // CIT CHANGE
|
||||
using.screen_loc = ui_boxarea // CIT CHANGE
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/voretoggle() //We fancy Vore now
|
||||
using = new /atom/movable/screen/voretoggle(null, src) //We fancy Vore now
|
||||
using.icon = tg_ui_icon_to_cit_ui(ui_style)
|
||||
using.screen_loc = ui_voremode
|
||||
if(!widescreenlayout)
|
||||
using.screen_loc = ui_boxvore
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
action_intent = new /atom/movable/screen/act_intent/segmented
|
||||
action_intent = new /atom/movable/screen/act_intent/segmented(null, src)
|
||||
action_intent.icon_state = mymob.a_intent
|
||||
action_intent.hud = src
|
||||
static_inventory += action_intent
|
||||
|
||||
assert_move_intent_ui(owner, TRUE)
|
||||
|
||||
// clickdelay
|
||||
clickdelay = new
|
||||
clickdelay.hud = src
|
||||
clickdelay = new(null, src)
|
||||
clickdelay.screen_loc = ui_clickdelay
|
||||
static_inventory += clickdelay
|
||||
|
||||
// resistdelay
|
||||
resistdelay = new
|
||||
resistdelay.hud = src
|
||||
resistdelay = new(null, src)
|
||||
resistdelay.screen_loc = ui_resistdelay
|
||||
static_inventory += resistdelay
|
||||
|
||||
using = new /atom/movable/screen/drop()
|
||||
using = new /atom/movable/screen/drop(null, src)
|
||||
using.icon = ui_style
|
||||
using.screen_loc = ui_drop_throw
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
inv_box = new /atom/movable/screen/inventory()
|
||||
inv_box = new /atom/movable/screen/inventory(null, src)
|
||||
inv_box.name = "uniform"
|
||||
inv_box.icon = ui_style
|
||||
inv_box.slot_id = ITEM_SLOT_ICLOTHING
|
||||
@@ -239,7 +235,7 @@
|
||||
inv_box.screen_loc = ui_iclothing
|
||||
toggleable_inventory += inv_box
|
||||
|
||||
inv_box = new /atom/movable/screen/inventory()
|
||||
inv_box = new /atom/movable/screen/inventory(null, src)
|
||||
inv_box.name = "suit"
|
||||
inv_box.icon = ui_style
|
||||
inv_box.slot_id = ITEM_SLOT_OCLOTHING
|
||||
@@ -250,21 +246,19 @@
|
||||
|
||||
build_hand_slots()
|
||||
|
||||
using = new /atom/movable/screen/swap_hand()
|
||||
using = new /atom/movable/screen/swap_hand(null, src)
|
||||
using.icon = ui_style
|
||||
using.icon_state = "swap_1"
|
||||
using.screen_loc = ui_swaphand_position(owner,1)
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/swap_hand()
|
||||
using = new /atom/movable/screen/swap_hand(null, src)
|
||||
using.icon = ui_style
|
||||
using.icon_state = "swap_2"
|
||||
using.screen_loc = ui_swaphand_position(owner,2)
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
inv_box = new /atom/movable/screen/inventory()
|
||||
inv_box = new /atom/movable/screen/inventory(null, src)
|
||||
inv_box.name = "id"
|
||||
inv_box.icon = ui_style
|
||||
inv_box.icon_state = "id"
|
||||
@@ -273,7 +267,7 @@
|
||||
inv_box.slot_id = ITEM_SLOT_ID
|
||||
static_inventory += inv_box
|
||||
|
||||
inv_box = new /atom/movable/screen/inventory()
|
||||
inv_box = new /atom/movable/screen/inventory(null, src)
|
||||
inv_box.name = "mask"
|
||||
inv_box.icon = ui_style
|
||||
inv_box.icon_state = "mask"
|
||||
@@ -282,7 +276,7 @@
|
||||
inv_box.slot_id = ITEM_SLOT_MASK
|
||||
toggleable_inventory += inv_box
|
||||
|
||||
inv_box = new /atom/movable/screen/inventory()
|
||||
inv_box = new /atom/movable/screen/inventory(null, src)
|
||||
inv_box.name = "neck"
|
||||
inv_box.icon = ui_style
|
||||
inv_box.icon_state = "neck"
|
||||
@@ -291,7 +285,7 @@
|
||||
inv_box.slot_id = ITEM_SLOT_NECK
|
||||
toggleable_inventory += inv_box
|
||||
|
||||
inv_box = new /atom/movable/screen/inventory()
|
||||
inv_box = new /atom/movable/screen/inventory(null, src)
|
||||
inv_box.name = "back"
|
||||
inv_box.icon = ui_style
|
||||
inv_box.icon_state = "back"
|
||||
@@ -300,7 +294,7 @@
|
||||
inv_box.slot_id = ITEM_SLOT_BACK
|
||||
static_inventory += inv_box
|
||||
|
||||
inv_box = new /atom/movable/screen/inventory()
|
||||
inv_box = new /atom/movable/screen/inventory(null, src)
|
||||
inv_box.name = "left pocket"
|
||||
inv_box.icon = ui_style
|
||||
inv_box.icon_state = "pocket"
|
||||
@@ -309,7 +303,7 @@
|
||||
inv_box.slot_id = ITEM_SLOT_LPOCKET
|
||||
static_inventory += inv_box
|
||||
|
||||
inv_box = new /atom/movable/screen/inventory()
|
||||
inv_box = new /atom/movable/screen/inventory(null, src)
|
||||
inv_box.name = "right pocket"
|
||||
inv_box.icon = ui_style
|
||||
inv_box.icon_state = "pocket"
|
||||
@@ -318,7 +312,7 @@
|
||||
inv_box.slot_id = ITEM_SLOT_RPOCKET
|
||||
static_inventory += inv_box
|
||||
|
||||
inv_box = new /atom/movable/screen/inventory()
|
||||
inv_box = new /atom/movable/screen/inventory(null, src)
|
||||
inv_box.name = "suit storage"
|
||||
inv_box.icon = ui_style
|
||||
inv_box.icon_state = "suit_storage"
|
||||
@@ -327,32 +321,28 @@
|
||||
inv_box.slot_id = ITEM_SLOT_SUITSTORE
|
||||
static_inventory += inv_box
|
||||
|
||||
using = new /atom/movable/screen/resist()
|
||||
using = new /atom/movable/screen/resist(null, src)
|
||||
using.icon = ui_style
|
||||
using.screen_loc = ui_overridden_resist // CIT CHANGE - changes this to overridden resist
|
||||
using.hud = src
|
||||
hotkeybuttons += using
|
||||
|
||||
rest_icon = new /atom/movable/screen/rest()
|
||||
rest_icon = new /atom/movable/screen/rest(null, src)
|
||||
rest_icon.icon = ui_style
|
||||
rest_icon.screen_loc = ui_pull_resist
|
||||
rest_icon.hud = src
|
||||
static_inventory += rest_icon
|
||||
//END OF CIT CHANGES
|
||||
|
||||
using = new /atom/movable/screen/human/toggle()
|
||||
using = new /atom/movable/screen/human/toggle(null, src)
|
||||
using.icon = ui_style
|
||||
using.screen_loc = ui_inventory
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/human/equip()
|
||||
using = new /atom/movable/screen/human/equip(null, src)
|
||||
using.icon = ui_style
|
||||
using.screen_loc = ui_equip_position(mymob)
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
inv_box = new /atom/movable/screen/inventory()
|
||||
inv_box = new /atom/movable/screen/inventory(null, src)
|
||||
inv_box.name = "gloves"
|
||||
inv_box.icon = ui_style
|
||||
inv_box.icon_state = "gloves"
|
||||
@@ -361,7 +351,7 @@
|
||||
inv_box.slot_id = ITEM_SLOT_GLOVES
|
||||
toggleable_inventory += inv_box
|
||||
|
||||
inv_box = new /atom/movable/screen/inventory()
|
||||
inv_box = new /atom/movable/screen/inventory(null, src)
|
||||
inv_box.name = "eyes"
|
||||
inv_box.icon = ui_style
|
||||
inv_box.icon_state = "glasses"
|
||||
@@ -370,7 +360,7 @@
|
||||
inv_box.slot_id = ITEM_SLOT_EYES
|
||||
toggleable_inventory += inv_box
|
||||
|
||||
inv_box = new /atom/movable/screen/inventory()
|
||||
inv_box = new /atom/movable/screen/inventory(null, src)
|
||||
inv_box.name = "ears"
|
||||
inv_box.icon = ui_style
|
||||
inv_box.icon_state = "ears"
|
||||
@@ -379,7 +369,7 @@
|
||||
inv_box.slot_id = ITEM_SLOT_EARS
|
||||
toggleable_inventory += inv_box
|
||||
|
||||
inv_box = new /atom/movable/screen/inventory()
|
||||
inv_box = new /atom/movable/screen/inventory(null, src)
|
||||
inv_box.name = "head"
|
||||
inv_box.icon = ui_style
|
||||
inv_box.icon_state = "head"
|
||||
@@ -388,7 +378,7 @@
|
||||
inv_box.slot_id = ITEM_SLOT_HEAD
|
||||
toggleable_inventory += inv_box
|
||||
|
||||
inv_box = new /atom/movable/screen/inventory()
|
||||
inv_box = new /atom/movable/screen/inventory(null, src)
|
||||
inv_box.name = "shoes"
|
||||
inv_box.icon = ui_style
|
||||
inv_box.icon_state = "shoes"
|
||||
@@ -397,7 +387,7 @@
|
||||
inv_box.slot_id = ITEM_SLOT_FEET
|
||||
toggleable_inventory += inv_box
|
||||
|
||||
inv_box = new /atom/movable/screen/inventory()
|
||||
inv_box = new /atom/movable/screen/inventory(null, src)
|
||||
inv_box.name = "belt"
|
||||
inv_box.icon = ui_style
|
||||
inv_box.icon_state = "belt"
|
||||
@@ -406,87 +396,67 @@
|
||||
inv_box.slot_id = ITEM_SLOT_BELT
|
||||
static_inventory += inv_box
|
||||
|
||||
throw_icon = new /atom/movable/screen/throw_catch()
|
||||
throw_icon = new /atom/movable/screen/throw_catch(null, src)
|
||||
throw_icon.icon = ui_style
|
||||
throw_icon.screen_loc = ui_drop_throw
|
||||
throw_icon.hud = src
|
||||
hotkeybuttons += throw_icon
|
||||
|
||||
internals = new /atom/movable/screen/internals()
|
||||
internals.hud = src
|
||||
infodisplay += internals
|
||||
|
||||
healths = new /atom/movable/screen/healths()
|
||||
healths.hud = src
|
||||
healths = new /atom/movable/screen/healths(null, src)
|
||||
infodisplay += healths
|
||||
|
||||
staminas = new /atom/movable/screen/staminas()
|
||||
staminas.hud = src
|
||||
staminas = new /atom/movable/screen/staminas(null, src)
|
||||
infodisplay += staminas
|
||||
|
||||
if(!CONFIG_GET(flag/disable_stambuffer))
|
||||
staminabuffer = new /atom/movable/screen/staminabuffer()
|
||||
staminabuffer.hud = src
|
||||
staminabuffer = new /atom/movable/screen/staminabuffer(null, src)
|
||||
infodisplay += staminabuffer
|
||||
//END OF CIT CHANGES
|
||||
|
||||
//GS13 Port - adds arousal and stamina to hud
|
||||
arousal = new /atom/movable/screen/arousal()
|
||||
arousal = new /atom/movable/screen/arousal(null, src)
|
||||
arousal.icon_state = (owner.canbearoused == 1 ? "arousal0" : "")
|
||||
arousal.hud = src
|
||||
infodisplay += arousal
|
||||
|
||||
healthdoll = new /atom/movable/screen/healthdoll()
|
||||
healthdoll.hud = src
|
||||
healthdoll = new /atom/movable/screen/healthdoll(null, src)
|
||||
infodisplay += healthdoll
|
||||
|
||||
pull_icon = new /atom/movable/screen/pull()
|
||||
pull_icon = new /atom/movable/screen/pull(null, src)
|
||||
pull_icon.icon = ui_style
|
||||
pull_icon.hud = src
|
||||
pull_icon.update_icon()
|
||||
pull_icon.screen_loc = ui_pull_resist
|
||||
static_inventory += pull_icon
|
||||
|
||||
lingchemdisplay = new /atom/movable/screen/ling/chems()
|
||||
lingchemdisplay.hud = src
|
||||
lingchemdisplay = new /atom/movable/screen/ling/chems(null, src)
|
||||
infodisplay += lingchemdisplay
|
||||
|
||||
lingstingdisplay = new /atom/movable/screen/ling/sting()
|
||||
lingstingdisplay.hud = src
|
||||
lingstingdisplay = new /atom/movable/screen/ling/sting(null, src)
|
||||
infodisplay += lingstingdisplay
|
||||
|
||||
devilsouldisplay = new /atom/movable/screen/devil/soul_counter
|
||||
devilsouldisplay.hud = src
|
||||
devilsouldisplay = new /atom/movable/screen/devil/soul_counter(null, src)
|
||||
infodisplay += devilsouldisplay
|
||||
|
||||
blood_display = new /atom/movable/screen/bloodsucker/blood_counter // Blood Volume
|
||||
blood_display.hud = src
|
||||
blood_display = new /atom/movable/screen/bloodsucker/blood_counter(null, src) // Blood Volume
|
||||
infodisplay += blood_display
|
||||
|
||||
vamprank_display = new /atom/movable/screen/bloodsucker/rank_counter // Bloodsucker Rank
|
||||
vamprank_display.hud = src
|
||||
vamprank_display = new /atom/movable/screen/bloodsucker/rank_counter(null, src) // Bloodsucker Rank
|
||||
infodisplay += vamprank_display
|
||||
|
||||
sunlight_display = new /atom/movable/screen/bloodsucker/sunlight_counter // Sunlight
|
||||
sunlight_display.hud = src
|
||||
sunlight_display = new /atom/movable/screen/bloodsucker/sunlight_counter(null, src) // Sunlight
|
||||
infodisplay += sunlight_display
|
||||
|
||||
coolant_display = new /atom/movable/screen/synth/coolant_counter //Coolant & cooling efficiency readouts for Synths.
|
||||
coolant_display.hud = src
|
||||
coolant_display = new /atom/movable/screen/synth/coolant_counter(null, src) //Coolant & cooling efficiency readouts for Synths.
|
||||
infodisplay += coolant_display
|
||||
|
||||
zone_select = new /atom/movable/screen/zone_sel()
|
||||
zone_select = new /atom/movable/screen/zone_sel(null, src)
|
||||
zone_select.icon = ui_style
|
||||
zone_select.hud = src
|
||||
zone_select.update_icon()
|
||||
static_inventory += zone_select
|
||||
|
||||
combo_display = new /atom/movable/screen/combo()
|
||||
combo_display = new /atom/movable/screen/combo(null, src)
|
||||
infodisplay += combo_display
|
||||
|
||||
for(var/atom/movable/screen/inventory/inv in (static_inventory + toggleable_inventory))
|
||||
if(inv.slot_id)
|
||||
inv.hud = src
|
||||
inv_slots[TOBITSHIFT(inv.slot_id) + 1] = inv
|
||||
inv.update_icon()
|
||||
|
||||
@@ -507,10 +477,9 @@
|
||||
|
||||
// make new ones
|
||||
// walk/run
|
||||
using = new /atom/movable/screen/mov_intent
|
||||
using = new /atom/movable/screen/mov_intent(null, src)
|
||||
using.icon = tg_ui_icon_to_cit_ui(ui_style) // CIT CHANGE - overrides mov intent icon
|
||||
using.screen_loc = ui_movi
|
||||
using.hud = src
|
||||
using.update_icon()
|
||||
static_inventory += using
|
||||
if(!on_new)
|
||||
@@ -520,19 +489,17 @@
|
||||
return
|
||||
|
||||
// sprint button
|
||||
using = new /atom/movable/screen/sprintbutton
|
||||
using = new /atom/movable/screen/sprintbutton(null, src)
|
||||
using.icon = tg_ui_icon_to_cit_ui(ui_style)
|
||||
using.icon_state = ((owner.combat_flags & COMBAT_FLAG_SPRINT_ACTIVE) ? "act_sprint_on" : "act_sprint")
|
||||
using.screen_loc = ui_movi
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
if(!on_new)
|
||||
owner?.client?.screen += using
|
||||
|
||||
// same as above but buffer.
|
||||
sprint_buffer = new /atom/movable/screen/sprint_buffer
|
||||
sprint_buffer = new /atom/movable/screen/sprint_buffer(null, src)
|
||||
sprint_buffer.screen_loc = ui_sprintbufferloc
|
||||
sprint_buffer.hud = src
|
||||
static_inventory += sprint_buffer
|
||||
if(!on_new)
|
||||
owner?.client?.screen += using
|
||||
|
||||
@@ -4,13 +4,11 @@
|
||||
/datum/hud/lavaland_elite/New(mob/living/simple_animal/hostile/asteroid/elite)
|
||||
..()
|
||||
|
||||
pull_icon = new /atom/movable/screen/pull()
|
||||
pull_icon = new /atom/movable/screen/pull(null, src)
|
||||
pull_icon.icon = ui_style
|
||||
pull_icon.hud = src
|
||||
pull_icon.update_icon()
|
||||
pull_icon.screen_loc = ui_living_pull
|
||||
static_inventory += pull_icon
|
||||
|
||||
healths = new /atom/movable/screen/healths/lavaland_elite()
|
||||
healths.hud = src
|
||||
healths = new /atom/movable/screen/healths/lavaland_elite(null, src)
|
||||
infodisplay += healths
|
||||
|
||||
+17
-35
@@ -3,48 +3,42 @@
|
||||
var/atom/movable/screen/using
|
||||
var/atom/movable/screen/inventory/inv_box
|
||||
|
||||
action_intent = new /atom/movable/screen/act_intent()
|
||||
action_intent = new /atom/movable/screen/act_intent(null, src)
|
||||
action_intent.icon = ui_style
|
||||
action_intent.icon_state = mymob.a_intent
|
||||
action_intent.screen_loc = ui_acti
|
||||
action_intent.hud = src
|
||||
static_inventory += action_intent
|
||||
|
||||
using = new /atom/movable/screen/mov_intent()
|
||||
using = new /atom/movable/screen/mov_intent(null, src)
|
||||
using.icon = ui_style
|
||||
using.icon_state = (mymob.m_intent == MOVE_INTENT_RUN ? "running" : "walking")
|
||||
using.screen_loc = ui_movi
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new/atom/movable/screen/language_menu
|
||||
using = new/atom/movable/screen/language_menu(null, src)
|
||||
using.icon = ui_style
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/drop()
|
||||
using = new /atom/movable/screen/drop(null, src)
|
||||
using.icon = ui_style
|
||||
using.screen_loc = ui_drop_throw
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
build_hand_slots()
|
||||
|
||||
using = new /atom/movable/screen/swap_hand()
|
||||
using = new /atom/movable/screen/swap_hand(null, src)
|
||||
using.icon = ui_style
|
||||
using.icon_state = "swap_1_m" //extra wide!
|
||||
using.screen_loc = ui_swaphand_position(owner,1)
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/swap_hand()
|
||||
using = new /atom/movable/screen/swap_hand(null, src)
|
||||
using.icon = ui_style
|
||||
using.icon_state = "swap_2"
|
||||
using.screen_loc = ui_swaphand_position(owner,2)
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
inv_box = new /atom/movable/screen/inventory()
|
||||
inv_box = new /atom/movable/screen/inventory(null, src)
|
||||
inv_box.name = "mask"
|
||||
inv_box.icon = ui_style
|
||||
inv_box.icon_state = "mask"
|
||||
@@ -53,7 +47,7 @@
|
||||
inv_box.slot_id = ITEM_SLOT_MASK
|
||||
static_inventory += inv_box
|
||||
|
||||
inv_box = new /atom/movable/screen/inventory()
|
||||
inv_box = new /atom/movable/screen/inventory(null, src)
|
||||
inv_box.name = "neck"
|
||||
inv_box.icon = ui_style
|
||||
inv_box.icon_state = "neck"
|
||||
@@ -62,7 +56,7 @@
|
||||
inv_box.slot_id = ITEM_SLOT_NECK
|
||||
static_inventory += inv_box
|
||||
|
||||
inv_box = new /atom/movable/screen/inventory()
|
||||
inv_box = new /atom/movable/screen/inventory(null, src)
|
||||
inv_box.name = "head"
|
||||
inv_box.icon = ui_style
|
||||
inv_box.icon_state = "head"
|
||||
@@ -71,7 +65,7 @@
|
||||
inv_box.slot_id = ITEM_SLOT_HEAD
|
||||
static_inventory += inv_box
|
||||
|
||||
inv_box = new /atom/movable/screen/inventory()
|
||||
inv_box = new /atom/movable/screen/inventory(null, src)
|
||||
inv_box.name = "back"
|
||||
inv_box.icon = ui_style
|
||||
inv_box.icon_state = "back"
|
||||
@@ -79,53 +73,41 @@
|
||||
inv_box.slot_id = ITEM_SLOT_BACK
|
||||
static_inventory += inv_box
|
||||
|
||||
throw_icon = new /atom/movable/screen/throw_catch()
|
||||
throw_icon = new /atom/movable/screen/throw_catch(null, src)
|
||||
throw_icon.icon = ui_style
|
||||
throw_icon.screen_loc = ui_drop_throw
|
||||
throw_icon.hud = src
|
||||
hotkeybuttons += throw_icon
|
||||
|
||||
internals = new /atom/movable/screen/internals()
|
||||
internals.hud = src
|
||||
infodisplay += internals
|
||||
|
||||
healths = new /atom/movable/screen/healths()
|
||||
healths.hud = src
|
||||
healths = new /atom/movable/screen/healths(null, src)
|
||||
infodisplay += healths
|
||||
|
||||
pull_icon = new /atom/movable/screen/pull()
|
||||
pull_icon = new /atom/movable/screen/pull(null, src)
|
||||
pull_icon.icon = ui_style
|
||||
pull_icon.screen_loc = ui_pull_resist
|
||||
pull_icon.hud = src
|
||||
pull_icon.update_icon()
|
||||
static_inventory += pull_icon
|
||||
|
||||
lingchemdisplay = new /atom/movable/screen/ling/chems()
|
||||
lingchemdisplay.hud = src
|
||||
lingchemdisplay = new /atom/movable/screen/ling/chems(null, src)
|
||||
infodisplay += lingchemdisplay
|
||||
|
||||
lingstingdisplay = new /atom/movable/screen/ling/sting()
|
||||
lingstingdisplay.hud = src
|
||||
lingstingdisplay = new /atom/movable/screen/ling/sting(null, src)
|
||||
infodisplay += lingstingdisplay
|
||||
|
||||
|
||||
zone_select = new /atom/movable/screen/zone_sel()
|
||||
zone_select = new /atom/movable/screen/zone_sel(null, src)
|
||||
zone_select.icon = ui_style
|
||||
zone_select.hud = src
|
||||
zone_select.update_icon()
|
||||
static_inventory += zone_select
|
||||
|
||||
mymob.client.screen = list()
|
||||
|
||||
using = new /atom/movable/screen/resist()
|
||||
using = new /atom/movable/screen/resist(null, src)
|
||||
using.icon = ui_style
|
||||
using.screen_loc = ui_pull_resist
|
||||
using.hud = src
|
||||
hotkeybuttons += using
|
||||
|
||||
for(var/atom/movable/screen/inventory/inv in (static_inventory + toggleable_inventory))
|
||||
if(inv.slot_id)
|
||||
inv.hud = src
|
||||
inv_slots[TOBITSHIFT(inv.slot_id) + 1] = inv
|
||||
inv.update_icon()
|
||||
|
||||
|
||||
+189
-16
@@ -1,9 +1,12 @@
|
||||
#define SHUTTER_MOVEMENT_DURATION 0.4 SECONDS
|
||||
#define SHUTTER_WAIT_DURATION 0.2 SECONDS
|
||||
/// Maximum number of station trait buttons we will display, please think hard before creating scenarios where there are more than this
|
||||
#define MAX_STATION_TRAIT_BUTTONS_VERTICAL 3
|
||||
|
||||
/datum/hud/new_player
|
||||
///Whether the menu is currently on the client's screen or not
|
||||
var/menu_hud_status = TRUE
|
||||
var/list/shown_station_trait_buttons
|
||||
|
||||
/datum/hud/new_player/New(mob/dead/new_player/owner)
|
||||
. = ..()
|
||||
@@ -13,29 +16,89 @@
|
||||
|
||||
/datum/hud/new_player/proc/populate_buttons(mob/dead/new_player/owner)
|
||||
var/list/buttons = subtypesof(/atom/movable/screen/lobby)
|
||||
for(var/button_type in buttons)
|
||||
var/atom/movable/screen/lobby/lobbyscreen = new button_type(our_hud = src)
|
||||
for (var/atom/movable/screen/lobby/lobbyscreen as anything in buttons)
|
||||
if (!initial(lobbyscreen.always_available))
|
||||
continue
|
||||
lobbyscreen = new lobbyscreen(our_hud = src)
|
||||
lobbyscreen.SlowInit()
|
||||
lobbyscreen.hud = src
|
||||
static_inventory += lobbyscreen
|
||||
if(!lobbyscreen.always_shown)
|
||||
lobbyscreen.RegisterSignal(src, COMSIG_HUD_LOBBY_COLLAPSED, TYPE_PROC_REF(/atom/movable/screen/lobby, collapse_button))
|
||||
lobbyscreen.RegisterSignal(src, COMSIG_HUD_LOBBY_EXPANDED, TYPE_PROC_REF(/atom/movable/screen/lobby, expand_button))
|
||||
if(istype(lobbyscreen, /atom/movable/screen/lobby/button))
|
||||
var/atom/movable/screen/lobby/button/lobby_button = lobbyscreen
|
||||
lobby_button.owner = REF(owner)
|
||||
|
||||
if(owner.client.is_localhost())
|
||||
var/atom/movable/screen/lobby/button/start_now/start_button = new(our_hud = src)
|
||||
start_button.SlowInit()
|
||||
static_inventory += start_button
|
||||
start_button.RegisterSignal(src, COMSIG_HUD_LOBBY_COLLAPSED, TYPE_PROC_REF(/atom/movable/screen/lobby, collapse_button))
|
||||
start_button.RegisterSignal(src, COMSIG_HUD_LOBBY_EXPANDED, TYPE_PROC_REF(/atom/movable/screen/lobby, expand_button))
|
||||
|
||||
show_hud(hud_version)
|
||||
|
||||
/// Load and then display the buttons for relevant station traits
|
||||
/datum/hud/new_player/proc/show_station_trait_buttons()
|
||||
var/mob/dead/new_player/user = mymob
|
||||
if (!user.age_verify())
|
||||
return
|
||||
for (var/datum/station_trait/trait as anything in GLOB.lobby_station_traits)
|
||||
if (QDELETED(trait) || !trait.can_display_lobby_button(mymob.client))
|
||||
remove_station_trait_button(trait)
|
||||
continue
|
||||
if(LAZYACCESS(shown_station_trait_buttons, trait))
|
||||
continue
|
||||
var/atom/movable/screen/lobby/button/sign_up/sign_up_button = new(our_hud = src)
|
||||
trait.setup_lobby_button(sign_up_button)
|
||||
static_inventory |= sign_up_button
|
||||
LAZYSET(shown_station_trait_buttons, trait, sign_up_button)
|
||||
RegisterSignal(trait, COMSIG_PARENT_QDELETING, PROC_REF(remove_station_trait_button))
|
||||
|
||||
place_station_trait_buttons()
|
||||
|
||||
/// Display the buttosn for relevant station traits.
|
||||
/datum/hud/new_player/proc/place_station_trait_buttons()
|
||||
if(hud_version != HUD_STYLE_STANDARD || !mymob?.client)
|
||||
return
|
||||
|
||||
var/y_offset = 397
|
||||
var/x_offset = 233
|
||||
var/y_button_offset = 27
|
||||
var/x_button_offset = -27
|
||||
var/iteration = 0
|
||||
for(var/trait in shown_station_trait_buttons)
|
||||
var/atom/movable/screen/lobby/button/sign_up/sign_up_button = shown_station_trait_buttons[trait]
|
||||
iteration++
|
||||
sign_up_button.screen_loc = offset_to_screen_loc(x_offset, y_offset, mymob.client.view)
|
||||
mymob.client.screen |= sign_up_button
|
||||
if (iteration >= MAX_STATION_TRAIT_BUTTONS_VERTICAL)
|
||||
iteration = 0
|
||||
y_offset = 397
|
||||
x_offset += x_button_offset
|
||||
else
|
||||
y_offset += y_button_offset
|
||||
|
||||
/// Remove a station trait button, then re-order the rest.
|
||||
/datum/hud/new_player/proc/remove_station_trait_button(datum/station_trait/trait)
|
||||
SIGNAL_HANDLER
|
||||
var/atom/movable/screen/lobby/button/sign_up/button = LAZYACCESS(shown_station_trait_buttons, trait)
|
||||
if(!button)
|
||||
return
|
||||
LAZYREMOVE(shown_station_trait_buttons, trait)
|
||||
UnregisterSignal(trait, COMSIG_PARENT_QDELETING)
|
||||
static_inventory -= button
|
||||
qdel(button)
|
||||
place_station_trait_buttons()
|
||||
|
||||
/atom/movable/screen/lobby
|
||||
plane = SPLASHSCREEN_PLANE
|
||||
layer = LOBBY_MENU_LAYER
|
||||
screen_loc = "TOP,CENTER"
|
||||
///Whether this HUD element can be hidden from the client's "screen" (moved off-screen) or not
|
||||
var/always_shown = FALSE
|
||||
/// If true we will create this button every time the HUD is generated
|
||||
var/always_available = TRUE
|
||||
|
||||
/atom/movable/screen/lobby/New(loc, datum/hud/our_hud, ...)
|
||||
if(our_hud)
|
||||
hud = our_hud
|
||||
set_new_hud(our_hud)
|
||||
return ..()
|
||||
|
||||
/// Run sleeping actions after initialize
|
||||
@@ -62,15 +125,20 @@
|
||||
screen_loc = "TOP,CENTER:-61"
|
||||
|
||||
/atom/movable/screen/lobby/button
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
///Is the button currently enabled?
|
||||
var/enabled = TRUE
|
||||
VAR_PROTECTED/enabled = TRUE
|
||||
///Is the button currently being hovered over with the mouse?
|
||||
var/highlighted = FALSE
|
||||
/// The ref of the mob that owns this button. Only the owner can click on it.
|
||||
var/owner
|
||||
///Should this button play the select sound?
|
||||
var/select_sound_play = TRUE
|
||||
|
||||
/atom/movable/screen/lobby/button/Click(location, control, params)
|
||||
if(owner != REF(usr))
|
||||
if(usr != get_mob())
|
||||
return
|
||||
|
||||
var/mob/dead/new_player/user = usr
|
||||
if(!user.age_verify())
|
||||
return
|
||||
|
||||
. = ..()
|
||||
@@ -78,11 +146,19 @@
|
||||
if(!enabled)
|
||||
return
|
||||
flick("[base_icon_state]_pressed", src)
|
||||
if(select_sound_play)
|
||||
var/sound/ui_select_sound = sound('sound/misc/menu/ui_select1.ogg')
|
||||
ui_select_sound.frequency = get_rand_frequency_low_range()
|
||||
SEND_SOUND(hud.mymob, ui_select_sound)
|
||||
update_appearance(UPDATE_ICON)
|
||||
return TRUE
|
||||
|
||||
/atom/movable/screen/lobby/button/MouseEntered(location,control,params)
|
||||
if(owner != REF(usr))
|
||||
if(usr != get_mob())
|
||||
return
|
||||
|
||||
var/mob/dead/new_player/user = usr
|
||||
if(!user.age_verify())
|
||||
return
|
||||
|
||||
. = ..()
|
||||
@@ -90,7 +166,11 @@
|
||||
update_appearance(UPDATE_ICON)
|
||||
|
||||
/atom/movable/screen/lobby/button/MouseExited()
|
||||
if(owner != REF(usr))
|
||||
if(usr != get_mob())
|
||||
return
|
||||
|
||||
var/mob/dead/new_player/user = usr
|
||||
if(!user.age_verify())
|
||||
return
|
||||
|
||||
. = ..()
|
||||
@@ -113,6 +193,7 @@
|
||||
return FALSE
|
||||
enabled = status
|
||||
update_appearance(UPDATE_ICON)
|
||||
mouse_over_pointer = enabled ? MOUSE_HAND_POINTER : MOUSE_INACTIVE_POINTER
|
||||
return TRUE
|
||||
|
||||
///Prefs menu
|
||||
@@ -176,6 +257,7 @@
|
||||
new_player.ready = PLAYER_NOT_READY
|
||||
base_icon_state = "not_ready"
|
||||
update_appearance(UPDATE_ICON)
|
||||
SEND_SIGNAL(hud, COMSIG_HUD_PLAYER_READY_TOGGLE)
|
||||
|
||||
///Shown when the game has started
|
||||
/atom/movable/screen/lobby/button/join
|
||||
@@ -184,12 +266,13 @@
|
||||
icon = 'icons/hud/lobby/join.dmi'
|
||||
icon_state = "" //Default to not visible
|
||||
base_icon_state = "join_game"
|
||||
enabled = FALSE
|
||||
enabled = null // set in init
|
||||
|
||||
/atom/movable/screen/lobby/button/join/Initialize(mapload)
|
||||
. = ..()
|
||||
switch(SSticker.current_state)
|
||||
if(GAME_STATE_PREGAME, GAME_STATE_STARTUP)
|
||||
set_button_status(FALSE)
|
||||
RegisterSignal(SSticker, COMSIG_TICKER_ENTER_SETTING_UP, PROC_REF(show_join_button))
|
||||
if(GAME_STATE_SETTING_UP)
|
||||
set_button_status(TRUE)
|
||||
@@ -248,13 +331,14 @@
|
||||
icon = 'icons/hud/lobby/observe.dmi'
|
||||
icon_state = "observe_disabled"
|
||||
base_icon_state = "observe"
|
||||
enabled = FALSE
|
||||
enabled = null // set in init
|
||||
|
||||
/atom/movable/screen/lobby/button/observe/Initialize(mapload)
|
||||
. = ..()
|
||||
if(SSticker.current_state > GAME_STATE_STARTUP)
|
||||
set_button_status(TRUE)
|
||||
else
|
||||
set_button_status(FALSE)
|
||||
RegisterSignal(SSticker, COMSIG_TICKER_ENTER_PREGAME, PROC_REF(enable_observing))
|
||||
|
||||
/atom/movable/screen/lobby/button/observe/Click(location, control, params)
|
||||
@@ -376,6 +460,23 @@
|
||||
var/mob/dead/new_player/new_player = hud.mymob
|
||||
new_player.handle_player_polling()
|
||||
|
||||
/// A generic "sign up" button used by station traits
|
||||
/atom/movable/screen/lobby/button/sign_up
|
||||
icon = 'icons/hud/lobby/signup_button.dmi'
|
||||
icon_state = "signup"
|
||||
base_icon_state = "signup"
|
||||
always_available = FALSE
|
||||
|
||||
/atom/movable/screen/lobby/button/sign_up/MouseEntered(location, control, params)
|
||||
. = ..()
|
||||
if(QDELETED(src) || !desc)
|
||||
return
|
||||
openToolTip(usr, tip_src = src, params = params, title = name, content = desc,)
|
||||
|
||||
/atom/movable/screen/lobby/button/sign_up/MouseExited()
|
||||
. = ..()
|
||||
closeToolTip(usr)
|
||||
|
||||
/atom/movable/screen/lobby/button/collapse
|
||||
name = "Collapse Lobby Menu"
|
||||
icon = 'icons/hud/lobby/collapse_expand.dmi'
|
||||
@@ -385,6 +486,27 @@
|
||||
screen_loc = "TOP:-82,CENTER:-54"
|
||||
always_shown = TRUE
|
||||
|
||||
var/blip_enabled = TRUE
|
||||
|
||||
/atom/movable/screen/lobby/button/collapse/Initialize(mapload, datum/hud/hud_owner)
|
||||
. = ..()
|
||||
switch(SSticker.current_state)
|
||||
if(GAME_STATE_PREGAME, GAME_STATE_STARTUP)
|
||||
RegisterSignal(SSticker, COMSIG_TICKER_ENTER_SETTING_UP, PROC_REF(disable_blip))
|
||||
RegisterSignal(hud, COMSIG_HUD_PLAYER_READY_TOGGLE, PROC_REF(on_player_ready_toggle))
|
||||
if(GAME_STATE_SETTING_UP)
|
||||
blip_enabled = FALSE
|
||||
RegisterSignal(SSticker, COMSIG_TICKER_ERROR_SETTING_UP, PROC_REF(enable_blip))
|
||||
else
|
||||
blip_enabled = FALSE
|
||||
|
||||
add_overlay(get_blip_overlay())
|
||||
update_icon(UPDATE_OVERLAYS)
|
||||
|
||||
/atom/movable/screen/lobby/button/collapse/update_overlays()
|
||||
. = ..()
|
||||
. += get_blip_overlay()
|
||||
|
||||
/atom/movable/screen/lobby/button/collapse/Click(location, control, params)
|
||||
. = ..()
|
||||
if(!.)
|
||||
@@ -414,6 +536,38 @@
|
||||
sleep(2 * SHUTTER_MOVEMENT_DURATION + SHUTTER_WAIT_DURATION)
|
||||
set_button_status(TRUE)
|
||||
|
||||
///Proc to update the ready blip state upon new player's ready status change
|
||||
/atom/movable/screen/lobby/button/collapse/proc/on_player_ready_toggle()
|
||||
SIGNAL_HANDLER
|
||||
update_appearance(UPDATE_ICON)
|
||||
|
||||
///Returns a ready blip overlay depending on the player's ready state
|
||||
/atom/movable/screen/lobby/button/collapse/proc/get_blip_overlay()
|
||||
var/blip_icon_state = "ready_blip"
|
||||
if(blip_enabled && hud)
|
||||
var/mob/dead/new_player/new_player = hud.mymob
|
||||
blip_icon_state += "_[new_player.ready ? "" : "not_"]ready"
|
||||
else
|
||||
blip_icon_state += "_disabled"
|
||||
var/mutable_appearance/ready_blip = mutable_appearance(icon, blip_icon_state)
|
||||
return ready_blip
|
||||
|
||||
///Disables the ready blip; makes us listen for the setup error to re-enable the blip
|
||||
/atom/movable/screen/lobby/button/collapse/proc/disable_blip()
|
||||
SIGNAL_HANDLER
|
||||
blip_enabled = FALSE
|
||||
UnregisterSignal(SSticker, COMSIG_TICKER_ENTER_SETTING_UP)
|
||||
RegisterSignal(SSticker, COMSIG_TICKER_ERROR_SETTING_UP, PROC_REF(enable_blip))
|
||||
update_appearance(UPDATE_ICON)
|
||||
|
||||
///Enables the ready blip; makes us listen for the setup completion and game start to disable the blip
|
||||
/atom/movable/screen/lobby/button/collapse/proc/enable_blip()
|
||||
SIGNAL_HANDLER
|
||||
blip_enabled = TRUE
|
||||
UnregisterSignal(SSticker, COMSIG_TICKER_ERROR_SETTING_UP)
|
||||
RegisterSignal(SSticker, COMSIG_TICKER_ENTER_SETTING_UP, PROC_REF(disable_blip))
|
||||
update_appearance(UPDATE_ICON)
|
||||
|
||||
///Moves the button to the top of the screen, leaving only the screen part in view
|
||||
///Sends a signal on the hud for the menu hud elements to listen to
|
||||
/atom/movable/screen/lobby/button/collapse/proc/collapse_menu()
|
||||
@@ -422,12 +576,14 @@
|
||||
animate(src, transform = transform, time = SHUTTER_MOVEMENT_DURATION + SHUTTER_WAIT_DURATION)
|
||||
//then pull the button up with the shutter and leave it on the edge of the screen
|
||||
animate(transform = transform.Translate(x = 0, y = 134), time = SHUTTER_MOVEMENT_DURATION, easing = CUBIC_EASING|EASE_IN)
|
||||
SEND_SOUND(hud.mymob, sound('sound/misc/menu/menu_rollup1.ogg'))
|
||||
|
||||
///Extends the button back to its usual spot
|
||||
///Sends a signal on the hud for the menu hud elements to listen to
|
||||
/atom/movable/screen/lobby/button/collapse/proc/expand_menu()
|
||||
SEND_SIGNAL(hud, COMSIG_HUD_LOBBY_EXPANDED)
|
||||
animate(src, transform = matrix(), time = SHUTTER_MOVEMENT_DURATION, easing = CUBIC_EASING|EASE_OUT)
|
||||
SEND_SOUND(hud.mymob, sound('sound/misc/menu/menu_rolldown1.ogg'))
|
||||
|
||||
/atom/movable/screen/lobby/shutter
|
||||
icon = 'icons/hud/lobby/shutter.dmi'
|
||||
@@ -448,5 +604,22 @@
|
||||
//pull the shutter back off-screen
|
||||
animate(transform = matrix(), time = SHUTTER_MOVEMENT_DURATION, easing = CUBIC_EASING|EASE_IN)
|
||||
|
||||
/// LOCALHOST ONLY - Start Now button
|
||||
/atom/movable/screen/lobby/button/start_now
|
||||
name = "Start Now (LOCALHOST ONLY)"
|
||||
screen_loc = "TOP:-146,CENTER:-54"
|
||||
icon = 'icons/hud/lobby/start_now.dmi'
|
||||
icon_state = "start_now"
|
||||
base_icon_state = "start_now"
|
||||
always_available = FALSE
|
||||
select_sound_play = FALSE
|
||||
|
||||
/atom/movable/screen/lobby/button/start_now/Click(location, control, params)
|
||||
. = ..()
|
||||
if(!. || !usr.client.is_localhost() || !check_rights_for(usr.client, R_SERVER))
|
||||
return
|
||||
SEND_SOUND(hud.mymob, sound('sound/effects/splat.ogg', volume = 50))
|
||||
SSticker.start_immediately = TRUE
|
||||
|
||||
#undef SHUTTER_MOVEMENT_DURATION
|
||||
#undef SHUTTER_WAIT_DURATION
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
///Atom that manages and controls multiple planes. It's an atom so we can hook into add_filter etc. Multiple controllers can control one plane.
|
||||
/atom/movable/plane_master_controller
|
||||
///List of planes in this controllers control. Initially this is a normal list, but becomes an assoc list of plane numbers as strings | plane instance
|
||||
var/list/controlled_planes = list()
|
||||
///hud that owns this controller
|
||||
var/datum/hud/owner_hud
|
||||
|
||||
|
||||
INITIALIZE_IMMEDIATE(/atom/movable/plane_master_controller)
|
||||
|
||||
///Ensures that all the planes are correctly in the controlled_planes list.
|
||||
/atom/movable/plane_master_controller/Initialize(mapload, datum/hud/hud)
|
||||
. = ..()
|
||||
owner_hud = hud
|
||||
var/assoc_controlled_planes = list()
|
||||
for(var/i in controlled_planes)
|
||||
var/atom/movable/screen/plane_master/instance = owner_hud.plane_masters["[i]"]
|
||||
if(!instance) //If we looked for a hud that isn't instanced, just keep going
|
||||
stack_trace("[i] isn't a valid plane master layer for [owner_hud.type], are you sure it exists in the first place?")
|
||||
continue
|
||||
assoc_controlled_planes["[i]"] = instance
|
||||
controlled_planes = assoc_controlled_planes
|
||||
|
||||
// From BeeStation
|
||||
/atom/movable/plane_master_controller/Destroy()
|
||||
if(owner_hud)
|
||||
owner_hud.plane_master_controllers -= src
|
||||
controlled_planes.Cut()
|
||||
return ..()
|
||||
|
||||
///Full override so we can just use filterrific
|
||||
/atom/movable/plane_master_controller/add_filter(name, priority, list/params)
|
||||
. = ..()
|
||||
for(var/i in controlled_planes)
|
||||
var/atom/movable/screen/plane_master/pm_iterator = controlled_planes[i]
|
||||
pm_iterator.add_filter(name, priority, params)
|
||||
|
||||
///Full override so we can just use filterrific
|
||||
/atom/movable/plane_master_controller/remove_filter(name_or_names)
|
||||
. = ..()
|
||||
for(var/i in controlled_planes)
|
||||
var/atom/movable/screen/plane_master/pm_iterator = controlled_planes[i]
|
||||
pm_iterator.remove_filter(name_or_names)
|
||||
|
||||
/atom/movable/plane_master_controller/update_filters()
|
||||
. = ..()
|
||||
for(var/i in controlled_planes)
|
||||
var/atom/movable/screen/plane_master/pm_iterator = controlled_planes[i]
|
||||
pm_iterator.update_filters()
|
||||
|
||||
///Gets all filters for this controllers plane masters
|
||||
/atom/movable/plane_master_controller/proc/get_filters(name)
|
||||
. = list()
|
||||
for(var/i in controlled_planes)
|
||||
var/atom/movable/screen/plane_master/pm_iterator = controlled_planes[i]
|
||||
. += pm_iterator.get_filter(name)
|
||||
|
||||
///Transitions all filters owned by this plane master controller
|
||||
/atom/movable/plane_master_controller/transition_filter(name, time, list/new_params, easing, loop)
|
||||
. = ..()
|
||||
for(var/i in controlled_planes)
|
||||
var/atom/movable/screen/plane_master/pm_iterator = controlled_planes[i]
|
||||
pm_iterator.transition_filter(name, time, new_params, easing, loop)
|
||||
|
||||
///Full override so we can just use filterrific
|
||||
/atom/movable/plane_master_controller/add_atom_colour(coloration, colour_priority)
|
||||
. = ..()
|
||||
for(var/i in controlled_planes)
|
||||
var/atom/movable/screen/plane_master/pm_iterator = controlled_planes[i]
|
||||
pm_iterator.add_atom_colour(coloration, colour_priority)
|
||||
|
||||
|
||||
///Removes an instance of colour_type from the atom's atom_colours list
|
||||
/atom/movable/plane_master_controller/remove_atom_colour(colour_priority, coloration)
|
||||
. = ..()
|
||||
for(var/i in controlled_planes)
|
||||
var/atom/movable/screen/plane_master/pm_iterator = controlled_planes[i]
|
||||
pm_iterator.remove_atom_colour(colour_priority, coloration)
|
||||
|
||||
|
||||
///Resets the atom's color to null, and then sets it to the highest priority colour available
|
||||
/atom/movable/plane_master_controller/update_atom_colour()
|
||||
for(var/i in controlled_planes)
|
||||
var/atom/movable/screen/plane_master/pm_iterator = controlled_planes[i]
|
||||
pm_iterator.update_atom_colour()
|
||||
|
||||
|
||||
/atom/movable/plane_master_controller/game
|
||||
name = PLANE_MASTERS_GAME
|
||||
controlled_planes = list(FLOOR_PLANE, GAME_PLANE, WALL_PLANE, ABOVE_WALL_PLANE, LIGHTING_PLANE, EMISSIVE_PLANE)
|
||||
@@ -7,8 +7,8 @@
|
||||
icon_state = "radial_center"
|
||||
|
||||
/atom/movable/screen/radial/persistent/center/Click(location, control, params)
|
||||
if(usr.client == parent.current_user)
|
||||
parent.element_chosen(null,usr)
|
||||
if(usr == get_mob())
|
||||
parent.element_chosen(null, usr)
|
||||
|
||||
/atom/movable/screen/radial/persistent/center/MouseEntered(location, control, params)
|
||||
. = ..()
|
||||
|
||||
@@ -2,6 +2,5 @@
|
||||
/datum/hud/revenant/New(mob/owner)
|
||||
..()
|
||||
|
||||
healths = new /atom/movable/screen/healths/revenant()
|
||||
healths.hud = src
|
||||
healths = new /atom/movable/screen/healths/revenant(null, src)
|
||||
infodisplay += healths
|
||||
|
||||
+20
-39
@@ -1,5 +1,6 @@
|
||||
/atom/movable/screen/robot
|
||||
icon = 'icons/mob/screen_cyborg.dmi'
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
|
||||
/atom/movable/screen/robot/module
|
||||
name = "cyborg module"
|
||||
@@ -77,64 +78,56 @@
|
||||
var/mob/living/silicon/robot/robit = mymob
|
||||
var/atom/movable/screen/using
|
||||
|
||||
using = new/atom/movable/screen/language_menu
|
||||
using = new/atom/movable/screen/language_menu(null, src)
|
||||
using.screen_loc = ui_borg_language_menu
|
||||
static_inventory += using
|
||||
|
||||
//Radio
|
||||
using = new /atom/movable/screen/robot/radio()
|
||||
using = new /atom/movable/screen/robot/radio(null, src)
|
||||
using.screen_loc = ui_borg_radio
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
//Module select
|
||||
if(!robit.inv1)
|
||||
robit.inv1 = new /atom/movable/screen/robot/module1()
|
||||
robit.inv1 = new /atom/movable/screen/robot/module1(null, src)
|
||||
|
||||
robit.inv1.screen_loc = ui_inv1
|
||||
robit.inv1.hud = src
|
||||
static_inventory += robit.inv1
|
||||
|
||||
if(!robit.inv2)
|
||||
robit.inv2 = new /atom/movable/screen/robot/module2()
|
||||
robit.inv2 = new /atom/movable/screen/robot/module2(null, src)
|
||||
|
||||
robit.inv2.screen_loc = ui_inv2
|
||||
robit.inv2.hud = src
|
||||
static_inventory += robit.inv2
|
||||
|
||||
if(!robit.inv3)
|
||||
robit.inv3 = new /atom/movable/screen/robot/module3()
|
||||
robit.inv3 = new /atom/movable/screen/robot/module3(null, src)
|
||||
|
||||
robit.inv3.screen_loc = ui_inv3
|
||||
robit.inv3.hud = src
|
||||
static_inventory += robit.inv3
|
||||
|
||||
//End of module select
|
||||
|
||||
using = new /atom/movable/screen/robot/lamp()
|
||||
using = new /atom/movable/screen/robot/lamp(null, src)
|
||||
using.screen_loc = ui_borg_lamp
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
robit.lampButton = using
|
||||
var/atom/movable/screen/robot/lamp/lampscreen = using
|
||||
lampscreen.robot = robit
|
||||
|
||||
//Photography stuff
|
||||
using = new /atom/movable/screen/ai/image_take()
|
||||
using = new /atom/movable/screen/ai/image_take(null, src)
|
||||
using.screen_loc = ui_borg_camera
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
//Sec/Med HUDs
|
||||
using = new /atom/movable/screen/robot/sensors()
|
||||
using = new /atom/movable/screen/robot/sensors(null, src)
|
||||
using.screen_loc = ui_borg_sensor
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
//Borg Integrated Tablet
|
||||
using = new /atom/movable/screen/robot/modPC()
|
||||
using = new /atom/movable/screen/robot/modPC(null, src)
|
||||
using.screen_loc = ui_borg_tablet
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
robit.interfaceButton = using
|
||||
if(robit.modularInterface)
|
||||
@@ -143,64 +136,54 @@
|
||||
tabletbutton.robot = robit
|
||||
|
||||
//Alerts
|
||||
using = new /atom/movable/screen/robot/alerts()
|
||||
using = new /atom/movable/screen/robot/alerts(null, src)
|
||||
using.screen_loc = ui_borg_alerts
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
//Thrusters
|
||||
using = new /atom/movable/screen/robot/thrusters()
|
||||
using = new /atom/movable/screen/robot/thrusters(null, src)
|
||||
using.screen_loc = ui_borg_thrusters
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
robit.thruster_button = using
|
||||
|
||||
//PDA message
|
||||
using = new /atom/movable/screen/robot/pda_msg_send
|
||||
using = new /atom/movable/screen/robot/pda_msg_send(null, src)
|
||||
using.screen_loc = ui_borg_pda_send
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
//PDA log
|
||||
using = new /atom/movable/screen/robot/pda_msg_show
|
||||
using = new /atom/movable/screen/robot/pda_msg_show(null, src)
|
||||
using.screen_loc = ui_borg_pda_log
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
//Intent
|
||||
action_intent = new /atom/movable/screen/act_intent/robot()
|
||||
action_intent = new /atom/movable/screen/act_intent/robot(null, src)
|
||||
action_intent.icon_state = mymob.a_intent
|
||||
action_intent.hud = src
|
||||
static_inventory += action_intent
|
||||
|
||||
assert_move_intent_ui(owner, TRUE)
|
||||
|
||||
//Health
|
||||
healths = new /atom/movable/screen/healths/robot()
|
||||
healths.hud = src
|
||||
healths = new /atom/movable/screen/healths/robot(null, src)
|
||||
infodisplay += healths
|
||||
|
||||
//Installed Module
|
||||
robit.hands = new /atom/movable/screen/robot/module()
|
||||
robit.hands = new /atom/movable/screen/robot/module(null, src)
|
||||
robit.hands.screen_loc = ui_borg_module
|
||||
robit.hands.hud = src
|
||||
static_inventory += robit.hands
|
||||
|
||||
//Store
|
||||
module_store_icon = new /atom/movable/screen/robot/store()
|
||||
module_store_icon = new /atom/movable/screen/robot/store(null, src)
|
||||
module_store_icon.screen_loc = ui_borg_store
|
||||
module_store_icon.hud = src
|
||||
|
||||
pull_icon = new /atom/movable/screen/pull()
|
||||
pull_icon = new /atom/movable/screen/pull(null, src)
|
||||
pull_icon.icon = 'icons/mob/screen_cyborg.dmi'
|
||||
pull_icon.screen_loc = ui_borg_pull
|
||||
pull_icon.hud = src
|
||||
pull_icon.update_icon()
|
||||
hotkeybuttons += pull_icon
|
||||
|
||||
|
||||
zone_select = new /atom/movable/screen/zone_sel/robot()
|
||||
zone_select.hud = src
|
||||
zone_select = new /atom/movable/screen/zone_sel/robot(null, src)
|
||||
zone_select.update_icon()
|
||||
static_inventory += zone_select
|
||||
|
||||
@@ -221,7 +204,6 @@
|
||||
using = new /atom/movable/screen/mov_intent
|
||||
using.icon = 'modular_citadel/icons/ui/screen_cyborg.dmi'
|
||||
using.screen_loc = ui_borg_movi
|
||||
using.hud = src
|
||||
using.update_icon()
|
||||
static_inventory += using
|
||||
if(!on_new)
|
||||
@@ -235,7 +217,6 @@
|
||||
using.icon = 'modular_citadel/icons/ui/screen_cyborg.dmi'
|
||||
using.icon_state = owner.cansprint ? ((owner.combat_flags & COMBAT_FLAG_SPRINT_ACTIVE) ? "act_sprint_on" : "act_sprint") : "act_sprint_locked"
|
||||
using.screen_loc = ui_borg_movi
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
if(!on_new)
|
||||
owner?.client?.screen += using
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
/// A reference to the object in the slot. Grabs or items, generally.
|
||||
var/obj/master = null
|
||||
/// A reference to the owner HUD, if any.
|
||||
var/datum/hud/hud = null
|
||||
VAR_PRIVATE/datum/hud/hud = null
|
||||
/**
|
||||
* Map name assigned to this object.
|
||||
* Automatically set by /client/proc/add_obj_to_map.
|
||||
@@ -31,12 +31,36 @@
|
||||
* But for now, this works.
|
||||
*/
|
||||
var/del_on_map_removal = TRUE
|
||||
/// If FALSE, this will not be cleared when calling /client/clear_screen()
|
||||
// var/clear_with_screen = TRUE // Unimplemented
|
||||
/// If TRUE, clicking the screen element will fall through and perform a default "Click" call
|
||||
/// Obviously this requires your Click override, if any, to call parent on their own.
|
||||
/// This is set to FALSE to default to dissade you from doing this.
|
||||
/// Generally we don't want default Click stuff, which results in bugs like using Telekinesis on a screen element
|
||||
/// or trying to point your gun at your screen.
|
||||
var/default_click = FALSE
|
||||
|
||||
/atom/movable/screen/Initialize(mapload, datum/hud/hud_owner)
|
||||
. = ..()
|
||||
if(isnull(hud_owner)) //some screens set their hud owners on /new, this prevents overriding them with null post atoms init
|
||||
return
|
||||
set_new_hud(hud_owner)
|
||||
|
||||
/atom/movable/screen/Destroy()
|
||||
master = null
|
||||
hud = null
|
||||
return ..()
|
||||
|
||||
/atom/movable/screen/Click(location, control, params)
|
||||
if(flags_1 & INITIALIZED_1)
|
||||
SEND_SIGNAL(src, COMSIG_SCREEN_ELEMENT_CLICK, location, control, params, usr)
|
||||
if(default_click)
|
||||
return ..()
|
||||
|
||||
///Screen elements are always on top of the players screen and don't move so yes they are adjacent
|
||||
/atom/movable/screen/Adjacent(atom/neighbor, atom/target, atom/movable/mover)
|
||||
return TRUE
|
||||
|
||||
/atom/movable/screen/examine(mob/user)
|
||||
return list()
|
||||
|
||||
@@ -46,6 +70,26 @@
|
||||
/atom/movable/screen/proc/component_click(atom/movable/screen/component_button/component, params)
|
||||
return
|
||||
|
||||
///setter used to set our new hud
|
||||
/atom/movable/screen/proc/set_new_hud(datum/hud/hud_owner)
|
||||
if(hud)
|
||||
UnregisterSignal(hud, COMSIG_PARENT_QDELETING)
|
||||
if(isnull(hud_owner))
|
||||
hud = null
|
||||
return
|
||||
hud = hud_owner
|
||||
RegisterSignal(hud, COMSIG_PARENT_QDELETING, PROC_REF(on_hud_delete))
|
||||
|
||||
/// Returns the mob this is being displayed to, if any
|
||||
/atom/movable/screen/proc/get_mob()
|
||||
RETURN_TYPE(/mob)
|
||||
return hud?.mymob
|
||||
|
||||
/atom/movable/screen/proc/on_hud_delete(datum/source)
|
||||
SIGNAL_HANDLER
|
||||
|
||||
set_new_hud(hud_owner = null)
|
||||
|
||||
/atom/movable/screen/text
|
||||
icon = null
|
||||
icon_state = null
|
||||
@@ -57,6 +101,7 @@
|
||||
/atom/movable/screen/swap_hand
|
||||
plane = HUD_PLANE
|
||||
name = "swap hand"
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
|
||||
/atom/movable/screen/swap_hand/Click()
|
||||
// At this point in client Click() code we have passed the 1/10 sec check and little else
|
||||
@@ -85,12 +130,14 @@
|
||||
icon = 'icons/mob/screen_midnight.dmi'
|
||||
icon_state = "craft"
|
||||
screen_loc = ui_crafting
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
|
||||
/atom/movable/screen/area_creator
|
||||
name = "create new area"
|
||||
icon = 'icons/mob/screen_midnight.dmi'
|
||||
icon_state = "area_edit"
|
||||
screen_loc = ui_building
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
|
||||
/atom/movable/screen/area_creator/Click()
|
||||
if(usr.incapacitated() || (isobserver(usr) && !IsAdminGhost(usr)))
|
||||
@@ -106,11 +153,10 @@
|
||||
icon = 'icons/mob/screen_midnight.dmi'
|
||||
icon_state = "talk_wheel"
|
||||
screen_loc = ui_language_menu
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
|
||||
/atom/movable/screen/language_menu/Click()
|
||||
var/mob/M = usr
|
||||
var/datum/language_holder/H = M.get_language_holder()
|
||||
H.open_language_menu(usr)
|
||||
usr.get_language_holder().open_language_menu(usr)
|
||||
|
||||
/atom/movable/screen/inventory
|
||||
/// The identifier for the slot. It has nothing to do with ID cards.
|
||||
@@ -172,7 +218,7 @@
|
||||
var/image/item_overlay = image(holding)
|
||||
item_overlay.alpha = 92
|
||||
|
||||
if(!user.can_equip(holding, slot_id, disable_warning = TRUE, bypass_equip_delay_self = TRUE))
|
||||
if(!holding.mob_can_equip(user, slot_id, disable_warning = TRUE, bypass_equip_delay_self = TRUE))
|
||||
item_overlay.color = "#FF0000"
|
||||
else
|
||||
item_overlay.color = "#00ff00"
|
||||
@@ -247,6 +293,7 @@
|
||||
icon = 'icons/mob/screen_midnight.dmi'
|
||||
icon_state = "act_drop"
|
||||
plane = HUD_PLANE
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
|
||||
/atom/movable/screen/drop/Click()
|
||||
if(usr.stat == CONSCIOUS)
|
||||
@@ -256,6 +303,7 @@
|
||||
name = "intent"
|
||||
icon_state = "help"
|
||||
screen_loc = ui_acti
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
|
||||
/atom/movable/screen/act_intent/Click(location, control, params)
|
||||
usr.a_intent_change(INTENT_HOTKEY_RIGHT)
|
||||
@@ -287,76 +335,11 @@
|
||||
icon = 'icons/mob/screen_cyborg.dmi'
|
||||
screen_loc = ui_borg_intents
|
||||
|
||||
/atom/movable/screen/internals
|
||||
name = "toggle internals"
|
||||
icon_state = "internal0"
|
||||
screen_loc = ui_internal
|
||||
|
||||
/atom/movable/screen/internals/Click()
|
||||
if(!iscarbon(usr))
|
||||
return
|
||||
var/mob/living/carbon/C = usr
|
||||
if(C.incapacitated())
|
||||
return
|
||||
|
||||
if(C.internal)
|
||||
C.internal = null
|
||||
to_chat(C, span_notice("You are no longer running on internals."))
|
||||
icon_state = "internal0"
|
||||
else
|
||||
if(!C.getorganslot(ORGAN_SLOT_BREATHING_TUBE))
|
||||
if(HAS_TRAIT(C, TRAIT_NO_INTERNALS))
|
||||
to_chat(C, span_warning("Due to cumbersome equipment or anatomy, you are currently unable to use internals!"))
|
||||
return
|
||||
var/obj/item/clothing/check
|
||||
var/internals = FALSE
|
||||
|
||||
for(check in GET_INTERNAL_SLOTS(C))
|
||||
if(istype(check, /obj/item/clothing/mask))
|
||||
var/obj/item/clothing/mask/M = check
|
||||
if(M.mask_adjusted)
|
||||
M.adjustmask(C)
|
||||
if((check.clothing_flags & ALLOWINTERNALS))
|
||||
internals = TRUE
|
||||
if(!internals)
|
||||
to_chat(C, span_warning("You are not wearing an internals mask!"))
|
||||
return
|
||||
|
||||
var/obj/item/I = C.is_holding_item_of_type(/obj/item/tank)
|
||||
if(I)
|
||||
to_chat(C, span_notice("You are now running on internals from [I] in your [C.get_held_index_name(C.get_held_index_of_item(I))]."))
|
||||
C.internal = I
|
||||
else if(ishuman(C))
|
||||
var/mob/living/carbon/human/H = C
|
||||
if(istype(H.s_store, /obj/item/tank))
|
||||
to_chat(H, span_notice("You are now running on internals from [H.s_store] on your [H.wear_suit.name]."))
|
||||
H.internal = H.s_store
|
||||
else if(istype(H.belt, /obj/item/tank))
|
||||
to_chat(H, span_notice("You are now running on internals from [H.belt] on your belt."))
|
||||
H.internal = H.belt
|
||||
else if(istype(H.l_store, /obj/item/tank))
|
||||
to_chat(H, span_notice("You are now running on internals from [H.l_store] in your left pocket."))
|
||||
H.internal = H.l_store
|
||||
else if(istype(H.r_store, /obj/item/tank))
|
||||
to_chat(H, span_notice("You are now running on internals from [H.r_store] in your right pocket."))
|
||||
H.internal = H.r_store
|
||||
|
||||
//Separate so CO2 jetpacks are a little less cumbersome.
|
||||
if(!C.internal && istype(C.back, /obj/item/tank))
|
||||
to_chat(C, span_notice("You are now running on internals from [C.back] on your back."))
|
||||
C.internal = C.back
|
||||
|
||||
if(C.internal)
|
||||
icon_state = "internal1"
|
||||
else
|
||||
to_chat(C, span_warning("You don't have an oxygen tank!"))
|
||||
return
|
||||
C.update_action_buttons_icon()
|
||||
|
||||
/atom/movable/screen/mov_intent
|
||||
name = "run/walk toggle"
|
||||
icon = 'icons/mob/screen_midnight.dmi'
|
||||
icon_state = "running"
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
|
||||
/atom/movable/screen/mov_intent/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -366,7 +349,10 @@
|
||||
toggle(usr)
|
||||
|
||||
/atom/movable/screen/mov_intent/update_icon_state()
|
||||
switch(hud?.mymob?.m_intent)
|
||||
if(!hud || !hud.mymob || !isliving(hud.mymob))
|
||||
return
|
||||
var/mob/living/living_hud_owner = hud.mymob
|
||||
switch(living_hud_owner.m_intent)
|
||||
if(MOVE_INTENT_WALK)
|
||||
icon_state = CONFIG_GET(flag/sprint_enabled)? "walking" : "walking_nosprint"
|
||||
if(MOVE_INTENT_RUN)
|
||||
@@ -382,6 +368,8 @@
|
||||
name = "stop pulling"
|
||||
icon = 'icons/mob/screen_midnight.dmi'
|
||||
icon_state = "pull"
|
||||
base_icon_state = "pull"
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
|
||||
/atom/movable/screen/pull/Click()
|
||||
if(isobserver(usr))
|
||||
@@ -389,17 +377,14 @@
|
||||
usr.stop_pulling()
|
||||
|
||||
/atom/movable/screen/pull/update_icon_state()
|
||||
if(hud?.mymob?.pulling)
|
||||
icon_state = "pull"
|
||||
else
|
||||
icon_state = "pull0"
|
||||
icon_state = "[base_icon_state][hud?.mymob?.pulling ? null : 0]"
|
||||
return ..()
|
||||
|
||||
/atom/movable/screen/resist
|
||||
name = "resist"
|
||||
icon = 'icons/mob/screen_midnight.dmi'
|
||||
icon_state = "act_resist"
|
||||
plane = HUD_PLANE
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
|
||||
/atom/movable/screen/resist/Click()
|
||||
if(isliving(usr))
|
||||
@@ -411,7 +396,7 @@
|
||||
icon = 'icons/mob/screen_midnight.dmi'
|
||||
icon_state = "act_rest"
|
||||
base_icon_state = "act_rest"
|
||||
plane = HUD_PLANE
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
|
||||
/atom/movable/screen/rest/Click()
|
||||
if(isliving(usr))
|
||||
@@ -429,6 +414,7 @@
|
||||
name = "throw/catch"
|
||||
icon = 'icons/mob/screen_midnight.dmi'
|
||||
icon_state = "act_throw_off"
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
|
||||
/atom/movable/screen/throw_catch/Click()
|
||||
if(iscarbon(usr))
|
||||
@@ -439,6 +425,7 @@
|
||||
name = "damage zone"
|
||||
icon_state = "zone_sel"
|
||||
screen_loc = ui_zonesel
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
var/overlay_icon = 'icons/mob/screen_gen.dmi'
|
||||
var/static/list/hover_overlays_cache = list()
|
||||
var/hovering
|
||||
@@ -641,6 +628,7 @@
|
||||
/atom/movable/screen/healthdoll
|
||||
name = "health doll"
|
||||
screen_loc = ui_healthdoll
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
|
||||
/atom/movable/screen/healthdoll/Click()
|
||||
if (iscarbon(usr))
|
||||
@@ -656,6 +644,7 @@
|
||||
name = "mood"
|
||||
icon_state = "mood5"
|
||||
screen_loc = ui_mood
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
|
||||
/atom/movable/screen/mood/attack_tk()
|
||||
return
|
||||
@@ -668,7 +657,9 @@
|
||||
plane = SPLASHSCREEN_PLANE
|
||||
var/client/holder
|
||||
|
||||
/atom/movable/screen/splash/New(client/C, visible, use_previous_title) //TODO: Make this use INITIALIZE_IMMEDIATE, except its not easy
|
||||
INITIALIZE_IMMEDIATE(/atom/movable/screen/splash)
|
||||
|
||||
/atom/movable/screen/splash/Initialize(mapload, datum/hud/hud_owner, client/C, visible, use_previous_title)
|
||||
. = ..()
|
||||
if(!istype(C))
|
||||
return
|
||||
@@ -683,8 +674,7 @@
|
||||
icon = SStitle.icon
|
||||
else
|
||||
if(!SStitle.previous_icon)
|
||||
qdel(src)
|
||||
return
|
||||
return INITIALIZE_HINT_QDEL
|
||||
icon = SStitle.previous_icon
|
||||
|
||||
holder.screen += src
|
||||
@@ -708,6 +698,7 @@
|
||||
|
||||
|
||||
/atom/movable/screen/component_button
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
var/atom/movable/screen/parent
|
||||
|
||||
/atom/movable/screen/component_button/Initialize(mapload, atom/movable/screen/parent)
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
name = "toggle sprint"
|
||||
icon = 'modular_citadel/icons/ui/screen_midnight.dmi'
|
||||
icon_state = "act_sprint"
|
||||
layer = ABOVE_HUD_LAYER - 0.1
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
var/mutable_appearance/flashy
|
||||
|
||||
/atom/movable/screen/sprintbutton/Click()
|
||||
@@ -44,6 +44,7 @@
|
||||
name = "sprint buffer"
|
||||
icon = 'icons/effects/progessbar.dmi'
|
||||
icon_state = "prog_bar_100"
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
|
||||
/atom/movable/screen/sprint_buffer/Click()
|
||||
if(isliving(usr))
|
||||
|
||||
@@ -1,19 +1,20 @@
|
||||
/datum/hud/var/atom/movable/screen/staminas/staminas
|
||||
/datum/hud/var/atom/movable/screen/staminabuffer/staminabuffer
|
||||
/datum/hud
|
||||
var/atom/movable/screen/staminas/staminas
|
||||
var/atom/movable/screen/staminabuffer/staminabuffer
|
||||
|
||||
/atom/movable/screen/staminas
|
||||
icon = 'modular_citadel/icons/ui/screen_gen.dmi'
|
||||
name = "stamina"
|
||||
icon_state = "stamina0"
|
||||
screen_loc = ui_stamina
|
||||
mouse_opacity = 1
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
|
||||
/atom/movable/screen/staminas/Click(location,control,params)
|
||||
if(isliving(usr))
|
||||
var/mob/living/L = usr
|
||||
CONFIG_CACHE_ENTRY_AND_FETCH_VALUE(number/stamina_combat/buffer_max, buffer_max)
|
||||
to_chat(L, "<span class='notice'>You have <b>[L.getStaminaLoss()]</b> stamina loss.<br>\
|
||||
<br>Your stamina buffer is <b>[round((L.stamina_buffer / buffer_max) * 100, 0.1)]%</b> full.</span>")
|
||||
to_chat(L, "<blockquote class='info'><span class='notice'>You have <b>[L.getStaminaLoss()]</b> stamina loss.<br>\
|
||||
<br>Your stamina buffer is <b>[round((L.stamina_buffer / buffer_max) * 100, 0.1)]%</b> full.</span></blockquote>")
|
||||
|
||||
/atom/movable/screen/staminas/update_icon_state()
|
||||
var/mob/living/carbon/user = hud?.mymob
|
||||
|
||||
@@ -2,14 +2,14 @@
|
||||
name = "storage"
|
||||
var/insertion_click = FALSE
|
||||
|
||||
/atom/movable/screen/storage/Initialize(mapload, new_master)
|
||||
/atom/movable/screen/storage/Initialize(mapload, datum/hud/hud, new_master)
|
||||
. = ..()
|
||||
master = new_master
|
||||
|
||||
/atom/movable/screen/storage/Click(location, control, params)
|
||||
if(!insertion_click)
|
||||
return ..()
|
||||
if(hud?.mymob && (hud.mymob != usr))
|
||||
if(get_mob() != usr)
|
||||
return
|
||||
// just redirect clicks
|
||||
if(master)
|
||||
@@ -55,7 +55,7 @@
|
||||
plane = VOLUMETRIC_STORAGE_BOX_PLANE
|
||||
var/obj/item/our_item
|
||||
|
||||
/atom/movable/screen/storage/volumetric_box/Initialize(mapload, new_master, obj/item/our_item)
|
||||
/atom/movable/screen/storage/volumetric_box/Initialize(mapload, datum/hud/hud, new_master, obj/item/our_item)
|
||||
src.our_item = our_item
|
||||
RegisterSignal(our_item, COMSIG_ITEM_MOUSE_ENTER, PROC_REF(on_item_mouse_enter))
|
||||
RegisterSignal(our_item, COMSIG_ITEM_MOUSE_EXIT, PROC_REF(on_item_mouse_exit))
|
||||
@@ -97,9 +97,9 @@
|
||||
var/atom/movable/screen/storage/item_holder/holder
|
||||
var/pixel_size
|
||||
|
||||
/atom/movable/screen/storage/volumetric_box/center/Initialize(mapload, new_master, our_item)
|
||||
left = new(null, src, our_item)
|
||||
right = new(null, src, our_item)
|
||||
/atom/movable/screen/storage/volumetric_box/center/Initialize(mapload, datum/hud/hud, new_master, our_item)
|
||||
left = new(null, hud, src, our_item)
|
||||
right = new(null, hud, src, our_item)
|
||||
return ..()
|
||||
|
||||
/atom/movable/screen/storage/volumetric_box/center/Destroy()
|
||||
@@ -116,7 +116,7 @@
|
||||
/**
|
||||
* Sets the size of this box screen object and regenerates its left/right borders. This includes the actual border's size!
|
||||
*/
|
||||
/atom/movable/screen/storage/volumetric_box/center/proc/set_pixel_size(pixels)
|
||||
/atom/movable/screen/storage/volumetric_box/center/proc/set_pixel_size(pixels, datum/hud/hud)
|
||||
if(pixel_size == pixels)
|
||||
return
|
||||
pixel_size = pixels
|
||||
@@ -128,7 +128,7 @@
|
||||
if(our_item)
|
||||
if(holder)
|
||||
qdel(holder)
|
||||
holder = new(null, src, our_item)
|
||||
holder = new(null, hud, src, our_item)
|
||||
holder.transform = matrix(1 / multiplier, 0, 0, 0, 1, 0)
|
||||
holder.mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
holder.appearance_flags &= ~RESET_TRANSFORM
|
||||
@@ -155,7 +155,7 @@
|
||||
layer = VOLUMETRIC_STORAGE_BOX_LAYER
|
||||
plane = VOLUMETRIC_STORAGE_BOX_PLANE
|
||||
|
||||
/atom/movable/screen/storage/volumetric_edge/Initialize(mapload, master, our_item)
|
||||
/atom/movable/screen/storage/volumetric_edge/Initialize(mapload, datum/hud/hud, master, our_item)
|
||||
src.master = master
|
||||
return ..()
|
||||
|
||||
@@ -183,7 +183,7 @@
|
||||
var/obj/item/our_item
|
||||
vis_flags = NONE
|
||||
|
||||
/atom/movable/screen/storage/item_holder/Initialize(mapload, new_master, obj/item/I)
|
||||
/atom/movable/screen/storage/item_holder/Initialize(mapload, datum/hud/hud, new_master, obj/item/I)
|
||||
. = ..()
|
||||
our_item = I
|
||||
vis_contents += I
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
name = "toggle vore mode"
|
||||
icon = 'modular_citadel/icons/ui/screen_midnight.dmi'
|
||||
icon_state = "nom_off"
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
|
||||
/atom/movable/screen/voretoggle/Click()
|
||||
if(usr != hud.mymob)
|
||||
|
||||
@@ -1,15 +1,14 @@
|
||||
/datum/hud/living/simple_animal
|
||||
ui_style = 'icons/mob/screen_gen.dmi'
|
||||
|
||||
/datum/hud/living/simple_animal/New(mob/living/owner)
|
||||
..()
|
||||
pull_icon = new /atom/movable/screen/pull()
|
||||
pull_icon = new /atom/movable/screen/pull(null, src)
|
||||
pull_icon.icon = ui_style
|
||||
pull_icon.update_icon()
|
||||
pull_icon.screen_loc = ui_living_pull
|
||||
pull_icon.hud = src
|
||||
static_inventory += pull_icon
|
||||
|
||||
//mob health doll! assumes whatever sprite the mob is
|
||||
healthdoll = new /atom/movable/screen/healthdoll/living()
|
||||
healthdoll.hud = src
|
||||
healthdoll = new /atom/movable/screen/healthdoll/living(null, src)
|
||||
infodisplay += healthdoll
|
||||
|
||||
@@ -67,32 +67,26 @@
|
||||
..()
|
||||
var/atom/movable/screen/using
|
||||
|
||||
using = new /atom/movable/screen/swarmer/FabricateTrap()
|
||||
using = new /atom/movable/screen/swarmer/FabricateTrap(null, src)
|
||||
using.screen_loc = ui_hand_position(2)
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/swarmer/Barricade()
|
||||
using = new /atom/movable/screen/swarmer/Barricade(null, src)
|
||||
using.screen_loc = ui_hand_position(1)
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/swarmer/Replicate()
|
||||
using = new /atom/movable/screen/swarmer/Replicate(null, src)
|
||||
using.screen_loc = ui_zonesel
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/swarmer/RepairSelf()
|
||||
using = new /atom/movable/screen/swarmer/RepairSelf(null, src)
|
||||
using.screen_loc = ui_storage1
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/swarmer/ToggleLight()
|
||||
using = new /atom/movable/screen/swarmer/ToggleLight(null, src)
|
||||
using.screen_loc = ui_back
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /atom/movable/screen/swarmer/ContactSwarmers()
|
||||
using = new /atom/movable/screen/swarmer/ContactSwarmers(null, src)
|
||||
using.screen_loc = ui_inventory
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
@@ -77,8 +77,17 @@ PROCESSING_SUBSYSTEM_DEF(station)
|
||||
var/datum/station_trait/trait_instance = new trait_type()
|
||||
can_fire = can_fire || trait_instance.trait_processes
|
||||
station_traits += trait_instance
|
||||
log_game("Station Trait: [trait_instance.name] chosen for this round.")
|
||||
if(!trait_instance.blacklist)
|
||||
return
|
||||
for(var/i in trait_instance.blacklist)
|
||||
var/datum/station_trait/trait_to_remove = i
|
||||
selectable_traits_by_types[initial(trait_to_remove.trait_type)] -= trait_to_remove
|
||||
|
||||
/// Update station trait lobby buttons for clients who joined before we initialised this subsystem
|
||||
/datum/controller/subsystem/processing/station/proc/display_lobby_traits()
|
||||
for (var/mob/dead/new_player/player as anything in GLOB.new_player_list)
|
||||
var/datum/hud/new_player/observer_hud = player.hud_used
|
||||
if (!istype(observer_hud))
|
||||
continue
|
||||
observer_hud.show_station_trait_buttons()
|
||||
|
||||
@@ -161,7 +161,7 @@ SUBSYSTEM_DEF(ticker)
|
||||
start_at = world.time + (CONFIG_GET(number/lobby_countdown) * 10)
|
||||
for(var/client/C in GLOB.clients)
|
||||
window_flash(C, ignorepref = TRUE) //let them know lobby has opened up.
|
||||
to_chat(world, "<span class='boldnotice'>Welcome to [station_name()]!</span>")
|
||||
to_chat(world, span_boldnotice("Welcome to [station_name()]!"))
|
||||
send2chat("New round starting on [SSmapping.config.map_name]!", CONFIG_GET(string/chat_announce_new_game))
|
||||
current_state = GAME_STATE_PREGAME
|
||||
SEND_SIGNAL(src, COMSIG_TICKER_ENTER_PREGAME)
|
||||
@@ -424,7 +424,7 @@ SUBSYSTEM_DEF(ticker)
|
||||
if (living.client.prefs && living.client.prefs.auto_ooc)
|
||||
if (living.client.prefs.chat_toggles & CHAT_OOC)
|
||||
living.client.prefs.chat_toggles ^= CHAT_OOC
|
||||
var/atom/movable/screen/splash/S = new(living.client, TRUE)
|
||||
var/atom/movable/screen/splash/S = new(null, living.client, TRUE)
|
||||
S.Fade(TRUE)
|
||||
living.client.init_verbs()
|
||||
livings += living
|
||||
|
||||
@@ -60,7 +60,7 @@ SUBSYSTEM_DEF(title)
|
||||
for(var/thing in GLOB.clients)
|
||||
if(!thing)
|
||||
continue
|
||||
var/atom/movable/screen/splash/S = new(thing, FALSE)
|
||||
var/atom/movable/screen/splash/S = new(null, thing, FALSE)
|
||||
S.Fade(FALSE,FALSE)
|
||||
|
||||
/datum/controller/subsystem/title/Recover()
|
||||
|
||||
+8
-14
@@ -39,6 +39,7 @@
|
||||
var/icon_icon = 'icons/mob/actions.dmi'
|
||||
/// This is the icon state for the icon that appears on the button
|
||||
var/button_icon_state = "default"
|
||||
var/button_overlay_state
|
||||
|
||||
/datum/action/New(Target)
|
||||
link_to(Target)
|
||||
@@ -177,6 +178,11 @@
|
||||
|
||||
ApplyIcon(button, force)
|
||||
|
||||
if(button_overlay_state)
|
||||
button.cut_overlay(button.button_overlay)
|
||||
button.button_overlay = mutable_appearance(icon = 'icons/mob/actions.dmi', icon_state = button_overlay_state)
|
||||
button.add_overlay(button.button_overlay)
|
||||
|
||||
if(!IsAvailable(TRUE))
|
||||
button.color = transparent_when_unavailable ? rgb(128,0,0,128) : rgb(128,0,0)
|
||||
else
|
||||
@@ -362,6 +368,8 @@
|
||||
|
||||
/datum/action/item_action/set_internals
|
||||
name = "Set Internals"
|
||||
default_button_position = SCRN_OBJ_INSERT_FIRST
|
||||
button_overlay_state = "ab_goldborder"
|
||||
|
||||
/datum/action/item_action/set_internals/UpdateButton(atom/movable/screen/movable/action_button/button, status_only = FALSE, force)
|
||||
if(!..()) // no button available
|
||||
@@ -940,20 +948,6 @@
|
||||
icon_icon = 'icons/mob/actions/actions_items.dmi'
|
||||
button_icon_state = "jetboot"
|
||||
|
||||
/datum/action/language_menu
|
||||
name = "Language Menu"
|
||||
desc = "Open the language menu to review your languages, their keys, and select your default language."
|
||||
button_icon_state = "language_menu"
|
||||
check_flags = 0
|
||||
|
||||
/datum/action/language_menu/Trigger()
|
||||
if(!..())
|
||||
return FALSE
|
||||
if(ismob(owner))
|
||||
var/mob/M = owner
|
||||
var/datum/language_holder/H = M.get_language_holder()
|
||||
H.open_language_menu(usr)
|
||||
|
||||
/datum/action/item_action/wheelys
|
||||
name = "Toggle Wheely-Heel's Wheels"
|
||||
desc = "Pops out or in your wheely-heel's wheels."
|
||||
|
||||
@@ -28,13 +28,13 @@
|
||||
lose_text = "<span class='notice'>You suddenly remember how languages work.</span>"
|
||||
|
||||
/datum/brain_trauma/severe/aphasia/on_gain()
|
||||
owner.add_blocked_language(subtypesof(/datum/language/) - /datum/language/aphasia, LANGUAGE_APHASIA)
|
||||
owner.grant_language(/datum/language/aphasia, TRUE, TRUE, LANGUAGE_APHASIA)
|
||||
owner.add_blocked_language(subtypesof(/datum/language) - /datum/language/aphasia, LANGUAGE_APHASIA)
|
||||
owner.grant_language(/datum/language/aphasia, source = LANGUAGE_APHASIA)
|
||||
..()
|
||||
|
||||
/datum/brain_trauma/severe/aphasia/on_lose()
|
||||
owner.remove_blocked_language(subtypesof(/datum/language/), LANGUAGE_APHASIA)
|
||||
owner.remove_language(/datum/language/aphasia, TRUE, TRUE, LANGUAGE_APHASIA)
|
||||
owner.remove_blocked_language(subtypesof(/datum/language), LANGUAGE_APHASIA)
|
||||
owner.remove_language(/datum/language/aphasia, LANGUAGE_APHASIA)
|
||||
..()
|
||||
|
||||
/datum/brain_trauma/severe/blindness
|
||||
|
||||
@@ -40,8 +40,7 @@
|
||||
|
||||
/// Creates the hud screen object.
|
||||
/datum/component/combat_mode/proc/on_mob_hud_created(mob/source)
|
||||
hud_icon = new
|
||||
hud_icon.hud = source.hud_used
|
||||
hud_icon = new(null, source.hud_used)
|
||||
hud_icon.icon = tg_ui_icon_to_cit_ui(source.hud_used.ui_style)
|
||||
hud_icon.screen_loc = hud_loc
|
||||
source.hud_used.static_inventory += hud_icon
|
||||
@@ -182,6 +181,7 @@
|
||||
name = "toggle combat mode"
|
||||
icon = 'modular_citadel/icons/ui/screen_midnight.dmi'
|
||||
icon_state = "combat_off"
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
var/mutable_appearance/flashy
|
||||
var/combat_on = FALSE ///Wheter combat mode is enabled or not, so we don't have to store a reference.
|
||||
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
|
||||
/datum/component/personal_crafting/proc/create_mob_button(mob/user)
|
||||
var/datum/hud/H = user.hud_used
|
||||
var/atom/movable/screen/craft/C = new()
|
||||
var/atom/movable/screen/craft/C = new(null, H)
|
||||
C.icon = H.ui_style
|
||||
H.static_inventory += C
|
||||
user.client.screen += C
|
||||
RegisterSignal(C, COMSIG_CLICK, PROC_REF(component_ui_interact))
|
||||
RegisterSignal(C, COMSIG_SCREEN_ELEMENT_CLICK, PROC_REF(component_ui_interact))
|
||||
|
||||
/datum/component/personal_crafting
|
||||
var/busy
|
||||
|
||||
@@ -299,10 +299,10 @@
|
||||
/datum/component/mood/proc/modify_hud(datum/source)
|
||||
var/mob/living/owner = parent
|
||||
var/datum/hud/hud = owner.hud_used
|
||||
screen_obj = new
|
||||
screen_obj = new(null, hud)
|
||||
hud.infodisplay += screen_obj
|
||||
RegisterSignal(hud, COMSIG_PARENT_QDELETING, PROC_REF(unmodify_hud))
|
||||
RegisterSignal(screen_obj, COMSIG_CLICK, PROC_REF(hud_click))
|
||||
RegisterSignal(screen_obj, COMSIG_SCREEN_ELEMENT_CLICK, PROC_REF(hud_click))
|
||||
|
||||
/datum/component/mood/proc/unmodify_hud(datum/source)
|
||||
if(!screen_obj || !parent)
|
||||
|
||||
@@ -33,11 +33,11 @@
|
||||
var/rows = clamp(CEILING(adjusted_contents / columns, 1), 1, screen_max_rows)
|
||||
|
||||
// First, boxes.
|
||||
ui_boxes = get_ui_boxes()
|
||||
ui_boxes = get_ui_boxes(user.hud_used)
|
||||
ui_boxes.screen_loc = "[screen_start_x]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y] to [screen_start_x+columns-1]:[screen_pixel_x],[screen_start_y+rows-1]:[screen_pixel_y]"
|
||||
. += ui_boxes
|
||||
// Then, closer.
|
||||
ui_close = get_ui_close()
|
||||
ui_close = get_ui_close(user.hud_used)
|
||||
ui_close.screen_loc = "[screen_start_x + columns]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y]"
|
||||
. += ui_close
|
||||
// Then orient the actual items.
|
||||
@@ -62,7 +62,7 @@
|
||||
for(var/obj/O in accessible_items())
|
||||
if(QDELETED(O))
|
||||
continue
|
||||
var/atom/movable/screen/storage/item_holder/D = new(null, src, O)
|
||||
var/atom/movable/screen/storage/item_holder/D = new(null, user.hud_used, src, O)
|
||||
// SNOWFLAKE: make O opaque too, pending storage rewrite
|
||||
O.mouse_opacity = MOUSE_OPACITY_OPAQUE
|
||||
D.mouse_opacity = MOUSE_OPACITY_OPAQUE //This is here so storage items that spawn with contents correctly have the "click around item to equip"
|
||||
@@ -139,7 +139,7 @@
|
||||
for(var/i in percentage_by_item)
|
||||
I = i
|
||||
var/percent = percentage_by_item[I]
|
||||
var/atom/movable/screen/storage/volumetric_box/center/B = new /atom/movable/screen/storage/volumetric_box/center(null, src, I)
|
||||
var/atom/movable/screen/storage/volumetric_box/center/B = new /atom/movable/screen/storage/volumetric_box/center(null, user.hud_used, src, I)
|
||||
// SNOWFLAKE: force it to icon until we unfuck storage/click passing
|
||||
I.mouse_opacity = MOUSE_OPACITY_ICON
|
||||
var/pixels_to_use = overrun? MINIMUM_PIXELS_PER_ITEM : max(using_horizontal_pixels * percent, MINIMUM_PIXELS_PER_ITEM)
|
||||
@@ -168,15 +168,15 @@
|
||||
current_pixel = VOLUMETRIC_STORAGE_EDGE_PADDING
|
||||
|
||||
// Then, continuous section.
|
||||
ui_continuous = get_ui_continuous()
|
||||
ui_continuous = get_ui_continuous(user.hud_used)
|
||||
ui_continuous.screen_loc = "[screen_start_x]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y] to [screen_start_x+maxcolumns-1]:[screen_pixel_x],[screen_start_y+rows-1]:[screen_pixel_y]"
|
||||
. += ui_continuous
|
||||
// Then, left.
|
||||
ui_left = get_ui_left()
|
||||
ui_left = get_ui_left(user.hud_used)
|
||||
ui_left.screen_loc = "[screen_start_x]:[screen_pixel_x - 2],[screen_start_y]:[screen_pixel_y] to [screen_start_x]:[screen_pixel_x - 2],[screen_start_y+rows-1]:[screen_pixel_y]"
|
||||
. += ui_left
|
||||
// Then, closer, which is also our right element.
|
||||
ui_close = get_ui_close()
|
||||
ui_close = get_ui_close(user.hud_used)
|
||||
ui_close.screen_loc = "[screen_start_x + maxcolumns]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y] to [screen_start_x + maxcolumns]:[screen_pixel_x],[screen_start_y+rows-1]:[screen_pixel_y]"
|
||||
. += ui_close
|
||||
|
||||
@@ -258,23 +258,23 @@
|
||||
/**
|
||||
* Gets our ui_boxes, making it if it doesn't exist.
|
||||
*/
|
||||
/datum/component/storage/proc/get_ui_boxes()
|
||||
return new /atom/movable/screen/storage/boxes(null, src)
|
||||
/datum/component/storage/proc/get_ui_boxes(datum/hud/hud)
|
||||
return new /atom/movable/screen/storage/boxes(null, hud, src)
|
||||
|
||||
/**
|
||||
* Gets our ui_left, making it if it doesn't exist.
|
||||
*/
|
||||
/datum/component/storage/proc/get_ui_left()
|
||||
return new /atom/movable/screen/storage/left(null, src)
|
||||
/datum/component/storage/proc/get_ui_left(datum/hud/hud)
|
||||
return new /atom/movable/screen/storage/left(null, hud, src)
|
||||
|
||||
/**
|
||||
* Gets our ui_close, making it if it doesn't exist.
|
||||
*/
|
||||
/datum/component/storage/proc/get_ui_close()
|
||||
return new /atom/movable/screen/storage/close(null, src)
|
||||
/datum/component/storage/proc/get_ui_close(datum/hud/hud)
|
||||
return new /atom/movable/screen/storage/close(null, hud, src)
|
||||
|
||||
/**
|
||||
* Gets our ui_continuous, making it if it doesn't exist.
|
||||
*/
|
||||
/datum/component/storage/proc/get_ui_continuous()
|
||||
return new /atom/movable/screen/storage/continuous(null, src)
|
||||
/datum/component/storage/proc/get_ui_continuous(datum/hud/hud)
|
||||
return new /atom/movable/screen/storage/continuous(null, hud, src)
|
||||
|
||||
@@ -63,7 +63,7 @@ Bonus
|
||||
if(scramble_language && !current_language) // Last part prevents rerolling language with small amounts of cure.
|
||||
current_language = pick(subtypesof(/datum/language) - /datum/language/common)
|
||||
H.add_blocked_language(subtypesof(/datum/language) - current_language, LANGUAGE_VOICECHANGE)
|
||||
H.grant_language(current_language, TRUE, TRUE, LANGUAGE_VOICECHANGE)
|
||||
H.grant_language(current_language, source = LANGUAGE_VOICECHANGE)
|
||||
|
||||
/datum/symptom/voice_change/End(datum/disease/advance/A)
|
||||
..()
|
||||
|
||||
+1
-3
@@ -409,9 +409,7 @@
|
||||
if(H.additional_language && H.additional_language != "None")
|
||||
var/language_entry = GLOB.roundstart_languages[H.additional_language]
|
||||
if(language_entry)
|
||||
grant_language(language_entry, TRUE, TRUE)
|
||||
|
||||
update_atom_languages()
|
||||
grant_language(language_entry)
|
||||
|
||||
/mob/living/carbon/human/set_species(datum/species/mrace, icon_update = TRUE, pref_load = FALSE)
|
||||
..()
|
||||
|
||||
@@ -4,75 +4,90 @@
|
||||
var/cleanable
|
||||
var/description
|
||||
var/mutable_appearance/pic
|
||||
var/list/num_decals_per_atom
|
||||
/**
|
||||
* A short lecture on decal element collision on rotation
|
||||
* If a given decal's rotated version is identical to one of existing (at a same target), pre-rotation decals,
|
||||
* then the rotated decal won't stay after when the colliding pre-rotation decal gets rotated,
|
||||
* resulting in some decal elements colliding into nonexistence. This internal tick-tock prevents
|
||||
* such collision by forcing a non-collision.
|
||||
*/
|
||||
var/rotated
|
||||
|
||||
var/first_dir // This stores the direction of the decal compared to the parent facing NORTH
|
||||
|
||||
/datum/element/decal/Attach(datum/target, _icon, _icon_state, _dir, _cleanable=CLEAN_GOD, _color, _layer=TURF_LAYER, _description, _alpha=255)
|
||||
/datum/element/decal/Attach(atom/target, _icon, _icon_state, _dir, _cleanable=CLEAN_GOD, _color, _layer=TURF_LAYER, _description, _alpha=255, _rotated=FALSE)
|
||||
. = ..()
|
||||
if(. == ELEMENT_INCOMPATIBLE || !_icon || !_icon_state || !isatom(target))
|
||||
if(!isatom(target) || (pic ? FALSE : !generate_appearance(_icon, _icon_state, _dir, _layer, _color, _alpha, target)))
|
||||
return ELEMENT_INCOMPATIBLE
|
||||
var/atom/A = target
|
||||
if(!pic)
|
||||
// It has to be made from an image or dir breaks because of a byond bug
|
||||
var/temp_image = image(_icon, null, _icon_state, _layer, _dir)
|
||||
pic = new(temp_image)
|
||||
pic.color = _color
|
||||
pic.alpha = _alpha
|
||||
first_dir = _dir
|
||||
description = _description
|
||||
cleanable = _cleanable
|
||||
rotated = _rotated
|
||||
|
||||
LAZYINITLIST(num_decals_per_atom)
|
||||
|
||||
if(!num_decals_per_atom[A])
|
||||
if(first_dir)
|
||||
RegisterSignal(A, COMSIG_ATOM_DIR_CHANGE, PROC_REF(rotate_react))
|
||||
if(cleanable)
|
||||
RegisterSignal(A, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(clean_react))
|
||||
if(description)
|
||||
RegisterSignal(A, COMSIG_PARENT_EXAMINE, PROC_REF(examine))
|
||||
RegisterSignal(A, COMSIG_ATOM_UPDATE_OVERLAYS, PROC_REF(apply_overlay), TRUE)
|
||||
|
||||
num_decals_per_atom[A]++
|
||||
apply(A)
|
||||
|
||||
/datum/element/decal/Detach(datum/target)
|
||||
var/atom/A = target
|
||||
num_decals_per_atom[A]--
|
||||
if(!num_decals_per_atom[A])
|
||||
UnregisterSignal(A, list(COMSIG_ATOM_DIR_CHANGE, COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZE,
|
||||
COMSIG_COMPONENT_CLEAN_ACT, COMSIG_PARENT_EXAMINE, COMSIG_ATOM_UPDATE_OVERLAYS))
|
||||
LAZYREMOVE(num_decals_per_atom, A)
|
||||
apply(A)
|
||||
return ..()
|
||||
|
||||
/datum/element/decal/proc/apply(atom/target)
|
||||
RegisterSignal(target,COMSIG_ATOM_UPDATE_OVERLAYS, PROC_REF(apply_overlay), TRUE)
|
||||
if(isturf(target))
|
||||
RegisterSignal(target,COMSIG_TURF_AFTER_SHUTTLE_MOVE, PROC_REF(shuttlemove_react), TRUE)
|
||||
if(target.flags_1 & INITIALIZED_1)
|
||||
target.update_icon() //could use some queuing here now maybe.
|
||||
else if(!QDELETED(target) && num_decals_per_atom[target] == 1)
|
||||
RegisterSignal(target, COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZE, PROC_REF(late_update_icon))
|
||||
else
|
||||
RegisterSignal(target,COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZE,PROC_REF(late_update_icon), TRUE)
|
||||
if(isitem(target))
|
||||
addtimer(CALLBACK(target, TYPE_PROC_REF(/obj/item, update_slot_icon)), 0, TIMER_UNIQUE)
|
||||
INVOKE_ASYNC(target, TYPE_PROC_REF(/obj/item, update_slot_icon), TRUE)
|
||||
if(_dir)
|
||||
RegisterSignal(target, COMSIG_ATOM_DIR_CHANGE, PROC_REF(rotate_react),TRUE)
|
||||
if(_cleanable)
|
||||
RegisterSignal(target, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(clean_react),TRUE)
|
||||
if(_description)
|
||||
RegisterSignal(target, COMSIG_PARENT_EXAMINE, PROC_REF(examine),TRUE)
|
||||
|
||||
/datum/element/decal/proc/generate_appearance(_icon, _icon_state, _dir, _layer, _color, _alpha, source)
|
||||
if(!_icon || !_icon_state)
|
||||
return FALSE
|
||||
var/temp_image = image(_icon, null, _icon_state, _layer, _dir)
|
||||
pic = new(temp_image)
|
||||
pic.color = _color
|
||||
pic.alpha = _alpha
|
||||
return TRUE
|
||||
|
||||
/datum/element/decal/Detach(atom/source, force)
|
||||
UnregisterSignal(source, list(COMSIG_ATOM_DIR_CHANGE, COMSIG_COMPONENT_CLEAN_ACT, COMSIG_PARENT_EXAMINE, COMSIG_ATOM_UPDATE_OVERLAYS,COMSIG_TURF_AFTER_SHUTTLE_MOVE))
|
||||
source.update_icon()
|
||||
if(isitem(source))
|
||||
INVOKE_ASYNC(source, TYPE_PROC_REF(/obj/item, update_slot_icon))
|
||||
return ..()
|
||||
|
||||
/datum/element/decal/proc/late_update_icon(atom/source)
|
||||
source.update_icon()
|
||||
UnregisterSignal(source,COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZE)
|
||||
SIGNAL_HANDLER
|
||||
|
||||
if(source && istype(source))
|
||||
source.update_icon()
|
||||
UnregisterSignal(source,COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZE)
|
||||
|
||||
|
||||
/datum/element/decal/proc/apply_overlay(atom/source, list/overlay_list)
|
||||
if(first_dir)
|
||||
pic.dir = first_dir == SOUTH ? source.dir : turn(first_dir, dir2angle(source.dir)-180) //Never turn a dir by 0.
|
||||
for(var/i in 1 to num_decals_per_atom[source])
|
||||
overlay_list += pic
|
||||
SIGNAL_HANDLER
|
||||
|
||||
overlay_list += pic
|
||||
|
||||
/datum/element/decal/proc/shuttlemove_react(datum/source, turf/newT)
|
||||
SIGNAL_HANDLER
|
||||
Detach(source)
|
||||
newT.AddElement(/datum/element/decal, pic.icon, pic.icon_state, pic.dir, cleanable, pic.color, pic.layer, description, pic.alpha, rotated)
|
||||
|
||||
/datum/element/decal/proc/rotate_react(datum/source, old_dir, new_dir)
|
||||
SIGNAL_HANDLER
|
||||
|
||||
/datum/element/decal/proc/rotate_react(atom/source, old_dir, new_dir)
|
||||
if(old_dir == new_dir)
|
||||
return
|
||||
source.update_icon()
|
||||
Detach(source)
|
||||
source.AddElement(/datum/element/decal, pic.icon, pic.icon_state, angle2dir(dir2angle(pic.dir)+dir2angle(new_dir)-dir2angle(old_dir)), cleanable, pic.color, pic.layer, description, pic.alpha, !rotated)
|
||||
|
||||
/datum/element/decal/proc/clean_react(datum/source, strength)
|
||||
SIGNAL_HANDLER
|
||||
|
||||
if(strength >= cleanable)
|
||||
Detach(source)
|
||||
return TRUE
|
||||
return NONE
|
||||
|
||||
/datum/element/decal/proc/examine(datum/source, mob/user, list/examine_list)
|
||||
SIGNAL_HANDLER
|
||||
|
||||
examine_list += description
|
||||
|
||||
+13
-10
@@ -64,7 +64,6 @@
|
||||
var/isholy = FALSE //is this person a chaplain or admin role allowed to use bibles
|
||||
|
||||
var/mob/living/enslaved_to //If this mind's master is another mob (i.e. adamantine golems)
|
||||
var/datum/language_holder/language_holder
|
||||
var/unconvertable = FALSE
|
||||
var/late_joiner = FALSE
|
||||
///has this mind ever been an AI
|
||||
@@ -96,7 +95,6 @@
|
||||
/datum/mind/Destroy()
|
||||
SSticker.minds -= src
|
||||
QDEL_LIST(antag_datums)
|
||||
QDEL_NULL(language_holder)
|
||||
QDEL_NULL(skill_holder)
|
||||
set_current(null)
|
||||
soulOwner = null
|
||||
@@ -118,12 +116,6 @@
|
||||
/datum/mind/proc/set_original_character(new_original_character)
|
||||
original_character = WEAKREF(new_original_character)
|
||||
|
||||
/datum/mind/proc/get_language_holder()
|
||||
if(!language_holder)
|
||||
language_holder = new (src)
|
||||
|
||||
return language_holder
|
||||
|
||||
/datum/mind/proc/transfer_to(mob/new_character, var/force_key_move = 0)
|
||||
var/old_character = current
|
||||
var/signals = SEND_SIGNAL(new_character, COMSIG_MOB_PRE_PLAYER_CHANGE, new_character, old_character) | SEND_SIGNAL(src, COMSIG_PRE_MIND_TRANSFER, new_character, old_character)
|
||||
@@ -145,7 +137,19 @@
|
||||
var/datum/atom_hud/antag/hud_to_transfer = antag_hud//we need this because leave_hud() will clear this list
|
||||
var/mob/living/old_current = current
|
||||
if(current)
|
||||
current.transfer_observers_to(new_character) //transfer anyone observing the old character to the new one
|
||||
//transfer anyone observing the old character to the new one
|
||||
current.transfer_observers_to(new_character)
|
||||
|
||||
// Offload all mind languages from the old holder to a temp one
|
||||
var/datum/language_holder/empty/temp_holder = new()
|
||||
var/datum/language_holder/old_holder = old_current.get_language_holder()
|
||||
var/datum/language_holder/new_holder = new_character.get_language_holder()
|
||||
// Off load mind languages to the temp holder momentarily
|
||||
new_holder.transfer_mind_languages(temp_holder)
|
||||
// Transfer the old holder's mind languages to the new holder
|
||||
old_holder.transfer_mind_languages(new_holder)
|
||||
// And finally transfer the temp holder's mind languages back to the old holder
|
||||
temp_holder.transfer_mind_languages(old_holder)
|
||||
set_current(new_character) //associate ourself with our new body
|
||||
new_character.mind = src //and associate our new body with ourself
|
||||
for(var/a in antag_datums) //Makes sure all antag datums effects are applied in the new body
|
||||
@@ -162,7 +166,6 @@
|
||||
if(new_character.client)
|
||||
LAZYCLEARLIST(new_character.client.recent_examines)
|
||||
new_character.client.init_verbs() // re-initialize character specific verbs
|
||||
current.update_atom_languages()
|
||||
|
||||
//CIT CHANGE - makes arousal update when transfering bodies
|
||||
if(isliving(new_character)) //New humans and such are by default enabled arousal. Let's always use the new mind's prefs.
|
||||
|
||||
@@ -277,10 +277,10 @@
|
||||
|
||||
/datum/mutation/human/stoner/on_acquiring(mob/living/carbon/human/owner)
|
||||
..()
|
||||
owner.grant_language(/datum/language/beachbum, TRUE, TRUE, LANGUAGE_STONER)
|
||||
owner.grant_language(/datum/language/beachbum, source = LANGUAGE_STONER)
|
||||
owner.add_blocked_language(subtypesof(/datum/language) - /datum/language/beachbum, LANGUAGE_STONER)
|
||||
|
||||
/datum/mutation/human/stoner/on_losing(mob/living/carbon/human/owner)
|
||||
..()
|
||||
owner.remove_language(/datum/language/beachbum, TRUE, TRUE, LANGUAGE_STONER)
|
||||
owner.remove_language(/datum/language/beachbum, source = LANGUAGE_STONER)
|
||||
owner.remove_blocked_language(subtypesof(/datum/language) - /datum/language/beachbum, LANGUAGE_STONER)
|
||||
|
||||
@@ -6,5 +6,5 @@
|
||||
/datum/numbered_display/New(obj/item/sample, _number = 1, datum/component/storage/parent)
|
||||
if(!istype(sample))
|
||||
qdel(src)
|
||||
sample_object = new /atom/movable/screen/storage/item_holder(null, parent, sample)
|
||||
sample_object = new /atom/movable/screen/storage/item_holder(null, null, parent, sample)
|
||||
number = _number
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
/// Station traits displayed in the lobby
|
||||
GLOBAL_LIST_EMPTY(lobby_station_traits)
|
||||
|
||||
///Base class of station traits. These are used to influence rounds in one way or the other by influencing the levers of the station.
|
||||
/datum/station_trait
|
||||
///Name of the trait
|
||||
@@ -22,26 +25,30 @@
|
||||
var/trait_flags
|
||||
/// Whether or not this trait can be reverted by an admin
|
||||
var/can_revert = TRUE
|
||||
/// If set to true we'll show a button on the lobby to notify people about this trait
|
||||
var/sign_up_button = FALSE
|
||||
/// Lobby buttons controlled by this trait
|
||||
var/list/lobby_buttons = list()
|
||||
|
||||
/datum/station_trait/New()
|
||||
. = ..()
|
||||
|
||||
RegisterSignal(SSticker, COMSIG_TICKER_ROUND_STARTING, PROC_REF(on_round_start))
|
||||
|
||||
if(sign_up_button)
|
||||
GLOB.lobby_station_traits += src
|
||||
if(SSstation.initialized)
|
||||
SSstation.display_lobby_traits()
|
||||
if(trait_processes)
|
||||
START_PROCESSING(SSstation, src)
|
||||
if(trait_to_give)
|
||||
ADD_TRAIT(SSstation, trait_to_give, STATION_TRAIT)
|
||||
|
||||
/datum/station_trait/Destroy()
|
||||
destroy_lobby_buttons()
|
||||
SSstation.station_traits -= src
|
||||
return ..()
|
||||
|
||||
/// Proc ran when round starts. Use this for roundstart effects.
|
||||
/datum/station_trait/proc/on_round_start()
|
||||
SIGNAL_HANDLER
|
||||
return
|
||||
|
||||
///type of info the centcom report has on this trait, if any.
|
||||
/datum/station_trait/proc/get_report()
|
||||
return "[name] - [report_message]"
|
||||
@@ -55,3 +62,50 @@
|
||||
REMOVE_TRAIT(SSstation, trait_to_give, STATION_TRAIT)
|
||||
|
||||
qdel(src)
|
||||
|
||||
/// Return TRUE if we want to show a lobby button, by default we assume we don't want it after the round begins
|
||||
/datum/station_trait/proc/can_display_lobby_button(client/player)
|
||||
return sign_up_button && !SSticker.HasRoundStarted()
|
||||
|
||||
/// Apply any additional handling we need to our lobby button
|
||||
/datum/station_trait/proc/setup_lobby_button(atom/movable/screen/lobby/button/sign_up/lobby_button)
|
||||
SHOULD_CALL_PARENT(TRUE)
|
||||
lobby_button.name = name
|
||||
lobby_buttons |= lobby_button
|
||||
RegisterSignal(lobby_button, COMSIG_ATOM_UPDATE_ICON, PROC_REF(on_lobby_button_update_icon))
|
||||
RegisterSignal(lobby_button, COMSIG_SCREEN_ELEMENT_CLICK, PROC_REF(on_lobby_button_click))
|
||||
RegisterSignal(lobby_button, COMSIG_PARENT_QDELETING, PROC_REF(on_lobby_button_destroyed))
|
||||
lobby_button.update_appearance(UPDATE_ICON)
|
||||
|
||||
/// Called when our lobby button is clicked on
|
||||
/datum/station_trait/proc/on_lobby_button_click(atom/movable/screen/lobby/button/sign_up/lobby_button, location, control, params, mob/dead/new_player/user)
|
||||
SIGNAL_HANDLER
|
||||
return
|
||||
|
||||
/// Called when our lobby button tries to update its appearance
|
||||
/datum/station_trait/proc/on_lobby_button_update_icon(atom/movable/screen/lobby/button/sign_up/lobby_button, updates)
|
||||
SIGNAL_HANDLER
|
||||
return
|
||||
|
||||
/// Don't hold references to deleted buttons
|
||||
/datum/station_trait/proc/on_lobby_button_destroyed(atom/movable/screen/lobby/button/sign_up/lobby_button)
|
||||
SIGNAL_HANDLER
|
||||
lobby_buttons -= lobby_button
|
||||
|
||||
/// Proc ran when round starts. Use this for roundstart effects. By default we clean up our buttons here.
|
||||
/datum/station_trait/proc/on_round_start()
|
||||
SIGNAL_HANDLER
|
||||
destroy_lobby_buttons()
|
||||
|
||||
/// Remove all of our active lobby buttons
|
||||
/datum/station_trait/proc/destroy_lobby_buttons()
|
||||
for (var/atom/movable/screen/button as anything in lobby_buttons)
|
||||
var/mob/dead/new_player/hud_owner = button.get_mob()
|
||||
if (QDELETED(hud_owner))
|
||||
qdel(button)
|
||||
continue
|
||||
var/datum/hud/new_player/using_hud = hud_owner.hud_used
|
||||
if(!using_hud)
|
||||
qdel(button)
|
||||
continue
|
||||
using_hud.remove_station_trait_button(src)
|
||||
|
||||
@@ -152,9 +152,7 @@
|
||||
. = ..()
|
||||
//All bots that exist round start have their set language randomized.
|
||||
for(var/mob/living/simple_animal/bot/found_bot in GLOB.alive_mob_list)
|
||||
/// The bot's language holder - so we can randomize and change their language
|
||||
var/datum/language_holder/bot_languages = found_bot.get_language_holder()
|
||||
bot_languages.selected_language = bot_languages.get_random_spoken_language()
|
||||
found_bot.set_active_language(found_bot.get_random_spoken_language())
|
||||
|
||||
/datum/station_trait/revenge_of_pun_pun
|
||||
name = "Revenge of Pun Pun"
|
||||
|
||||
@@ -971,17 +971,20 @@
|
||||
desc = "A magical strand of Durathread is wrapped around your neck, preventing you from breathing! Click this icon to remove the strand."
|
||||
icon_state = "his_grace"
|
||||
alerttooltipstyle = "hisgrace"
|
||||
clickable_glow = TRUE
|
||||
|
||||
/atom/movable/screen/alert/status_effect/strandling/Click(location, control, params)
|
||||
. = ..()
|
||||
if(usr != owner)
|
||||
if(!.)
|
||||
return
|
||||
to_chat(owner, "<span class='notice'>You attempt to remove the durathread strand from around your neck.</span>")
|
||||
if(do_after(owner, 3.5 SECONDS, owner))
|
||||
if(isliving(owner))
|
||||
var/mob/living/L = owner
|
||||
to_chat(owner, "<span class='notice'>You successfully remove the durathread strand.</span>")
|
||||
L.remove_status_effect(STATUS_EFFECT_CHOKINGSTRAND)
|
||||
if(!do_after(owner, 3.5 SECONDS, owner))
|
||||
return
|
||||
if(!isliving(owner))
|
||||
return
|
||||
var/mob/living/L = owner
|
||||
to_chat(owner, "<span class='notice'>You successfully remove the durathread strand.</span>")
|
||||
L.remove_status_effect(STATUS_EFFECT_CHOKINGSTRAND)
|
||||
|
||||
|
||||
/datum/status_effect/pacify
|
||||
|
||||
@@ -102,8 +102,12 @@
|
||||
/atom/movable/screen/alert/status_effect/wound
|
||||
name = "Wounded"
|
||||
desc = "Your body has sustained serious damage, click here to inspect yourself."
|
||||
clickable_glow = TRUE
|
||||
|
||||
/atom/movable/screen/alert/status_effect/wound/Click()
|
||||
. = ..()
|
||||
if(!.)
|
||||
return
|
||||
var/mob/living/carbon/C = usr
|
||||
C.check_self_for_injuries()
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
var/require_comms_key = FALSE
|
||||
|
||||
/datum/world_topic/proc/TryRun(list/input, addr)
|
||||
key_valid = config && (CONFIG_GET(string/comms_key) == input["key"])
|
||||
key_valid = (CONFIG_GET(string/comms_key) == input["key"]) && CONFIG_GET(string/comms_key) && input["key"]
|
||||
if(require_comms_key && !key_valid)
|
||||
return "Bad Key"
|
||||
input -= "key"
|
||||
@@ -124,7 +124,7 @@
|
||||
for(var/mob/dead/observer/O in GLOB.player_list)
|
||||
if(O.key == expected_key)
|
||||
if(O.client?.address == addr)
|
||||
new /atom/movable/screen/splash(O.client, TRUE)
|
||||
new /atom/movable/screen/splash(null, O.client, TRUE)
|
||||
break
|
||||
|
||||
/datum/world_topic/adminmsg
|
||||
|
||||
+35
-36
@@ -12,8 +12,11 @@
|
||||
var/throw_speed = 2 //How many tiles to move per ds when being thrown. Float values are fully supported
|
||||
var/throw_range = 7
|
||||
var/mob/pulledby = null
|
||||
/// What language holder type to init as
|
||||
var/initial_language_holder = /datum/language_holder
|
||||
var/datum/language_holder/language_holder // Mindless mobs and objects need language too, some times. Mind holder takes prescedence.
|
||||
/// Holds all languages this mob can speak and understand
|
||||
VAR_PRIVATE/datum/language_holder/language_holder
|
||||
|
||||
var/verb_say = "says"
|
||||
var/verb_ask = "asks"
|
||||
var/verb_exclaim = "exclaims"
|
||||
@@ -647,49 +650,46 @@
|
||||
|
||||
/// Gets or creates the relevant language holder. For mindless atoms, gets the local one. For atom with mind, gets the mind one.
|
||||
/atom/movable/proc/get_language_holder(get_minds = TRUE)
|
||||
RETURN_TYPE(/datum/language_holder)
|
||||
if(QDELING(src))
|
||||
CRASH("get_language_holder() called on a QDELing atom, \
|
||||
this will try to re-instantiate the language holder that's about to be deleted, which is bad.")
|
||||
|
||||
if(!language_holder)
|
||||
language_holder = new initial_language_holder(src)
|
||||
return language_holder
|
||||
|
||||
/// Grants the supplied language and sets omnitongue true.
|
||||
/atom/movable/proc/grant_language(language, understood = TRUE, spoken = TRUE, source = LANGUAGE_ATOM)
|
||||
var/datum/language_holder/LH = get_language_holder()
|
||||
return LH.grant_language(language, understood, spoken, source)
|
||||
/atom/movable/proc/grant_language(language, language_flags = ALL, source = LANGUAGE_ATOM)
|
||||
return get_language_holder().grant_language(language, language_flags, source)
|
||||
|
||||
/// Grants every language.
|
||||
/atom/movable/proc/grant_all_languages(understood = TRUE, spoken = TRUE, grant_omnitongue = TRUE, source = LANGUAGE_MIND)
|
||||
var/datum/language_holder/LH = get_language_holder()
|
||||
return LH.grant_all_languages(understood, spoken, grant_omnitongue, source)
|
||||
/atom/movable/proc/grant_all_languages(language_flags = ALL, grant_omnitongue = TRUE, source = LANGUAGE_MIND)
|
||||
return get_language_holder().grant_all_languages(language_flags, grant_omnitongue, source)
|
||||
|
||||
/// Removes a single language.
|
||||
/atom/movable/proc/remove_language(language, understood = TRUE, spoken = TRUE, source = LANGUAGE_ALL)
|
||||
var/datum/language_holder/LH = get_language_holder()
|
||||
return LH.remove_language(language, understood, spoken, source)
|
||||
/atom/movable/proc/remove_language(language, language_flags = ALL, source = LANGUAGE_ALL)
|
||||
return get_language_holder().remove_language(language, language_flags, source)
|
||||
|
||||
/// Removes every language and sets omnitongue false.
|
||||
/atom/movable/proc/remove_all_languages(source = LANGUAGE_ALL, remove_omnitongue = FALSE)
|
||||
var/datum/language_holder/LH = get_language_holder()
|
||||
return LH.remove_all_languages(source, remove_omnitongue)
|
||||
return get_language_holder().remove_all_languages(source, remove_omnitongue)
|
||||
|
||||
/// Adds a language to the blocked language list. Use this over remove_language in cases where you will give languages back later.
|
||||
/atom/movable/proc/add_blocked_language(language, source = LANGUAGE_ATOM)
|
||||
var/datum/language_holder/LH = get_language_holder()
|
||||
return LH.add_blocked_language(language, source)
|
||||
return get_language_holder().add_blocked_language(language, source)
|
||||
|
||||
/// Removes a language from the blocked language list.
|
||||
/atom/movable/proc/remove_blocked_language(language, source = LANGUAGE_ATOM)
|
||||
var/datum/language_holder/LH = get_language_holder()
|
||||
return LH.remove_blocked_language(language, source)
|
||||
return get_language_holder().remove_blocked_language(language, source)
|
||||
|
||||
/// Checks if atom has the language. If spoken is true, only checks if atom can speak the language.
|
||||
/atom/movable/proc/has_language(language, spoken = FALSE)
|
||||
var/datum/language_holder/LH = get_language_holder()
|
||||
return LH.has_language(language, spoken)
|
||||
/atom/movable/proc/has_language(language, flags_to_check)
|
||||
return get_language_holder().has_language(language, flags_to_check)
|
||||
|
||||
/// Checks if atom can speak the language.
|
||||
/atom/movable/proc/can_speak_language(language)
|
||||
var/datum/language_holder/LH = get_language_holder()
|
||||
return LH.can_speak_language(language)
|
||||
return get_language_holder().can_speak_language(language)
|
||||
|
||||
/// Returns the result of tongue specific limitations on spoken languages.
|
||||
/atom/movable/proc/could_speak_language(language)
|
||||
@@ -697,33 +697,32 @@
|
||||
|
||||
/// Returns selected language, if it can be spoken, or finds, sets and returns a new selected language if possible.
|
||||
/atom/movable/proc/get_selected_language()
|
||||
var/datum/language_holder/LH = get_language_holder()
|
||||
return LH.get_selected_language()
|
||||
return get_language_holder().get_selected_language()
|
||||
|
||||
/// Gets a random understood language, useful for hallucinations and such.
|
||||
/atom/movable/proc/get_random_understood_language()
|
||||
var/datum/language_holder/LH = get_language_holder()
|
||||
return LH.get_random_understood_language()
|
||||
return get_language_holder().get_random_understood_language()
|
||||
|
||||
/// Gets a random spoken language, useful for forced speech and such.
|
||||
/atom/movable/proc/get_random_spoken_language()
|
||||
var/datum/language_holder/LH = get_language_holder()
|
||||
return LH.get_random_spoken_language()
|
||||
return get_language_holder().get_random_spoken_language()
|
||||
|
||||
/// Copies all languages into the supplied atom/language holder. Source should be overridden when you
|
||||
/// do not want the language overwritten by later atom updates or want to avoid blocked languages.
|
||||
/atom/movable/proc/copy_languages(from_holder, source_override)
|
||||
if(isatom(from_holder))
|
||||
/atom/movable/proc/copy_languages(datum/language_holder/from_holder, source_override)
|
||||
if(ismovable(from_holder))
|
||||
var/atom/movable/thing = from_holder
|
||||
from_holder = thing.get_language_holder()
|
||||
var/datum/language_holder/LH = get_language_holder()
|
||||
return LH.copy_languages(from_holder, source_override)
|
||||
|
||||
/// Empties out the atom specific languages and updates them according to the current atoms language holder.
|
||||
/// As a side effect, it also creates missing language holders in the process.
|
||||
/atom/movable/proc/update_atom_languages()
|
||||
var/datum/language_holder/LH = get_language_holder()
|
||||
return LH.update_atom_languages(src)
|
||||
return get_language_holder().copy_languages(from_holder, source_override)
|
||||
|
||||
/// Sets the passed path as the active language
|
||||
/// Returns the currently selected language if successful, if the language was not valid, returns null
|
||||
/atom/movable/proc/set_active_language(language_path)
|
||||
var/datum/language_holder/our_holder = get_language_holder()
|
||||
our_holder.selected_language = language_path
|
||||
|
||||
return our_holder.get_selected_language() // verifies its validity, returns it if successful.
|
||||
|
||||
/// Sets the vocal bark for the atom, using the bark's ID
|
||||
/atom/movable/proc/set_bark(id)
|
||||
|
||||
@@ -291,7 +291,6 @@ Credit where due:
|
||||
W.update_label()
|
||||
if(plasmaman && !visualsOnly) //If we need to breathe from the plasma tank, we should probably start doing that
|
||||
H.internal = H.get_item_for_held_index(2)
|
||||
H.update_internals_hud_icon(1)
|
||||
PDA.owner = H.real_name
|
||||
PDA.ownjob = "Assistant"
|
||||
PDA.update_label()
|
||||
|
||||
@@ -176,7 +176,6 @@ GLOBAL_VAR_INIT(hsboxspawn, TRUE)
|
||||
P.back.plane = ABOVE_HUD_PLANE
|
||||
P.update_inv_back()
|
||||
P.internal = P.back
|
||||
P.update_internals_hud_icon(1)
|
||||
|
||||
if("hsbscrubber") // This is beyond its normal capability but this is sandbox and you spawned one, I assume you need it
|
||||
var/obj/hsb = new/obj/machinery/portable_atmospherics/scrubber{volume_rate=50*ONE_ATMOSPHERE;on=1}(usr.loc)
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 2
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
|
||||
/obj/machinery/button/Initialize(mapload, ndir = 0, built = 0)
|
||||
if(istext(id) && mapload && id[1] == "!")
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
idle_power_usage = 2
|
||||
active_power_usage = 4
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
var/idSelf
|
||||
|
||||
/obj/machinery/doorButtons/attackby(obj/O, mob/user)
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
max_integrity = 250
|
||||
integrity_failure = 0.4
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, RAD = 100, FIRE = 90, ACID = 30)
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 2
|
||||
active_power_usage = 6
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
icon_state = "light1"
|
||||
base_icon_state = "light"
|
||||
desc = "Make dark."
|
||||
mouse_over_pointer = MOUSE_HAND_POINTER
|
||||
var/area/area = null
|
||||
var/otherarea = null
|
||||
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
M.setDir(dir)
|
||||
buckled_mobs |= M
|
||||
M.update_mobility()
|
||||
M.throw_alert("buckled", /atom/movable/screen/alert/restrained/buckled)
|
||||
M.throw_alert("buckled", /atom/movable/screen/alert/buckled)
|
||||
post_buckle_mob(M)
|
||||
|
||||
SEND_SIGNAL(src, COMSIG_MOVABLE_BUCKLE, M, force)
|
||||
|
||||
@@ -47,4 +47,4 @@
|
||||
if(!istype(T)) //you know this will happen somehow
|
||||
CRASH("Turf decal initialized in an object/nullspace")
|
||||
var/turn_dir = 180 - dir2angle(T.dir) //Turning a dir by 0 results in a roulette of random dirs.
|
||||
T.AddElement(/datum/element/decal, icon, icon_state, turn_dir ? turn(dir, turn_dir) : dir, CLEAN_GOD, color, null, null, alpha)
|
||||
T.AddElement(/datum/element/decal, icon, icon_state, turn_dir ? turn(dir, turn_dir) : dir, CLEAN_GOD, color, null, null, alpha, FALSE)
|
||||
|
||||
@@ -220,8 +220,8 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark)
|
||||
name = "department_sec"
|
||||
icon_state = "Security Officer"
|
||||
|
||||
/obj/effect/landmark/start/depsec/New()
|
||||
..()
|
||||
/obj/effect/landmark/start/depsec/Initialize(mapload)
|
||||
. = ..()
|
||||
GLOB.department_security_spawns += src
|
||||
|
||||
/obj/effect/landmark/start/depsec/Destroy()
|
||||
@@ -246,7 +246,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark)
|
||||
icon_state = "wiznerd_spawn"
|
||||
|
||||
/obj/effect/landmark/start/wizard/Initialize(mapload)
|
||||
..()
|
||||
. = ..()
|
||||
GLOB.wizardstart += loc
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
@@ -256,7 +256,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark)
|
||||
icon_state = "snukeop_spawn"
|
||||
|
||||
/obj/effect/landmark/start/nukeop/Initialize(mapload)
|
||||
..()
|
||||
. = ..()
|
||||
GLOB.nukeop_start += loc
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
@@ -266,7 +266,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark)
|
||||
icon_state = "snukeop_leader_spawn"
|
||||
|
||||
/obj/effect/landmark/start/nukeop_leader/Initialize(mapload)
|
||||
..()
|
||||
. = ..()
|
||||
GLOB.nukeop_leader_start += loc
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
@@ -278,7 +278,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player)
|
||||
name = "New Player"
|
||||
|
||||
/obj/effect/landmark/start/new_player/Initialize(mapload)
|
||||
..()
|
||||
. = ..()
|
||||
GLOB.newplayer_start += loc
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
@@ -308,7 +308,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player)
|
||||
name = "JoinLate"
|
||||
|
||||
/obj/effect/landmark/latejoin/Initialize(mapload)
|
||||
..()
|
||||
. = ..()
|
||||
SSjob.latejoin_trackers += loc
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
@@ -333,7 +333,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player)
|
||||
icon_state = "xeno_spawn"
|
||||
|
||||
/obj/effect/landmark/xeno_spawn/Initialize(mapload)
|
||||
..()
|
||||
. = ..()
|
||||
GLOB.xeno_spawn += loc
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
@@ -343,7 +343,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player)
|
||||
icon_state = "blob_start"
|
||||
|
||||
/obj/effect/landmark/blobstart/Initialize(mapload)
|
||||
..()
|
||||
. = ..()
|
||||
GLOB.blobstart += loc
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
@@ -352,7 +352,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player)
|
||||
icon_state = "secequipment"
|
||||
|
||||
/obj/effect/landmark/secequipment/Initialize(mapload)
|
||||
..()
|
||||
. = ..()
|
||||
GLOB.secequipment += loc
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
@@ -361,7 +361,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player)
|
||||
icon_state = "prisonwarp"
|
||||
|
||||
/obj/effect/landmark/prisonwarp/Initialize(mapload)
|
||||
..()
|
||||
. = ..()
|
||||
GLOB.prisonwarp += loc
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
@@ -370,7 +370,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player)
|
||||
icon_state = "ert_spawn"
|
||||
|
||||
/obj/effect/landmark/ert_spawn/Initialize(mapload)
|
||||
..()
|
||||
. = ..()
|
||||
GLOB.emergencyresponseteamspawn += loc
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
@@ -379,7 +379,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player)
|
||||
icon_state = "holding_facility"
|
||||
|
||||
/obj/effect/landmark/holding_facility/Initialize(mapload)
|
||||
..()
|
||||
. = ..()
|
||||
GLOB.holdingfacility += loc
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
@@ -388,7 +388,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player)
|
||||
icon_state = "tdome_observer"
|
||||
|
||||
/obj/effect/landmark/thunderdome/observe/Initialize(mapload)
|
||||
..()
|
||||
. = ..()
|
||||
GLOB.tdomeobserve += loc
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
@@ -397,7 +397,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player)
|
||||
icon_state = "tdome_t1"
|
||||
|
||||
/obj/effect/landmark/thunderdome/one/Initialize(mapload)
|
||||
..()
|
||||
. = ..()
|
||||
GLOB.tdome1 += loc
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
@@ -406,7 +406,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player)
|
||||
icon_state = "tdome_t2"
|
||||
|
||||
/obj/effect/landmark/thunderdome/two/Initialize(mapload)
|
||||
..()
|
||||
. = ..()
|
||||
GLOB.tdome2 += loc
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
@@ -415,7 +415,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player)
|
||||
icon_state = "tdome_admin"
|
||||
|
||||
/obj/effect/landmark/thunderdome/admin/Initialize(mapload)
|
||||
..()
|
||||
. = ..()
|
||||
GLOB.tdomeadmin += loc
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
@@ -426,7 +426,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player)
|
||||
layer = MOB_LAYER
|
||||
|
||||
/obj/effect/landmark/servant_of_ratvar/Initialize(mapload)
|
||||
..()
|
||||
. = ..()
|
||||
GLOB.servant_spawns += loc
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
@@ -436,7 +436,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player)
|
||||
icon_state = "city_of_cogs"
|
||||
|
||||
/obj/effect/landmark/city_of_cogs/Initialize(mapload)
|
||||
..()
|
||||
. = ..()
|
||||
GLOB.city_of_cogs_spawns += loc
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
@@ -448,7 +448,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player)
|
||||
|
||||
|
||||
/obj/effect/landmark/event_spawn/New()
|
||||
..()
|
||||
. = ..()
|
||||
GLOB.generic_event_spawns += src
|
||||
|
||||
/obj/effect/landmark/event_spawn/Destroy()
|
||||
@@ -458,9 +458,9 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player)
|
||||
/obj/effect/landmark/ruin
|
||||
var/datum/map_template/ruin/ruin_template
|
||||
|
||||
/obj/effect/landmark/ruin/New(loc, my_ruin_template)
|
||||
/obj/effect/landmark/ruin/Initialize(mapload, my_ruin_template)
|
||||
. = ..()
|
||||
name = "ruin_[GLOB.ruin_landmarks.len + 1]"
|
||||
..(loc)
|
||||
ruin_template = my_ruin_template
|
||||
GLOB.ruin_landmarks |= src
|
||||
|
||||
@@ -475,8 +475,8 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player)
|
||||
layer = BULLET_HOLE_LAYER
|
||||
plane = ABOVE_WALL_PLANE
|
||||
|
||||
/obj/effect/landmark/stationroom/New()
|
||||
..()
|
||||
/obj/effect/landmark/stationroom/Initialize(mapload)
|
||||
. = ..()
|
||||
GLOB.stationroom_landmarks += src
|
||||
|
||||
/obj/effect/landmark/stationroom/Destroy()
|
||||
@@ -514,7 +514,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player)
|
||||
templates = list("Engine SM" = 3, "Engine Singulo" = 3, "Engine Tesla" = 3)
|
||||
icon = 'icons/rooms/box/engine.dmi'
|
||||
|
||||
/obj/effect/landmark/stationroom/box/engine/New()
|
||||
/obj/effect/landmark/stationroom/box/engine/Initialize(mapload)
|
||||
. = ..()
|
||||
templates = CONFIG_GET(keyed_list/box_random_engine)
|
||||
|
||||
|
||||
@@ -160,9 +160,6 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
|
||||
var/list/grind_results //A reagent list containing the reagents this item produces when ground up in a grinder - this can be an empty list to allow for reagent transferring only
|
||||
var/list/juice_results //A reagent list containing blah blah... but when JUICED in a grinder!
|
||||
|
||||
//the outline filter on hover
|
||||
var/outline_filter
|
||||
|
||||
/* Our block parry data. Should be set in init, or something if you are using it.
|
||||
* This won't be accessed without ITEM_CAN_BLOCK or ITEM_CAN_PARRY so do not set it unless you have to to save memory.
|
||||
* If you decide it's a good idea to leave this unset while turning the flags on, you will runtime. Enjoy.
|
||||
|
||||
@@ -399,8 +399,8 @@
|
||||
var/emp_cur_charges = 4
|
||||
var/charge_tick = 0
|
||||
|
||||
/obj/item/flashlight/emp/New()
|
||||
..()
|
||||
/obj/item/flashlight/emp/Initialize(mapload)
|
||||
. = ..()
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/item/flashlight/emp/Destroy()
|
||||
|
||||
@@ -81,6 +81,12 @@ GLOBAL_LIST_INIT(channel_tokens, list(
|
||||
return ..(freq, level)
|
||||
return FALSE
|
||||
|
||||
/obj/item/radio/headset/MouseDrop(mob/over, src_location, over_location)
|
||||
var/mob/headset_user = usr
|
||||
if((headset_user == over) && headset_user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK))
|
||||
return attack_self(headset_user)
|
||||
return ..()
|
||||
|
||||
/obj/item/radio/headset/syndicate //disguised to look like a normal headset for stealth ops
|
||||
|
||||
/obj/item/radio/headset/syndicate/alt //undisguised bowman with flash protection
|
||||
|
||||
@@ -37,8 +37,8 @@
|
||||
var/forgedseal = 0
|
||||
var/copy_type = null
|
||||
|
||||
/obj/item/documents/photocopy/New(loc, obj/item/documents/copy=null)
|
||||
..()
|
||||
/obj/item/documents/photocopy/Initialize(mapload, obj/item/documents/copy=null)
|
||||
. = ..()
|
||||
if(copy)
|
||||
copy_type = copy.type
|
||||
if(istype(copy, /obj/item/documents/photocopy)) // Copy Of A Copy Of A Copy
|
||||
|
||||
@@ -522,7 +522,6 @@
|
||||
S.ckey = C.ckey
|
||||
S.status_flags |= GODMODE
|
||||
S.copy_languages(user, LANGUAGE_MASTER) //Make sure the sword can understand and communicate with the user.
|
||||
S.update_atom_languages()
|
||||
grant_all_languages(FALSE, FALSE, TRUE) //Grants omnitongue
|
||||
S.AddElement(/datum/element/ghost_role_eligibility,penalize_on_ghost = TRUE)
|
||||
START_PROCESSING(SSprocessing,src)
|
||||
|
||||
@@ -149,7 +149,9 @@
|
||||
/obj/item/storage/belt/medical/ComponentInitialize()
|
||||
. = ..()
|
||||
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
|
||||
STR.max_w_class = WEIGHT_CLASS_BULKY
|
||||
// GS13 Edit
|
||||
//STR.max_w_class = WEIGHT_CLASS_BULKY
|
||||
// GS13 End Edit
|
||||
STR.max_items = 11
|
||||
STR.max_w_class = WEIGHT_CLASS_NORMAL
|
||||
STR.max_combined_w_class = 24
|
||||
@@ -202,7 +204,10 @@
|
||||
/obj/item/implanter,
|
||||
/obj/item/pinpointer/crew,
|
||||
/obj/item/reagent_containers/chem_pack,
|
||||
/obj/item/stack/sticky_tape //surgical tape
|
||||
// GS13 Edit
|
||||
/obj/item/stack/sticky_tape, //surgical tape
|
||||
/obj/item/fermichem/pHmeter // chemical analyzer
|
||||
// GS13 End Edit
|
||||
))
|
||||
|
||||
/obj/item/storage/belt/medical/surgery_belt_adv
|
||||
|
||||
@@ -34,7 +34,6 @@
|
||||
if(H.internal == src)
|
||||
to_chat(H, "<span class='notice'>You close [src] valve.</span>")
|
||||
H.internal = null
|
||||
H.update_internals_hud_icon(0)
|
||||
else
|
||||
if(!H.getorganslot(ORGAN_SLOT_BREATHING_TUBE))
|
||||
if(HAS_TRAIT(H, TRAIT_NO_INTERNALS))
|
||||
@@ -60,7 +59,6 @@
|
||||
else
|
||||
to_chat(H, "<span class='notice'>You open [src] valve.</span>")
|
||||
H.internal = src
|
||||
H.update_internals_hud_icon(1)
|
||||
H.update_action_buttons_icon()
|
||||
|
||||
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
var/fuel_added = 0
|
||||
var/flame_expiry_timer
|
||||
|
||||
/obj/structure/fireplace/New()
|
||||
..()
|
||||
/obj/structure/fireplace/Initialize(mapload)
|
||||
. = ..()
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/structure/fireplace/Destroy()
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
new_spawn.undershirt = "Nude" //changing underwear/shirt/socks doesn't seem to function correctly right now because of some bug elsewhere?
|
||||
new_spawn.socks = "Nude"
|
||||
new_spawn.update_body(TRUE)
|
||||
new_spawn.language_holder.selected_language = /datum/language/sylvan
|
||||
new_spawn.set_active_language(/datum/language/sylvan)
|
||||
|
||||
//Ash walker eggs: Spawns in ash walker dens in lavaland. Ghosts become unbreathing lizards that worship the Necropolis and are advised to retrieve corpses to create more ash walkers.
|
||||
|
||||
@@ -878,7 +878,6 @@
|
||||
|
||||
/datum/outfit/ghostcafe/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
H.internal = H.get_item_for_held_index(1)
|
||||
H.update_internals_hud_icon(1)
|
||||
|
||||
/obj/item/storage/box/syndie_kit/chameleon/ghostcafe
|
||||
name = "ghost cafe costuming kit"
|
||||
|
||||
@@ -154,12 +154,9 @@ GLOBAL_LIST_EMPTY(lifts)
|
||||
var/list/atom/movable/lift_load //things to move
|
||||
var/datum/lift_master/lift_master_datum //control from
|
||||
|
||||
/obj/structure/industrial_lift/New()
|
||||
GLOB.lifts.Add(src)
|
||||
..()
|
||||
|
||||
/obj/structure/industrial_lift/Initialize(mapload)
|
||||
. = ..()
|
||||
GLOB.lifts.Add(src)
|
||||
RegisterSignal(src, COMSIG_MOVABLE_CROSSED, PROC_REF(AddItemOnLift))
|
||||
RegisterSignal(loc, COMSIG_ATOM_CREATED, PROC_REF(AddItemOnLift))//For atoms created on platform
|
||||
RegisterSignal(src, COMSIG_MOVABLE_UNCROSSED, PROC_REF(RemoveItemFromLift))
|
||||
|
||||
@@ -119,23 +119,23 @@
|
||||
var/list/races_blacklist = list("skeleton", "agent", "military_synth", "memezombies", "clockwork golem servant", "android", "synth", "mush", "zombie", "memezombie")
|
||||
var/list/choosable_races = list()
|
||||
|
||||
/obj/structure/mirror/magic/New()
|
||||
/obj/structure/mirror/magic/Initialize(mapload)
|
||||
. = ..()
|
||||
if(!choosable_races.len)
|
||||
for(var/speciestype in subtypesof(/datum/species))
|
||||
var/datum/species/S = new speciestype()
|
||||
if(!(S.id in races_blacklist))
|
||||
choosable_races += S.id
|
||||
..()
|
||||
|
||||
/obj/structure/mirror/magic/lesser/New()
|
||||
/obj/structure/mirror/magic/lesser/Initialize(mapload)
|
||||
choosable_races = GLOB.roundstart_races.Copy()
|
||||
..()
|
||||
return ..()
|
||||
|
||||
/obj/structure/mirror/magic/badmin/New()
|
||||
/obj/structure/mirror/magic/badmin/Initialize(mapload)
|
||||
for(var/speciestype in subtypesof(/datum/species))
|
||||
var/datum/species/S = new speciestype()
|
||||
choosable_races += S.id
|
||||
..()
|
||||
return ..()
|
||||
|
||||
/obj/structure/mirror/magic/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags)
|
||||
if(!ishuman(user))
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
var/enter_delay = 0
|
||||
var/const/time_to_unwrench = 2 SECONDS
|
||||
|
||||
/obj/structure/transit_tube/New(loc, newdirection)
|
||||
..(loc)
|
||||
/obj/structure/transit_tube/Initialize(mapload, newdirection)
|
||||
. = ..()
|
||||
if(newdirection)
|
||||
setDir(newdirection)
|
||||
init_tube_dirs()
|
||||
|
||||
@@ -232,6 +232,10 @@ distance_multiplier - Can be used to multiply the distance at which the sound is
|
||||
/proc/get_rand_frequency()
|
||||
return rand(32000, 55000) //Frequency stuff only works with 45kbps oggs.
|
||||
|
||||
///get_rand_frequency but lower range.
|
||||
/proc/get_rand_frequency_low_range()
|
||||
return rand(38000, 45000)
|
||||
|
||||
/proc/get_sfx(soundin)
|
||||
if(istext(soundin))
|
||||
switch(soundin)
|
||||
|
||||
@@ -13,9 +13,6 @@
|
||||
desc = "Flooring that shows its contents underneath. Engineers love it!"
|
||||
baseturfs = /turf/open/floor/plating
|
||||
footstep = FOOTSTEP_CATWALK
|
||||
barefootstep = FOOTSTEP_CATWALK
|
||||
clawfootstep = FOOTSTEP_CATWALK
|
||||
heavyfootstep = FOOTSTEP_CATWALK
|
||||
intact = FALSE
|
||||
var/covered = TRUE
|
||||
|
||||
|
||||
@@ -1007,7 +1007,7 @@
|
||||
log_admin("[key_name(usr)] stuffed [frommob.key] into [tomob.name].")
|
||||
SSblackbox.record_feedback("tally", "admin_verb", 1, "Ghost Drag Control")
|
||||
|
||||
tomob.ckey = frommob.ckey
|
||||
tomob.key = frommob.key
|
||||
qdel(frommob)
|
||||
|
||||
return TRUE
|
||||
|
||||
@@ -2081,8 +2081,7 @@
|
||||
if(!ismob(M))
|
||||
to_chat(usr, "This can only be used on instances of type /mob.")
|
||||
return
|
||||
var/datum/language_holder/H = M.get_language_holder()
|
||||
H.open_language_menu(usr)
|
||||
M.get_language_holder().open_language_menu(usr)
|
||||
|
||||
else if(href_list["traitor"])
|
||||
if(!check_rights(R_ADMIN))
|
||||
|
||||
@@ -135,9 +135,9 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
/obj/effect/statclick/ticket_list
|
||||
var/current_state
|
||||
|
||||
/obj/effect/statclick/ticket_list/New(loc, name, state)
|
||||
/obj/effect/statclick/ticket_list/Initialize(mapload, name, state)
|
||||
. = ..()
|
||||
current_state = state
|
||||
..()
|
||||
|
||||
/obj/effect/statclick/ticket_list/Click()
|
||||
GLOB.ahelp_tickets.BrowseTickets(current_state)
|
||||
|
||||
@@ -63,6 +63,13 @@ GLOBAL_DATUM_INIT(pluto, /atom/movable, new /atom/movable(null))
|
||||
return FALSE
|
||||
if(var_name == NAMEOF(src, realized_underlays))
|
||||
return FALSE
|
||||
|
||||
#if (MIN_COMPILER_VERSION >= 515 && MIN_COMPILER_BUILD >= 1643)
|
||||
#warn X/Y/Z and contents are now fully unviewable on our supported versions, remove the below check
|
||||
#endif
|
||||
|
||||
// lummy removed these from the the MA/image type
|
||||
#if (DM_VERSION <= 515 && DM_BUILD < 1643)
|
||||
// Filtering out the stuff I know we don't care about
|
||||
if(var_name == NAMEOF(src, x))
|
||||
return FALSE
|
||||
@@ -70,13 +77,14 @@ GLOBAL_DATUM_INIT(pluto, /atom/movable, new /atom/movable(null))
|
||||
return FALSE
|
||||
if(var_name == NAMEOF(src, z))
|
||||
return FALSE
|
||||
// Could make an argument for these but I think they will just confuse people, so yeeet
|
||||
#ifndef SPACEMAN_DMM // Spaceman doesn't believe in contents on appearances, sorry lads
|
||||
#ifndef SPACEMAN_DMM // Spaceman doesn't believe in contents on appearances, sorry lads
|
||||
if(var_name == NAMEOF(src, contents))
|
||||
return FALSE
|
||||
#endif
|
||||
#endif
|
||||
if(var_name == NAMEOF(src, loc))
|
||||
return FALSE
|
||||
#endif
|
||||
// Could make an argument for this but I think they will just confuse people, so yeeet
|
||||
if(var_name == NAMEOF(src, vis_contents))
|
||||
return FALSE
|
||||
return ..()
|
||||
|
||||
@@ -10,12 +10,12 @@
|
||||
/obj/item/organ/heart/gland/slime/Insert(mob/living/carbon/M, special = 0, drop_if_replaced = TRUE)
|
||||
..()
|
||||
owner.faction |= "slime"
|
||||
owner.grant_language(/datum/language/slime, TRUE, TRUE, LANGUAGE_GLAND)
|
||||
owner.grant_language(/datum/language/slime, source = LANGUAGE_GLAND)
|
||||
|
||||
/obj/item/organ/heart/gland/slime/Remove(mob/living/carbon/M, special = 0)
|
||||
..()
|
||||
owner.faction -= "slime"
|
||||
owner.remove_language(/datum/language/slime, TRUE, TRUE, LANGUAGE_GLAND)
|
||||
owner.remove_language(/datum/language/slime, source = LANGUAGE_GLAND)
|
||||
|
||||
/obj/item/organ/heart/gland/slime/activate()
|
||||
to_chat(owner, "<span class='warning'>You feel nauseated!</span>")
|
||||
|
||||
@@ -210,7 +210,7 @@
|
||||
// Physiology
|
||||
CheckVampOrgans() // Heart, Eyes
|
||||
// Language
|
||||
owner.current.grant_language(/datum/language/vampiric, TRUE, TRUE, LANGUAGE_BLOODSUCKER)
|
||||
owner.current.grant_language(/datum/language/vampiric, source = LANGUAGE_BLOODSUCKER)
|
||||
owner.hasSoul = FALSE // If false, renders the character unable to sell their soul.
|
||||
owner.isholy = FALSE // is this person a chaplain or admin role allowed to use bibles
|
||||
// Disabilities
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user