Merge branch 'release' of https://github.com/VOREStation/VOREStation into uppstream-update
@@ -49,7 +49,7 @@
|
||||
// Chemistry lists.
|
||||
var/list/tachycardics = list("coffee", "inaprovaline", "hyperzine", "nitroglycerin", "thirteenloko", "nicotine") // Increase heart rate.
|
||||
var/list/bradycardics = list("neurotoxin", "cryoxadone", "clonexadone", "bliss", "stoxin", "ambrosia_extract") // Decrease heart rate.
|
||||
var/list/heartstopper = list("potassium_chlorophoride", "zombie_powder") // This stops the heart.
|
||||
var/list/heartstopper = list("potassium_chlorophoride", "zombiepowder") // This stops the heart.
|
||||
var/list/cheartstopper = list("potassium_chloride") // This stops the heart when overdose is met. -- c = conditional
|
||||
|
||||
#define MAX_PILL_SPRITE 24 //max icon state of the pill sprites
|
||||
|
||||
@@ -665,9 +665,7 @@ var/global/list/xenobio_gold_mobs_hostile = list(
|
||||
/mob/living/simple_mob/animal/giant_spider/webslinger,
|
||||
/mob/living/simple_mob/animal/giant_spider/phorogenic,
|
||||
/mob/living/simple_mob/animal/giant_spider/carrier,
|
||||
/mob/living/simple_mob/animal/giant_spider/nurse,
|
||||
/mob/living/simple_mob/animal/giant_spider/ion,
|
||||
/mob/living/simple_mob/animal/giant_spider/nurse/queen,
|
||||
/mob/living/simple_mob/animal/sif/diyaab,
|
||||
/mob/living/simple_mob/animal/sif/duck,
|
||||
/mob/living/simple_mob/animal/sif/frostfly,
|
||||
|
||||
@@ -240,7 +240,8 @@ var/obj/screen/robot_inventory
|
||||
|
||||
var/display_rows = -round(-(r.module.modules.len) / 8)
|
||||
r.robot_modules_background.screen_loc = "CENTER-4:16,SOUTH+1:7 to CENTER+3:16,SOUTH+[display_rows]:7"
|
||||
r.client.screen += r.robot_modules_background
|
||||
if(r.client)
|
||||
r.client.screen += r.robot_modules_background
|
||||
|
||||
var/x = -4 //Start at CENTER-4,SOUTH+1
|
||||
var/y = 1
|
||||
@@ -258,7 +259,7 @@ var/obj/screen/robot_inventory
|
||||
r.module.modules.Remove(r.module.emag)
|
||||
|
||||
for(var/atom/movable/A in r.module.modules)
|
||||
if( (A != r.module_state_1) && (A != r.module_state_2) && (A != r.module_state_3) )
|
||||
if(r.client && (A != r.module_state_1) && (A != r.module_state_2) && (A != r.module_state_3) )
|
||||
//Module is not currently active
|
||||
r.client.screen += A
|
||||
if(x < 0)
|
||||
@@ -276,11 +277,12 @@ var/obj/screen/robot_inventory
|
||||
//Modules display is hidden
|
||||
//r.client.screen -= robot_inventory //"store" icon
|
||||
for(var/atom/A in r.module.modules)
|
||||
if( (A != r.module_state_1) && (A != r.module_state_2) && (A != r.module_state_3) )
|
||||
if(r.client && (A != r.module_state_1) && (A != r.module_state_2) && (A != r.module_state_3) )
|
||||
//Module is not currently active
|
||||
r.client.screen -= A
|
||||
r.shown_robot_modules = 0
|
||||
r.client.screen -= r.robot_modules_background
|
||||
if(r.client)
|
||||
r.client.screen -= r.robot_modules_background
|
||||
|
||||
/mob/living/silicon/robot/update_hud()
|
||||
if(modtype)
|
||||
|
||||
@@ -36,7 +36,7 @@ GLOBAL_REAL(GLOB, /datum/controller/global_vars)
|
||||
if(!statclick)
|
||||
statclick = new/obj/effect/statclick/debug(null, "Initializing...", src)
|
||||
|
||||
stat("GLOB:", "Button Removed Due To Crashing") //VOREStation Edit
|
||||
stat("GLOB:", statclick.update("Edit"))
|
||||
|
||||
/datum/controller/global_vars/vv_edit_var(var_name, var_value)
|
||||
if(gvars_datum_protected_varlist[var_name])
|
||||
|
||||
@@ -12,6 +12,8 @@ var/datum/antagonist/highlander/highlanders
|
||||
initial_spawn_req = 3
|
||||
initial_spawn_target = 5
|
||||
|
||||
id_type = /obj/item/weapon/card/id/centcom/ERT
|
||||
|
||||
/datum/antagonist/highlander/New()
|
||||
..()
|
||||
highlanders = src
|
||||
@@ -32,26 +34,28 @@ var/datum/antagonist/highlander/highlanders
|
||||
if(!..())
|
||||
return
|
||||
|
||||
for (var/obj/item/I in player)
|
||||
if (istype(I, /obj/item/weapon/implant))
|
||||
continue
|
||||
qdel(I)
|
||||
|
||||
// drop original items! It used to be a loop that just Qdeled everything including your organs!
|
||||
// Dropping because of non-oxy breathers... That would suck wouldn't it?
|
||||
player.drop_from_inventory(player.get_equipped_item(slot_wear_id))
|
||||
player.drop_from_inventory(player.get_equipped_item(slot_wear_suit))
|
||||
player.drop_from_inventory(player.get_equipped_item(slot_w_uniform))
|
||||
player.drop_from_inventory(player.get_equipped_item(slot_l_ear))
|
||||
player.drop_from_inventory(player.get_equipped_item(slot_head))
|
||||
player.drop_from_inventory(player.get_equipped_item(slot_l_hand))
|
||||
player.drop_from_inventory(player.get_equipped_item(slot_shoes))
|
||||
player.drop_from_inventory(player.get_equipped_item(slot_l_store))
|
||||
// highlanders!
|
||||
player.equip_to_slot_or_del(new /obj/item/clothing/under/kilt(player), slot_w_uniform)
|
||||
player.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(player), slot_l_ear)
|
||||
player.equip_to_slot_or_del(new /obj/item/clothing/head/beret(player), slot_head)
|
||||
player.equip_to_slot_or_del(new /obj/item/weapon/material/sword(player), slot_l_hand)
|
||||
player.equip_to_slot_or_del(new /obj/item/clothing/shoes/boots/combat(player), slot_shoes)
|
||||
player.equip_to_slot_or_del(new /obj/item/weapon/pinpointer(get_turf(player)), slot_l_store)
|
||||
|
||||
var/obj/item/weapon/card/id/W = new(player)
|
||||
W.name = "[player.real_name]'s ID Card"
|
||||
W.icon_state = "centcom"
|
||||
W.access = get_all_station_access().Copy()
|
||||
W.access |= get_all_centcom_access()
|
||||
W.assignment = "Highlander"
|
||||
W.registered_name = player.real_name
|
||||
player.equip_to_slot_or_del(W, slot_wear_id)
|
||||
var/obj/item/weapon/card/id/id = create_id("Highlander", player)
|
||||
if(id)
|
||||
id.access |= get_all_station_access()
|
||||
id.icon_state = "centcom"
|
||||
create_radio(DTH_FREQ, player)
|
||||
|
||||
/proc/only_one()
|
||||
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
"BAT" = /mob/living/simple_mob/animal/space/bats,
|
||||
"SPIDER" = /mob/living/simple_mob/animal/giant_spider,
|
||||
"SPIDER HUNTER" = /mob/living/simple_mob/animal/giant_spider/hunter,
|
||||
"SPIDER NURSE" = /mob/living/simple_mob/animal/giant_spider/nurse,
|
||||
"CARP" = /mob/living/simple_mob/animal/space/carp,
|
||||
"BEAR" = /mob/living/simple_mob/animal/space/bear
|
||||
)
|
||||
@@ -57,4 +56,4 @@
|
||||
|
||||
|
||||
// Now we hurt their new pal, because being forcefully abducted by teleportation can't be healthy.
|
||||
summoned.adjustBruteLoss(summoned.getMaxHealth() * 0.3) // Lose 30% of max health on arrival (but could be healed back up).
|
||||
summoned.adjustBruteLoss(summoned.getMaxHealth() * 0.3) // Lose 30% of max health on arrival (but could be healed back up).
|
||||
|
||||
@@ -104,7 +104,6 @@ var/global/list/semirandom_mob_spawner_decisions = list()
|
||||
list(/mob/living/simple_mob/animal/sif/siffet),
|
||||
list(/mob/living/simple_mob/animal/sif/tymisian),
|
||||
list(
|
||||
/mob/living/simple_mob/animal/giant_spider/nurse = 10,
|
||||
/mob/living/simple_mob/animal/giant_spider/electric = 5,
|
||||
/mob/living/simple_mob/animal/giant_spider/frost = 5,
|
||||
/mob/living/simple_mob/animal/giant_spider/hunter = 10,
|
||||
@@ -448,7 +447,6 @@ var/global/list/semirandom_mob_spawner_decisions = list()
|
||||
|
||||
possible_mob_types = list(
|
||||
list(
|
||||
/mob/living/simple_mob/animal/giant_spider/nurse = 10,
|
||||
/mob/living/simple_mob/animal/giant_spider/electric = 5,
|
||||
/mob/living/simple_mob/animal/giant_spider/frost = 5,
|
||||
/mob/living/simple_mob/animal/giant_spider/hunter = 10,
|
||||
|
||||
@@ -154,7 +154,7 @@
|
||||
var/amount_grown = 0
|
||||
var/obj/machinery/atmospherics/unary/vent_pump/entry_vent
|
||||
var/travelling_in_vent = 0
|
||||
var/list/grow_as = list(/mob/living/simple_mob/animal/giant_spider, /mob/living/simple_mob/animal/giant_spider/nurse, /mob/living/simple_mob/animal/giant_spider/hunter)
|
||||
var/list/grow_as = list(/mob/living/simple_mob/animal/giant_spider, /mob/living/simple_mob/animal/giant_spider/hunter)
|
||||
var/faction = "spiders"
|
||||
|
||||
var/stunted = FALSE
|
||||
|
||||
@@ -309,3 +309,17 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
|
||||
icon_state = "[initial(icon_state)]_on"
|
||||
else
|
||||
icon_state = initial(icon_state)
|
||||
|
||||
/obj/item/device/sleevemate/emag_act(var/remaining_charges, var/mob/user)
|
||||
to_chat(user,"<span class='danger'>You hack [src]!</span>")
|
||||
var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
|
||||
spark_system.set_up(5, 0, src.loc)
|
||||
spark_system.start()
|
||||
playsound(src, "sparks", 50, 1)
|
||||
if(istype(src.loc,/mob/living))
|
||||
var/mob/living/L = src.loc
|
||||
L.unEquip(src)
|
||||
src.forceMove(get_turf(src))
|
||||
new /obj/item/device/bodysnatcher(src.loc)
|
||||
qdel(src)
|
||||
return 1
|
||||
|
||||
@@ -635,7 +635,6 @@
|
||||
list(/mob/living/simple_mob/animal/sif/siffet),
|
||||
list(/mob/living/simple_mob/animal/sif/tymisian),
|
||||
list(
|
||||
/mob/living/simple_mob/animal/giant_spider/nurse = 10,
|
||||
/mob/living/simple_mob/animal/giant_spider/electric = 5,
|
||||
/mob/living/simple_mob/animal/giant_spider/frost = 5,
|
||||
/mob/living/simple_mob/animal/giant_spider/hunter = 10,
|
||||
|
||||
@@ -1,184 +1,184 @@
|
||||
// SEE code/modules/materials/materials.dm FOR DETAILS ON INHERITED DATUM.
|
||||
// This class of weapons takes force and appearance data from a material datum.
|
||||
// They are also fragile based on material data and many can break/smash apart.
|
||||
/obj/item/weapon/material
|
||||
health = 10
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
gender = NEUTER
|
||||
throw_speed = 3
|
||||
throw_range = 7
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
sharp = FALSE
|
||||
edge = FALSE
|
||||
item_icons = list(
|
||||
slot_l_hand_str = 'icons/mob/items/lefthand_material.dmi',
|
||||
slot_r_hand_str = 'icons/mob/items/righthand_material.dmi',
|
||||
)
|
||||
|
||||
var/applies_material_colour = 1
|
||||
var/unbreakable = 0 //Doesn't lose health
|
||||
var/fragile = 0 //Shatters when it dies
|
||||
var/dulled = 0 //Has gone dull
|
||||
var/can_dull = 1 //Can it go dull?
|
||||
var/force_divisor = 0.5
|
||||
var/thrown_force_divisor = 0.5
|
||||
var/dulled_divisor = 0.5 //Just drops the damage by half
|
||||
var/default_material = MAT_STEEL
|
||||
var/datum/material/material
|
||||
var/drops_debris = 1
|
||||
var/named_from_material = 1 //YW EDIT, Does it prepend the material's name to it's name?
|
||||
|
||||
/obj/item/weapon/material/New(var/newloc, var/material_key)
|
||||
..(newloc)
|
||||
if(!material_key)
|
||||
material_key = default_material
|
||||
set_material(material_key)
|
||||
if(!material)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
matter = material.get_matter()
|
||||
if(matter.len)
|
||||
for(var/material_type in matter)
|
||||
if(!isnull(matter[material_type]))
|
||||
matter[material_type] *= force_divisor // May require a new var instead.
|
||||
|
||||
if(!(material.conductive))
|
||||
src.flags |= NOCONDUCT
|
||||
|
||||
/obj/item/weapon/material/get_material()
|
||||
return material
|
||||
|
||||
/obj/item/weapon/material/proc/update_force()
|
||||
if(edge || sharp)
|
||||
force = material.get_edge_damage()
|
||||
else
|
||||
force = material.get_blunt_damage()
|
||||
force = round(force*force_divisor)
|
||||
if(dulled)
|
||||
force = round(force*dulled_divisor)
|
||||
throwforce = round(material.get_blunt_damage()*thrown_force_divisor)
|
||||
//spawn(1)
|
||||
// to_world("[src] has force [force] and throwforce [throwforce] when made from default material [material.name]")
|
||||
|
||||
/obj/item/weapon/material/proc/set_material(var/new_material)
|
||||
material = get_material_by_name(new_material)
|
||||
if(!material)
|
||||
qdel(src)
|
||||
else
|
||||
if(named_from_material) //YW EDIT
|
||||
name = "[material.display_name] [initial(name)]"
|
||||
health = round(material.integrity/10)
|
||||
if(applies_material_colour)
|
||||
color = material.icon_colour
|
||||
if(material.products_need_process())
|
||||
START_PROCESSING(SSobj, src)
|
||||
update_force()
|
||||
|
||||
/obj/item/weapon/material/Destroy()
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
. = ..()
|
||||
|
||||
/obj/item/weapon/material/apply_hit_effect()
|
||||
..()
|
||||
if(!unbreakable)
|
||||
if(material.is_brittle())
|
||||
health = 0
|
||||
else if(!prob(material.hardness))
|
||||
health--
|
||||
check_health()
|
||||
|
||||
/obj/item/weapon/material/attackby(obj/item/weapon/W, mob/user)
|
||||
if(istype(W, /obj/item/weapon/whetstone))
|
||||
var/obj/item/weapon/whetstone/whet = W
|
||||
repair(whet.repair_amount, whet.repair_time, user)
|
||||
if(istype(W, /obj/item/weapon/material/sharpeningkit))
|
||||
var/obj/item/weapon/material/sharpeningkit/SK = W
|
||||
repair(SK.repair_amount, SK.repair_time, user)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/material/proc/check_health(var/consumed)
|
||||
if(health<=0)
|
||||
health = 0
|
||||
|
||||
if(fragile)
|
||||
shatter(consumed)
|
||||
else if(!dulled && can_dull)
|
||||
dull()
|
||||
|
||||
/obj/item/weapon/material/proc/shatter(var/consumed)
|
||||
var/turf/T = get_turf(src)
|
||||
T.visible_message("<span class='danger'>\The [src] [material.destruction_desc]!</span>")
|
||||
if(istype(loc, /mob/living))
|
||||
var/mob/living/M = loc
|
||||
M.drop_from_inventory(src)
|
||||
playsound(src, "shatter", 70, 1)
|
||||
if(!consumed && drops_debris) material.place_shard(T)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/material/proc/dull()
|
||||
var/turf/T = get_turf(src)
|
||||
T.visible_message("<span class='danger'>\The [src] goes dull!</span>")
|
||||
playsound(src, "shatter", 70, 1)
|
||||
dulled = 1
|
||||
if(is_sharp() || has_edge())
|
||||
sharp = FALSE
|
||||
edge = FALSE
|
||||
|
||||
/obj/item/weapon/material/proc/repair(var/repair_amount, var/repair_time, mob/living/user)
|
||||
if(!fragile)
|
||||
if(health < initial(health))
|
||||
user.visible_message("[user] begins repairing \the [src].", "You begin repairing \the [src].")
|
||||
if(do_after(user, repair_time))
|
||||
user.visible_message("[user] has finished repairing \the [src]", "You finish repairing \the [src].")
|
||||
health = min(health + repair_amount, initial(health))
|
||||
dulled = 0
|
||||
sharp = initial(sharp)
|
||||
edge = initial(edge)
|
||||
else
|
||||
to_chat(user, "<span class='notice'>[src] doesn't need repairs.</span>")
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You can't repair \the [src].</span>")
|
||||
return
|
||||
|
||||
/obj/item/weapon/material/proc/sharpen(var/material, var/sharpen_time, var/kit, mob/living/M)
|
||||
if(!fragile)
|
||||
if(health < initial(health))
|
||||
to_chat(M, "You should repair [src] first. Try using [kit] on it.")
|
||||
return FALSE
|
||||
M.visible_message("[M] begins to replace parts of [src] with [kit].", "You begin to replace parts of [src] with [kit].")
|
||||
if(do_after(usr, sharpen_time))
|
||||
M.visible_message("[M] has finished replacing parts of [src].", "You finish replacing parts of [src].")
|
||||
src.set_material(material)
|
||||
return TRUE
|
||||
else
|
||||
to_chat(M, "<span class = 'warning'>You can't sharpen and re-edge [src].</span>")
|
||||
return FALSE
|
||||
|
||||
/*
|
||||
Commenting this out pending rebalancing of radiation based on small objects.
|
||||
/obj/item/weapon/material/process()
|
||||
if(!material.radioactivity)
|
||||
return
|
||||
for(var/mob/living/L in range(1,src))
|
||||
L.apply_effect(round(material.radioactivity/30),IRRADIATE,0)
|
||||
*/
|
||||
|
||||
/*
|
||||
// Commenting this out while fires are so spectacularly lethal, as I can't seem to get this balanced appropriately.
|
||||
/obj/item/weapon/material/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
||||
TemperatureAct(exposed_temperature)
|
||||
|
||||
// This might need adjustment. Will work that out later.
|
||||
/obj/item/weapon/material/proc/TemperatureAct(temperature)
|
||||
health -= material.combustion_effect(get_turf(src), temperature, 0.1)
|
||||
check_health(1)
|
||||
|
||||
/obj/item/weapon/material/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(istype(W,/obj/item/weapon/weldingtool))
|
||||
var/obj/item/weapon/weldingtool/WT = W
|
||||
if(material.ignition_point && WT.remove_fuel(0, user))
|
||||
TemperatureAct(150)
|
||||
else
|
||||
return ..()
|
||||
*/
|
||||
// SEE code/modules/materials/materials.dm FOR DETAILS ON INHERITED DATUM.
|
||||
// This class of weapons takes force and appearance data from a material datum.
|
||||
// They are also fragile based on material data and many can break/smash apart.
|
||||
/obj/item/weapon/material
|
||||
health = 10
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
gender = NEUTER
|
||||
throw_speed = 3
|
||||
throw_range = 7
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
sharp = FALSE
|
||||
edge = FALSE
|
||||
item_icons = list(
|
||||
slot_l_hand_str = 'icons/mob/items/lefthand_material.dmi',
|
||||
slot_r_hand_str = 'icons/mob/items/righthand_material.dmi',
|
||||
)
|
||||
|
||||
var/applies_material_colour = 1
|
||||
var/unbreakable = 0 //Doesn't lose health
|
||||
var/fragile = 0 //Shatters when it dies
|
||||
var/dulled = 0 //Has gone dull
|
||||
var/can_dull = 1 //Can it go dull?
|
||||
var/force_divisor = 0.5
|
||||
var/thrown_force_divisor = 0.5
|
||||
var/dulled_divisor = 0.5 //Just drops the damage by half
|
||||
var/default_material = MAT_STEEL
|
||||
var/datum/material/material
|
||||
var/drops_debris = 1
|
||||
var/named_from_material = 1 //YW EDIT, Does it prepend the material's name to it's name?
|
||||
|
||||
/obj/item/weapon/material/New(var/newloc, var/material_key)
|
||||
..(newloc)
|
||||
if(!material_key)
|
||||
material_key = default_material
|
||||
set_material(material_key)
|
||||
if(!material)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
matter = material.get_matter()
|
||||
if(matter.len)
|
||||
for(var/material_type in matter)
|
||||
if(!isnull(matter[material_type]))
|
||||
matter[material_type] *= force_divisor // May require a new var instead.
|
||||
|
||||
if(!(material.conductive))
|
||||
src.flags |= NOCONDUCT
|
||||
|
||||
/obj/item/weapon/material/get_material()
|
||||
return material
|
||||
|
||||
/obj/item/weapon/material/proc/update_force()
|
||||
if(edge || sharp)
|
||||
force = material.get_edge_damage()
|
||||
else
|
||||
force = material.get_blunt_damage()
|
||||
force = round(force*force_divisor)
|
||||
if(dulled)
|
||||
force = round(force*dulled_divisor)
|
||||
throwforce = round(material.get_blunt_damage()*thrown_force_divisor)
|
||||
//spawn(1)
|
||||
// to_world("[src] has force [force] and throwforce [throwforce] when made from default material [material.name]")
|
||||
|
||||
/obj/item/weapon/material/proc/set_material(var/new_material)
|
||||
material = get_material_by_name(new_material)
|
||||
if(!material)
|
||||
qdel(src)
|
||||
else
|
||||
if(named_from_material) //YW EDIT
|
||||
name = "[material.display_name] [initial(name)]"
|
||||
health = round(material.integrity/10)
|
||||
if(applies_material_colour)
|
||||
color = material.icon_colour
|
||||
if(material.products_need_process())
|
||||
START_PROCESSING(SSobj, src)
|
||||
update_force()
|
||||
|
||||
/obj/item/weapon/material/Destroy()
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
. = ..()
|
||||
|
||||
/obj/item/weapon/material/apply_hit_effect()
|
||||
..()
|
||||
if(!unbreakable)
|
||||
if(material.is_brittle())
|
||||
health = 0
|
||||
else if(!prob(material.hardness))
|
||||
health--
|
||||
check_health()
|
||||
|
||||
/obj/item/weapon/material/attackby(obj/item/weapon/W, mob/user)
|
||||
if(istype(W, /obj/item/weapon/whetstone))
|
||||
var/obj/item/weapon/whetstone/whet = W
|
||||
repair(whet.repair_amount, whet.repair_time, user)
|
||||
if(istype(W, /obj/item/weapon/material/sharpeningkit))
|
||||
var/obj/item/weapon/material/sharpeningkit/SK = W
|
||||
repair(SK.repair_amount, SK.repair_time, user)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/material/proc/check_health(var/consumed)
|
||||
if(health<=0)
|
||||
health = 0
|
||||
|
||||
if(fragile)
|
||||
shatter(consumed)
|
||||
else if(!dulled && can_dull)
|
||||
dull()
|
||||
|
||||
/obj/item/weapon/material/proc/shatter(var/consumed)
|
||||
var/turf/T = get_turf(src)
|
||||
T.visible_message("<span class='danger'>\The [src] [material.destruction_desc]!</span>")
|
||||
if(istype(loc, /mob/living))
|
||||
var/mob/living/M = loc
|
||||
M.drop_from_inventory(src)
|
||||
playsound(src, "shatter", 70, 1)
|
||||
if(!consumed && drops_debris) material.place_shard(T)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/material/proc/dull()
|
||||
var/turf/T = get_turf(src)
|
||||
T.visible_message("<span class='danger'>\The [src] goes dull!</span>")
|
||||
playsound(src, "shatter", 70, 1)
|
||||
dulled = 1
|
||||
if(is_sharp() || has_edge())
|
||||
sharp = FALSE
|
||||
edge = FALSE
|
||||
|
||||
/obj/item/weapon/material/proc/repair(var/repair_amount, var/repair_time, mob/living/user)
|
||||
if(!fragile)
|
||||
if(health < initial(health))
|
||||
user.visible_message("[user] begins repairing \the [src].", "You begin repairing \the [src].")
|
||||
if(do_after(user, repair_time))
|
||||
user.visible_message("[user] has finished repairing \the [src]", "You finish repairing \the [src].")
|
||||
health = min(health + repair_amount, initial(health))
|
||||
dulled = 0
|
||||
sharp = initial(sharp)
|
||||
edge = initial(edge)
|
||||
else
|
||||
to_chat(user, "<span class='notice'>[src] doesn't need repairs.</span>")
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You can't repair \the [src].</span>")
|
||||
return
|
||||
|
||||
/obj/item/weapon/material/proc/sharpen(var/material, var/sharpen_time, var/kit, mob/living/M)
|
||||
if(!fragile && src.material.can_sharpen)
|
||||
if(health < initial(health))
|
||||
to_chat(M, "You should repair [src] first. Try using [kit] on it.")
|
||||
return FALSE
|
||||
M.visible_message("[M] begins to replace parts of [src] with [kit].", "You begin to replace parts of [src] with [kit].")
|
||||
if(do_after(usr, sharpen_time))
|
||||
M.visible_message("[M] has finished replacing parts of [src].", "You finish replacing parts of [src].")
|
||||
src.set_material(material)
|
||||
return TRUE
|
||||
else
|
||||
to_chat(M, "<span class = 'warning'>You can't sharpen and re-edge [src].</span>")
|
||||
return FALSE
|
||||
|
||||
/*
|
||||
Commenting this out pending rebalancing of radiation based on small objects.
|
||||
/obj/item/weapon/material/process()
|
||||
if(!material.radioactivity)
|
||||
return
|
||||
for(var/mob/living/L in range(1,src))
|
||||
L.apply_effect(round(material.radioactivity/30),IRRADIATE,0)
|
||||
*/
|
||||
|
||||
/*
|
||||
// Commenting this out while fires are so spectacularly lethal, as I can't seem to get this balanced appropriately.
|
||||
/obj/item/weapon/material/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
||||
TemperatureAct(exposed_temperature)
|
||||
|
||||
// This might need adjustment. Will work that out later.
|
||||
/obj/item/weapon/material/proc/TemperatureAct(temperature)
|
||||
health -= material.combustion_effect(get_turf(src), temperature, 0.1)
|
||||
check_health(1)
|
||||
|
||||
/obj/item/weapon/material/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(istype(W,/obj/item/weapon/weldingtool))
|
||||
var/obj/item/weapon/weldingtool/WT = W
|
||||
if(material.ignition_point && WT.remove_fuel(0, user))
|
||||
TemperatureAct(150)
|
||||
else
|
||||
return ..()
|
||||
*/
|
||||
|
||||
@@ -65,7 +65,8 @@
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/storage/laundry_basket/dropped(mob/user as mob)
|
||||
QDEL_NULL(linked)
|
||||
if(linked)
|
||||
QDEL_NULL(linked)
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/storage/laundry_basket/show_to(mob/user as mob)
|
||||
@@ -82,6 +83,6 @@
|
||||
use_to_pickup = FALSE
|
||||
|
||||
/obj/item/weapon/storage/laundry_basket/offhand/dropped(mob/user as mob)
|
||||
user.drop_from_inventory(linked)
|
||||
if(user.isEquipped(linked))
|
||||
user.drop_from_inventory(linked)
|
||||
return
|
||||
|
||||
|
||||
@@ -132,8 +132,7 @@
|
||||
mob_wander_distance = 4
|
||||
|
||||
/obj/random/mob/spider/item_to_spawn()
|
||||
return pick(prob(22);/mob/living/simple_mob/animal/giant_spider/nurse,
|
||||
prob(33);/mob/living/simple_mob/animal/giant_spider/hunter,
|
||||
return pick(prob(33);/mob/living/simple_mob/animal/giant_spider/hunter,
|
||||
prob(45);/mob/living/simple_mob/animal/giant_spider)
|
||||
|
||||
/obj/random/mob/spider/nurse
|
||||
|
||||
@@ -198,6 +198,17 @@ var/list/flooring_types
|
||||
'sound/effects/footstep/mud3.ogg',
|
||||
'sound/effects/footstep/mud4.ogg'))
|
||||
|
||||
/decl/flooring/rock
|
||||
name = "rocks"
|
||||
desc = "Hard as a rock."
|
||||
icon = 'icons/turf/outdoors.dmi'
|
||||
icon_base = "rock"
|
||||
footstep_sounds = list("human" = list(
|
||||
'sound/effects/footstep/LightStone1.ogg',
|
||||
'sound/effects/footstep/LightStone2.ogg',
|
||||
'sound/effects/footstep/LightStone3.ogg',
|
||||
'sound/effects/footstep/LightStone4.ogg'))
|
||||
|
||||
/decl/flooring/asteroid
|
||||
name = "coarse sand"
|
||||
desc = "You got a pebble in your shoe just looking at it."
|
||||
|
||||
@@ -123,6 +123,7 @@ var/list/turf_edge_cache = list()
|
||||
desc = "Hard as a rock."
|
||||
icon_state = "rock"
|
||||
edge_blending_priority = 1
|
||||
initial_flooring = /decl/flooring/rock
|
||||
|
||||
/turf/simulated/floor/outdoors/rocks/caves
|
||||
outdoors = OUTDOORS_NO
|
||||
@@ -185,4 +186,4 @@ var/list/turf_edge_cache = list()
|
||||
icon = 'icons/turf/concrete.dmi'
|
||||
icon_state = "concrete_dark"
|
||||
desc = "Some sort of material composite road."
|
||||
edge_blending_priority = -1
|
||||
edge_blending_priority = -1
|
||||
|
||||
@@ -71,9 +71,9 @@
|
||||
water_state = "cult"
|
||||
|
||||
/turf/simulated/floor/water/underwater/ruins
|
||||
icon = 'maps/atoll/icons/turfs/marble.dmi'
|
||||
icon = 'maps/redgate/falls/icons/turfs/marble.dmi'
|
||||
icon_state = "1" // So it shows up in the map editor as water.
|
||||
water_icon = 'maps/atoll/icons/turfs/marble.dmi'
|
||||
water_icon = 'maps/redgate/falls/icons/turfs/marble.dmi'
|
||||
water_state = "1"
|
||||
|
||||
/turf/simulated/floor/water/underwater/sand
|
||||
|
||||
@@ -73,6 +73,27 @@
|
||||
water_breath.adjust_gas(gasid, BREATH_MOLES) // They have no oxygen, but non-zero moles and temp
|
||||
water_breath.temperature = above_air.temperature
|
||||
return water_breath
|
||||
if(L && L.is_bad_swimmer() && depth >= 2 && !L.buckled())
|
||||
if(prob(10))
|
||||
L.visible_message("<span class='notice'>[L] splashes wildly.</span>","<span class='warning'>You struggle to keep your head above the water!</span>")
|
||||
if(L.can_breathe_water())
|
||||
var/datum/gas_mixture/water_breath = new()
|
||||
var/datum/gas_mixture/above_air = return_air()
|
||||
var/amount = 300
|
||||
water_breath.adjust_gas("oxygen", amount) // Assuming water breathes just extract the oxygen directly from the water.
|
||||
water_breath.temperature = above_air.temperature
|
||||
return water_breath
|
||||
else
|
||||
var/gasid = "carbon_dioxide"
|
||||
if(ishuman(L))
|
||||
var/mob/living/carbon/human/H = L
|
||||
if(H.species && H.species.exhale_type)
|
||||
gasid = H.species.exhale_type
|
||||
var/datum/gas_mixture/water_breath = new()
|
||||
var/datum/gas_mixture/above_air = return_air()
|
||||
water_breath.adjust_gas(gasid, BREATH_MOLES) // They have no oxygen, but non-zero moles and temp
|
||||
water_breath.temperature = above_air.temperature
|
||||
return water_breath
|
||||
return return_air() // Otherwise their head is above the water, so get the air from the atmosphere instead.
|
||||
|
||||
/turf/simulated/floor/water/Entered(atom/movable/AM, atom/oldloc)
|
||||
@@ -132,6 +153,14 @@
|
||||
return species.can_breathe_water()
|
||||
return ..()
|
||||
|
||||
/mob/living/proc/is_bad_swimmer()
|
||||
return FALSE
|
||||
|
||||
/mob/living/carbon/human/is_bad_swimmer()
|
||||
if(species)
|
||||
return species.is_bad_swimmer()
|
||||
return ..()
|
||||
|
||||
/mob/living/proc/check_submerged()
|
||||
if(buckled)
|
||||
return 0
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
set name = "Modify Robot Module"
|
||||
set desc = "Allows to add or remove modules to/from robots."
|
||||
set category = "Admin"
|
||||
if(!check_rights(R_ADMIN))
|
||||
if(!check_rights(R_ADMIN, R_FUN, R_VAREDIT))
|
||||
return
|
||||
|
||||
if(!istype(target) || !target.module)
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
set name = "Resize"
|
||||
set desc = "Resizes any living mob without any restrictions on size."
|
||||
set category = "Fun"
|
||||
if(!check_rights(R_ADMIN, R_FUN))
|
||||
if(!check_rights(R_ADMIN, R_FUN, R_VAREDIT))
|
||||
return
|
||||
|
||||
|
||||
var/size_multiplier = tgui_input_number(usr, "Input size multiplier.", "Resize", 1)
|
||||
if(!size_multiplier)
|
||||
return //cancelled
|
||||
@@ -21,4 +21,4 @@
|
||||
L.resize(size_multiplier, animate = TRUE, uncapped = TRUE, ignore_prefs = TRUE)
|
||||
|
||||
log_and_message_admins("has changed [key_name(L)]'s size multiplier to [size_multiplier].")
|
||||
feedback_add_details("admin_verb","RESIZE")
|
||||
feedback_add_details("admin_verb","RESIZE")
|
||||
|
||||
@@ -15,269 +15,271 @@
|
||||
if (!islist && !istype(D))
|
||||
return
|
||||
|
||||
var/title = ""
|
||||
var/refid = "\ref[D]"
|
||||
var/icon/sprite
|
||||
var/hash
|
||||
//VOREStation Edit Start - the rest of this proc in a spawn
|
||||
spawn(0)
|
||||
var/title = ""
|
||||
var/refid = "\ref[D]"
|
||||
var/icon/sprite
|
||||
var/hash
|
||||
|
||||
var/type = /list
|
||||
if (!islist)
|
||||
type = D.type
|
||||
var/type = /list
|
||||
if (!islist)
|
||||
type = D.type
|
||||
|
||||
if(istype(D, /atom))
|
||||
var/atom/AT = D
|
||||
if(AT.icon && AT.icon_state)
|
||||
sprite = new /icon(AT.icon, AT.icon_state)
|
||||
hash = md5(AT.icon)
|
||||
hash = md5(hash + AT.icon_state)
|
||||
src << browse_rsc(sprite, "vv[hash].png")
|
||||
if(istype(D, /atom))
|
||||
var/atom/AT = D
|
||||
if(AT.icon && AT.icon_state)
|
||||
sprite = new /icon(AT.icon, AT.icon_state)
|
||||
hash = md5(AT.icon)
|
||||
hash = md5(hash + AT.icon_state)
|
||||
src << browse_rsc(sprite, "vv[hash].png")
|
||||
|
||||
title = "[D] (\ref[D]) = [type]"
|
||||
var/formatted_type = replacetext("[type]", "/", "<wbr>/")
|
||||
title = "[D] (\ref[D]) = [type]"
|
||||
var/formatted_type = replacetext("[type]", "/", "<wbr>/")
|
||||
|
||||
var/sprite_text
|
||||
if(sprite)
|
||||
sprite_text = "<img src='vv[hash].png'></td><td>"
|
||||
var/list/header = islist(D)? list("<b>/list</b>") : D.vv_get_header()
|
||||
var/sprite_text
|
||||
if(sprite)
|
||||
sprite_text = "<img src='vv[hash].png'></td><td>"
|
||||
var/list/header = islist(D)? list("<b>/list</b>") : D.vv_get_header()
|
||||
|
||||
var/marked
|
||||
if(holder && holder.marked_datum && holder.marked_datum == D)
|
||||
marked = VV_MSG_MARKED
|
||||
var/varedited_line = ""
|
||||
if(!islist && (D.datum_flags & DF_VAR_EDITED))
|
||||
varedited_line = VV_MSG_EDITED
|
||||
var/deleted_line
|
||||
if(!islist && D.gc_destroyed)
|
||||
deleted_line = VV_MSG_DELETED
|
||||
var/marked
|
||||
if(holder && holder.marked_datum && holder.marked_datum == D)
|
||||
marked = VV_MSG_MARKED
|
||||
var/varedited_line = ""
|
||||
if(!islist && (D.datum_flags & DF_VAR_EDITED))
|
||||
varedited_line = VV_MSG_EDITED
|
||||
var/deleted_line
|
||||
if(!islist && D.gc_destroyed)
|
||||
deleted_line = VV_MSG_DELETED
|
||||
|
||||
var/list/dropdownoptions = list()
|
||||
var/autoconvert_dropdown = FALSE
|
||||
if (islist)
|
||||
dropdownoptions = list(
|
||||
"---",
|
||||
"Add Item" = "?_src_=vars;[HrefToken()];[VV_HK_LIST_ADD]=TRUE;target=[refid]",
|
||||
"Remove Nulls" = "?_src_=vars;[HrefToken()];[VV_HK_LIST_ERASE_NULLS]=TRUE;target=[refid]",
|
||||
"Remove Dupes" = "?_src_=vars;[HrefToken()];[VV_HK_LIST_ERASE_DUPES]=TRUE;target=[refid]",
|
||||
"Set len" = "?_src_=vars;[HrefToken()];[VV_HK_LIST_SET_LENGTH]=TRUE;target=[refid]",
|
||||
"Shuffle" = "?_src_=vars;[HrefToken()];[VV_HK_LIST_SHUFFLE]=TRUE;target=[refid]",
|
||||
// "Show VV To Player" = "?_src_=vars;[HrefToken()];[VV_HK_EXPOSE]=TRUE;target=[refid]" // TODO - Not yet implemented for lists
|
||||
)
|
||||
autoconvert_dropdown = TRUE
|
||||
else
|
||||
dropdownoptions = D.vv_get_dropdown()
|
||||
var/list/dropdownoptions_html = list()
|
||||
if(autoconvert_dropdown)
|
||||
for (var/name in dropdownoptions)
|
||||
var/link = dropdownoptions[name]
|
||||
if (link)
|
||||
dropdownoptions_html += "<option value='[link]'>[name]</option>"
|
||||
else
|
||||
dropdownoptions_html += "<option value>[name]</option>"
|
||||
else
|
||||
dropdownoptions_html = dropdownoptions + D.get_view_variables_options()
|
||||
var/list/dropdownoptions = list()
|
||||
var/autoconvert_dropdown = FALSE
|
||||
if (islist)
|
||||
dropdownoptions = list(
|
||||
"---",
|
||||
"Add Item" = "?_src_=vars;[HrefToken()];[VV_HK_LIST_ADD]=TRUE;target=[refid]",
|
||||
"Remove Nulls" = "?_src_=vars;[HrefToken()];[VV_HK_LIST_ERASE_NULLS]=TRUE;target=[refid]",
|
||||
"Remove Dupes" = "?_src_=vars;[HrefToken()];[VV_HK_LIST_ERASE_DUPES]=TRUE;target=[refid]",
|
||||
"Set len" = "?_src_=vars;[HrefToken()];[VV_HK_LIST_SET_LENGTH]=TRUE;target=[refid]",
|
||||
"Shuffle" = "?_src_=vars;[HrefToken()];[VV_HK_LIST_SHUFFLE]=TRUE;target=[refid]",
|
||||
// "Show VV To Player" = "?_src_=vars;[HrefToken()];[VV_HK_EXPOSE]=TRUE;target=[refid]" // TODO - Not yet implemented for lists
|
||||
)
|
||||
autoconvert_dropdown = TRUE
|
||||
else
|
||||
dropdownoptions = D.vv_get_dropdown()
|
||||
var/list/dropdownoptions_html = list()
|
||||
if(autoconvert_dropdown)
|
||||
for (var/name in dropdownoptions)
|
||||
var/link = dropdownoptions[name]
|
||||
if (link)
|
||||
dropdownoptions_html += "<option value='[link]'>[name]</option>"
|
||||
else
|
||||
dropdownoptions_html += "<option value>[name]</option>"
|
||||
else
|
||||
dropdownoptions_html = dropdownoptions + D.get_view_variables_options()
|
||||
|
||||
var/list/names = list()
|
||||
if (!islist)
|
||||
names = D.get_variables()
|
||||
sleep(1)//For some reason, without this sleep, VVing will cause client to disconnect on certain objects.
|
||||
var/list/names = list()
|
||||
if (!islist)
|
||||
names = D.get_variables()
|
||||
//sleep(1)//For some reason, without this sleep, VVing will cause client to disconnect on certain objects. //VOREStation edit - commented out, replaced with spawn(0) above
|
||||
|
||||
var/list/variable_html = list()
|
||||
if (islist)
|
||||
var/list/L = D
|
||||
for (var/i in 1 to L.len)
|
||||
var/key = L[i]
|
||||
var/value
|
||||
if (IS_NORMAL_LIST(L) && IS_VALID_ASSOC_KEY(key))
|
||||
value = L[key]
|
||||
variable_html += debug_variable(i, value, 0, D)
|
||||
else
|
||||
var/list/variable_html = list()
|
||||
if (islist)
|
||||
var/list/L = D
|
||||
for (var/i in 1 to L.len)
|
||||
var/key = L[i]
|
||||
var/value
|
||||
if (IS_NORMAL_LIST(L) && IS_VALID_ASSOC_KEY(key))
|
||||
value = L[key]
|
||||
variable_html += debug_variable(i, value, 0, D)
|
||||
else
|
||||
|
||||
names = sortList(names)
|
||||
for (var/V in names)
|
||||
if(D.can_vv_get(V))
|
||||
variable_html += D.vv_get_var(V)
|
||||
names = sortList(names)
|
||||
for (var/V in names)
|
||||
if(D.can_vv_get(V))
|
||||
variable_html += D.vv_get_var(V)
|
||||
|
||||
var/html = {"
|
||||
<html>
|
||||
<head>
|
||||
<title>[title]</title>
|
||||
<style>
|
||||
body {
|
||||
font-family: Verdana, sans-serif;
|
||||
font-size: 9pt;
|
||||
}
|
||||
.value {
|
||||
font-family: "Courier New", monospace;
|
||||
font-size: 8pt;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body onload='selectTextField()' onkeydown='return handle_keydown()' onkeyup='handle_keyup()'>
|
||||
<script type="text/javascript">
|
||||
// onload
|
||||
function selectTextField() {
|
||||
var filter_text = document.getElementById('filter');
|
||||
filter_text.focus();
|
||||
filter_text.select();
|
||||
var lastsearch = getCookie("[refid][cookieoffset]search");
|
||||
if (lastsearch) {
|
||||
filter_text.value = lastsearch;
|
||||
var/html = {"
|
||||
<html>
|
||||
<head>
|
||||
<title>[title]</title>
|
||||
<style>
|
||||
body {
|
||||
font-family: Verdana, sans-serif;
|
||||
font-size: 9pt;
|
||||
}
|
||||
.value {
|
||||
font-family: "Courier New", monospace;
|
||||
font-size: 8pt;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body onload='selectTextField()' onkeydown='return handle_keydown()' onkeyup='handle_keyup()'>
|
||||
<script type="text/javascript">
|
||||
// onload
|
||||
function selectTextField() {
|
||||
var filter_text = document.getElementById('filter');
|
||||
filter_text.focus();
|
||||
filter_text.select();
|
||||
var lastsearch = getCookie("[refid][cookieoffset]search");
|
||||
if (lastsearch) {
|
||||
filter_text.value = lastsearch;
|
||||
updateSearch();
|
||||
}
|
||||
}
|
||||
function getCookie(cname) {
|
||||
var name = cname + "=";
|
||||
var ca = document.cookie.split(';');
|
||||
for(var i=0; i<ca.length; i++) {
|
||||
var c = ca\[i];
|
||||
while (c.charAt(0)==' ') c = c.substring(1,c.length);
|
||||
if (c.indexOf(name)==0) return c.substring(name.length,c.length);
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
// main search functionality
|
||||
var last_filter = "";
|
||||
function updateSearch() {
|
||||
var filter = document.getElementById('filter').value.toLowerCase();
|
||||
var vars_ol = document.getElementById("vars");
|
||||
|
||||
if (filter === last_filter) {
|
||||
// An event triggered an update but nothing has changed.
|
||||
return;
|
||||
} else if (filter.indexOf(last_filter) === 0) {
|
||||
// The new filter starts with the old filter, fast path by removing only.
|
||||
var children = vars_ol.childNodes;
|
||||
for (var i = children.length - 1; i >= 0; --i) {
|
||||
try {
|
||||
var li = children\[i];
|
||||
if (li.innerText.toLowerCase().indexOf(filter) == -1) {
|
||||
vars_ol.removeChild(li);
|
||||
}
|
||||
} catch(err) {}
|
||||
}
|
||||
} else {
|
||||
// Remove everything and put back what matches.
|
||||
while (vars_ol.hasChildNodes()) {
|
||||
vars_ol.removeChild(vars_ol.lastChild);
|
||||
}
|
||||
|
||||
for (var i = 0; i < complete_list.length; ++i) {
|
||||
try {
|
||||
var li = complete_list\[i];
|
||||
if (!filter || li.innerText.toLowerCase().indexOf(filter) != -1) {
|
||||
vars_ol.appendChild(li);
|
||||
}
|
||||
} catch(err) {}
|
||||
}
|
||||
}
|
||||
|
||||
last_filter = filter;
|
||||
document.cookie="[refid][cookieoffset]search="+encodeURIComponent(filter);
|
||||
|
||||
}
|
||||
|
||||
// onkeydown
|
||||
function handle_keydown() {
|
||||
if(event.keyCode == 116) { //F5 (to refresh properly)
|
||||
document.getElementById("refresh_link").click();
|
||||
event.preventDefault ? event.preventDefault() : (event.returnValue = false);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// onkeyup
|
||||
function handle_keyup() {
|
||||
updateSearch();
|
||||
}
|
||||
}
|
||||
function getCookie(cname) {
|
||||
var name = cname + "=";
|
||||
var ca = document.cookie.split(';');
|
||||
for(var i=0; i<ca.length; i++) {
|
||||
var c = ca\[i];
|
||||
while (c.charAt(0)==' ') c = c.substring(1,c.length);
|
||||
if (c.indexOf(name)==0) return c.substring(name.length,c.length);
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
// main search functionality
|
||||
var last_filter = "";
|
||||
function updateSearch() {
|
||||
var filter = document.getElementById('filter').value.toLowerCase();
|
||||
var vars_ol = document.getElementById("vars");
|
||||
|
||||
if (filter === last_filter) {
|
||||
// An event triggered an update but nothing has changed.
|
||||
return;
|
||||
} else if (filter.indexOf(last_filter) === 0) {
|
||||
// The new filter starts with the old filter, fast path by removing only.
|
||||
var children = vars_ol.childNodes;
|
||||
for (var i = children.length - 1; i >= 0; --i) {
|
||||
try {
|
||||
var li = children\[i];
|
||||
if (li.innerText.toLowerCase().indexOf(filter) == -1) {
|
||||
vars_ol.removeChild(li);
|
||||
}
|
||||
} catch(err) {}
|
||||
}
|
||||
} else {
|
||||
// Remove everything and put back what matches.
|
||||
while (vars_ol.hasChildNodes()) {
|
||||
vars_ol.removeChild(vars_ol.lastChild);
|
||||
}
|
||||
|
||||
for (var i = 0; i < complete_list.length; ++i) {
|
||||
try {
|
||||
var li = complete_list\[i];
|
||||
if (!filter || li.innerText.toLowerCase().indexOf(filter) != -1) {
|
||||
vars_ol.appendChild(li);
|
||||
}
|
||||
} catch(err) {}
|
||||
// onchange
|
||||
function handle_dropdown(list) {
|
||||
var value = list.options\[list.selectedIndex].value;
|
||||
if (value !== "") {
|
||||
location.href = value;
|
||||
}
|
||||
list.selectedIndex = 0;
|
||||
document.getElementById('filter').focus();
|
||||
}
|
||||
|
||||
last_filter = filter;
|
||||
document.cookie="[refid][cookieoffset]search="+encodeURIComponent(filter);
|
||||
|
||||
}
|
||||
|
||||
// onkeydown
|
||||
function handle_keydown() {
|
||||
if(event.keyCode == 116) { //F5 (to refresh properly)
|
||||
document.getElementById("refresh_link").click();
|
||||
event.preventDefault ? event.preventDefault() : (event.returnValue = false);
|
||||
return false;
|
||||
// byjax
|
||||
function replace_span(what) {
|
||||
var idx = what.indexOf(':');
|
||||
document.getElementById(what.substr(0, idx)).innerHTML = what.substr(idx + 1);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// onkeyup
|
||||
function handle_keyup() {
|
||||
updateSearch();
|
||||
}
|
||||
|
||||
// onchange
|
||||
function handle_dropdown(list) {
|
||||
var value = list.options\[list.selectedIndex].value;
|
||||
if (value !== "") {
|
||||
location.href = value;
|
||||
}
|
||||
list.selectedIndex = 0;
|
||||
document.getElementById('filter').focus();
|
||||
}
|
||||
|
||||
// byjax
|
||||
function replace_span(what) {
|
||||
var idx = what.indexOf(':');
|
||||
document.getElementById(what.substr(0, idx)).innerHTML = what.substr(idx + 1);
|
||||
}
|
||||
</script>
|
||||
<div align='center'>
|
||||
</script>
|
||||
<div align='center'>
|
||||
<table width='100%'>
|
||||
<tr>
|
||||
<td width='50%'>
|
||||
<table align='center' width='100%'>
|
||||
<tr>
|
||||
<td>
|
||||
[sprite_text]
|
||||
<div align='center'>
|
||||
[header.Join()]
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div align='center'>
|
||||
<b><font size='1'>[formatted_type]</font></b>
|
||||
<span id='marked'>[marked]</span>
|
||||
<span id='varedited'>[varedited_line]</span>
|
||||
<span id='deleted'>[deleted_line]</span>
|
||||
</div>
|
||||
</td>
|
||||
<td width='50%'>
|
||||
<div align='center'>
|
||||
<a id='refresh_link' href='?_src_=vars;
|
||||
datumrefresh=[refid]'>Refresh</a>
|
||||
<form>
|
||||
<select name="file" size="1"
|
||||
onchange="handle_dropdown(this)"
|
||||
onmouseclick="this.focus()">
|
||||
<option value selected>Select option</option>
|
||||
[dropdownoptions_html.Join()]
|
||||
</select>
|
||||
</form>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<hr>
|
||||
<font size='1'>
|
||||
<b>E</b> - Edit, tries to determine the variable type by itself.<br>
|
||||
<b>C</b> - Change, asks you for the var type first.<br>
|
||||
<b>M</b> - Mass modify: changes this variable for all objects of this type.<br>
|
||||
</font>
|
||||
<hr>
|
||||
<table width='100%'>
|
||||
<tr>
|
||||
<td width='50%'>
|
||||
<table align='center' width='100%'>
|
||||
<tr>
|
||||
<td>
|
||||
[sprite_text]
|
||||
<div align='center'>
|
||||
[header.Join()]
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<td width='20%'>
|
||||
<div align='center'>
|
||||
<b><font size='1'>[formatted_type]</font></b>
|
||||
<span id='marked'>[marked]</span>
|
||||
<span id='varedited'>[varedited_line]</span>
|
||||
<span id='deleted'>[deleted_line]</span>
|
||||
<b>Search:</b>
|
||||
</div>
|
||||
</td>
|
||||
<td width='50%'>
|
||||
<div align='center'>
|
||||
<a id='refresh_link' href='?_src_=vars;
|
||||
datumrefresh=[refid]'>Refresh</a>
|
||||
<form>
|
||||
<select name="file" size="1"
|
||||
onchange="handle_dropdown(this)"
|
||||
onmouseclick="this.focus()">
|
||||
<option value selected>Select option</option>
|
||||
[dropdownoptions_html.Join()]
|
||||
</select>
|
||||
</form>
|
||||
</div>
|
||||
<td width='80%'>
|
||||
<input type='text' id='filter' name='filter_text' value='' style='width:100%;'>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<hr>
|
||||
<font size='1'>
|
||||
<b>E</b> - Edit, tries to determine the variable type by itself.<br>
|
||||
<b>C</b> - Change, asks you for the var type first.<br>
|
||||
<b>M</b> - Mass modify: changes this variable for all objects of this type.<br>
|
||||
</font>
|
||||
<hr>
|
||||
<table width='100%'>
|
||||
<tr>
|
||||
<td width='20%'>
|
||||
<div align='center'>
|
||||
<b>Search:</b>
|
||||
</div>
|
||||
</td>
|
||||
<td width='80%'>
|
||||
<input type='text' id='filter' name='filter_text' value='' style='width:100%;'>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr>
|
||||
<ol id='vars'>
|
||||
[variable_html.Join()]
|
||||
</ol>
|
||||
<script type='text/javascript'>
|
||||
var complete_list = \[\];
|
||||
var lis = document.getElementById("vars").children;
|
||||
for(var i = lis.length; i--;) complete_list\[i\] = lis\[i\];
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
"}
|
||||
src << browse(html, "window=variables[refid];size=475x650")
|
||||
<hr>
|
||||
<ol id='vars'>
|
||||
[variable_html.Join()]
|
||||
</ol>
|
||||
<script type='text/javascript'>
|
||||
var complete_list = \[\];
|
||||
var lis = document.getElementById("vars").children;
|
||||
for(var i = lis.length; i--;) complete_list\[i\] = lis\[i\];
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
"}
|
||||
src << browse(html, "window=variables[refid];size=475x650") //VOREStation edit end
|
||||
|
||||
/client/proc/vv_update_display(datum/D, span, content)
|
||||
src << output("[span]:[content]", "variables\ref[D].browser:replace_span")
|
||||
|
||||
@@ -507,6 +507,10 @@
|
||||
path = /obj/item/clothing/suit/storage/hooded/wintercoat/cosmic
|
||||
// winter coats end here
|
||||
|
||||
/datum/gear/suit/runner
|
||||
display_name = "runner jacket"
|
||||
path = /obj/item/clothing/suit/runner
|
||||
|
||||
/datum/gear/suit/varsity
|
||||
display_name = "varsity jacket selection"
|
||||
path = /obj/item/clothing/suit/varsity
|
||||
|
||||
@@ -374,6 +374,10 @@
|
||||
display_name = "halter top"
|
||||
path = /obj/item/clothing/under/haltertop
|
||||
|
||||
/datum/gear/uniform/tanktop
|
||||
display_name = "tank top"
|
||||
path = /obj/item/clothing/under/tanktop
|
||||
|
||||
/datum/gear/uniform/revealingdress
|
||||
display_name = "revealing dress"
|
||||
path = /obj/item/clothing/under/dress/revealingdress
|
||||
|
||||
@@ -805,6 +805,14 @@
|
||||
name = "brown varsity jacket"
|
||||
icon_state = "varsity_brown"
|
||||
|
||||
/obj/item/clothing/suit/runner
|
||||
name = "runner jacket"
|
||||
desc = "A yellow sports jacket with white trim and an unfolded collar."
|
||||
icon_state = "runner"
|
||||
allowed = list (/obj/item/weapon/pen, /obj/item/weapon/paper, /obj/item/device/flashlight, /obj/item/weapon/tank/emergency/oxygen, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/storage/box/matches, /obj/item/weapon/reagent_containers/food/drinks/flask)
|
||||
item_state_slots = list(slot_r_hand_str = "suit_red", slot_l_hand_str = "suit_red")
|
||||
flags_inv = HIDEHOLSTER
|
||||
|
||||
/*
|
||||
* Department Jackets
|
||||
*/
|
||||
|
||||
@@ -981,6 +981,11 @@
|
||||
desc = "Jean shorts and a black halter top. Perfect for casual Fridays!"
|
||||
icon_state = "haltertop"
|
||||
|
||||
/obj/item/clothing/under/tanktop
|
||||
name = "tank top"
|
||||
desc = "The most versatile top ever created."
|
||||
icon_state = "tanktop"
|
||||
|
||||
/obj/item/clothing/under/rippedpunk
|
||||
name = "ripped punk jeans"
|
||||
desc = "Black ripped jeans and a fishnet top. How punk."
|
||||
|
||||
@@ -9,13 +9,21 @@
|
||||
var/datum/codex_tree/tree = null
|
||||
var/root_type = /datum/lore/codex/category/main_borealis_lore //YW EDIT
|
||||
|
||||
var/static/list/codex_tree_keys = list() // static list linking codexes to the correct codex_tree.
|
||||
|
||||
/obj/item/weapon/book/codex/Initialize()
|
||||
tree = new(src, root_type)
|
||||
tree = codex_tree_keys["[root_type]"]
|
||||
if(!tree)
|
||||
tree = new(src, root_type)
|
||||
codex_tree_keys["[root_type]"] = tree
|
||||
. = ..()
|
||||
|
||||
/obj/item/weapon/book/codex/attack_self(mob/user)
|
||||
if(!tree)
|
||||
tree = new(src, root_type)
|
||||
tree = codex_tree_keys["[root_type]"]
|
||||
if(!tree)
|
||||
tree = new(src, root_type)
|
||||
codex_tree_keys["[root_type]"] = tree
|
||||
icon_state = "[initial(icon_state)]-open"
|
||||
tree.display(user)
|
||||
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
var/atom/movable/holder = null
|
||||
var/root_type = null
|
||||
var/datum/lore/codex/home = null // Top-most page.
|
||||
var/datum/lore/codex/current_page = null // Current page or category to display to the user.
|
||||
var/list/current_page = list() // Current page or category to display to the user. // converted to list to track multiple players.
|
||||
var/list/indexed_pages = list() // Assoc list with search terms pointing to a ref of the page. It's created on New().
|
||||
var/list/history = list() // List of pages we previously visited.
|
||||
var/list/history = list() // List of pages we previously visited. // now a 2D list
|
||||
|
||||
/datum/codex_tree/New(var/new_holder, var/new_root_type)
|
||||
holder = new_holder
|
||||
@@ -16,25 +16,31 @@
|
||||
|
||||
/datum/codex_tree/proc/generate_pages()
|
||||
home = new root_type(src) // This will also generate the others.
|
||||
current_page = home
|
||||
indexed_pages = current_page.index_page()
|
||||
//current_page = home
|
||||
indexed_pages = home.index_page() // changed from current_page to home.
|
||||
|
||||
// Changes current_page to its parent, assuming one exists.
|
||||
/datum/codex_tree/proc/go_to_parent()
|
||||
if(current_page && current_page.parent)
|
||||
current_page = current_page.parent
|
||||
/datum/codex_tree/proc/go_to_parent(var/mob/user)
|
||||
var/datum/lore/codex/D = current_page["[user]"]
|
||||
if(istype(D) && D.parent)
|
||||
current_page["[user]"] = D.parent
|
||||
|
||||
// Changes current_page to a specific page or category.
|
||||
/datum/codex_tree/proc/go_to_page(var/datum/lore/codex/new_page, var/dont_record_history = FALSE)
|
||||
if(new_page) // Make sure we're not going to a null page for whatever reason.
|
||||
current_page = new_page
|
||||
/datum/codex_tree/proc/go_to_page(var/datum/lore/codex/new_page, var/dont_record_history = FALSE, var/mob/user)
|
||||
var/datum/lore/codex/D = current_page["[user]"]
|
||||
if(new_page && istype(D)) // Make sure we're not going to a null page for whatever reason.
|
||||
current_page["[user]"] = new_page
|
||||
if(!dont_record_history)
|
||||
history.Add(new_page)
|
||||
var/list/H = history["[user]"]
|
||||
if(!H)
|
||||
H = list()
|
||||
H.Add(new_page)
|
||||
history["[user]"] = H
|
||||
|
||||
/datum/codex_tree/proc/quick_link(var/search_word)
|
||||
/datum/codex_tree/proc/quick_link(var/search_word, var/mob/user)
|
||||
for(var/word in indexed_pages)
|
||||
if(lowertext(search_word) == lowertext(word)) // Exact matches unfortunately limit our ability to perform SEOs.
|
||||
go_to_page(indexed_pages[word])
|
||||
go_to_page(indexed_pages[word], FALSE, user)
|
||||
return
|
||||
|
||||
/datum/codex_tree/proc/get_page_from_type(var/desired_type)
|
||||
@@ -45,16 +51,26 @@
|
||||
return null
|
||||
|
||||
// Returns to the last visited page, based on the history list.
|
||||
/datum/codex_tree/proc/go_back()
|
||||
if((history.len - 1) > 0)
|
||||
if(history[history.len] == current_page)
|
||||
history.len-- // This gets rid of the current page in the history.
|
||||
go_to_page(pop(history), dont_record_history = TRUE) // Where as this will get us the previous page that we want to go to.
|
||||
/datum/codex_tree/proc/go_back(var/mob/user)
|
||||
var/list/H = history["[user]"]
|
||||
var/datum/lore/codex/D = current_page["[user]"]
|
||||
if(!LAZYLEN(H) || !istype(D))
|
||||
return
|
||||
if((H.len) > 1)
|
||||
if(H[H.len] == D)
|
||||
H.len-- // This gets rid of the current page in the history.
|
||||
history["[user]"] = H
|
||||
if(H.len == 1)
|
||||
go_to_page(H[H.len], TRUE, user)
|
||||
return
|
||||
go_to_page(pop(history["[user]"]), TRUE, user) // Where as this will get us the previous page that we want to go to.
|
||||
else
|
||||
go_to_page(H[H.len], TRUE, user)
|
||||
|
||||
/datum/codex_tree/proc/get_tree_position()
|
||||
if(current_page)
|
||||
/datum/codex_tree/proc/get_tree_position(var/mob/user)
|
||||
var/datum/lore/codex/checked = current_page["[user]"]
|
||||
if(istype(checked))
|
||||
var/output = ""
|
||||
var/datum/lore/codex/checked = current_page
|
||||
output = "<b>[checked.name]</b>"
|
||||
while(checked.parent)
|
||||
output = "<a href='?src=\ref[src];target=\ref[checked.parent]'>[checked.parent.name]</a> \> [output]"
|
||||
@@ -75,38 +91,53 @@
|
||||
|
||||
/datum/codex_tree/proc/display(mob/user)
|
||||
// icon_state = "[initial(icon_state)]-open"
|
||||
if(!current_page)
|
||||
if(!home)
|
||||
generate_pages()
|
||||
if(!user)
|
||||
return
|
||||
var/datum/lore/codex/D = current_page["[user]"]
|
||||
if(!istype(D)) // Initialize current_page and history
|
||||
current_page["[user]"] = home
|
||||
D = current_page["[user]"]
|
||||
if(!istype(D))
|
||||
log_debug("Codex_tree failed to failed to load for [user].")
|
||||
return
|
||||
var/list/H_init = list()
|
||||
H_init.Add(home)
|
||||
history["[user]"] = H_init
|
||||
//if(!current_page)
|
||||
//generate_pages()
|
||||
|
||||
user << browse_rsc('html/browser/codex.css', "codex.css")
|
||||
|
||||
var/dat
|
||||
dat = "<head>"
|
||||
dat += "<title>[holder.name] ([current_page.name])</title>"
|
||||
dat += "<title>[holder.name] ([D.name])</title>"
|
||||
dat += "<link rel='stylesheet' href='codex.css' />"
|
||||
dat += "</head>"
|
||||
|
||||
dat += "<body>"
|
||||
dat += "[get_tree_position()]<br>"
|
||||
dat += "[get_tree_position(user)]<br>"
|
||||
dat += "[make_search_bar()]<br>"
|
||||
dat += "<center>"
|
||||
dat += "<h2>[current_page.name]</h2>"
|
||||
dat += "<h2>[D.name]</h2>"
|
||||
dat += "<br>"
|
||||
if(current_page.data)
|
||||
dat += "[current_page.data]<br>"
|
||||
if(D.data)
|
||||
dat += "[D.data]<br>"
|
||||
dat += "<br>"
|
||||
if(istype(current_page, /datum/lore/codex/category))
|
||||
if(istype(D, /datum/lore/codex/category))
|
||||
dat += "<div class='button-group'>"
|
||||
var/datum/lore/codex/category/C = current_page
|
||||
var/datum/lore/codex/category/C = D
|
||||
for(var/datum/lore/codex/child in C.children)
|
||||
dat += "<a href='?src=\ref[src];target=\ref[child]' class='button'>[child.name]</a>"
|
||||
dat += "</div>"
|
||||
dat += "<hr>"
|
||||
if(history.len - 1)
|
||||
var/list/H = history["[user]"]
|
||||
if(LAZYLEN(H))
|
||||
dat += "<br><a href='?src=\ref[src];go_back=1'>\[Go Back\]</a>"
|
||||
if(current_page.parent)
|
||||
if(D.parent)
|
||||
dat += "<br><a href='?src=\ref[src];go_to_parent=1'>\[Go Up\]</a>"
|
||||
if(current_page != home)
|
||||
if(D != home)
|
||||
dat += "<br><a href='?src=\ref[src];go_to_home=1'>\[Go To Home\]</a>"
|
||||
dat += "</center></body>"
|
||||
user << browse(dat, "window=the_empress_protects;size=600x550")
|
||||
@@ -120,21 +151,21 @@
|
||||
|
||||
if(href_list["target"]) // Direct link, using a ref
|
||||
var/datum/lore/codex/new_page = locate(href_list["target"])
|
||||
go_to_page(new_page)
|
||||
go_to_page(new_page, FALSE, usr)
|
||||
else if(href_list["search_query"])
|
||||
quick_link(href_list["search_query"])
|
||||
quick_link(href_list["search_query"], usr)
|
||||
else if(href_list["go_to_parent"])
|
||||
go_to_parent()
|
||||
go_to_parent(usr)
|
||||
else if(href_list["go_back"])
|
||||
go_back()
|
||||
go_back(usr)
|
||||
else if(href_list["go_to_home"])
|
||||
go_to_page(home)
|
||||
go_to_page(home, FALSE, usr)
|
||||
else if(href_list["quick_link"]) // Indirect link, using a (hopefully) indexed word.
|
||||
quick_link(href_list["quick_link"])
|
||||
quick_link(href_list["quick_link"], usr)
|
||||
else if(href_list["close"])
|
||||
// Close the book, if our holder is actually a book.
|
||||
if(istype(holder, /obj/item/weapon/book/codex))
|
||||
holder.icon_state = initial(holder.icon_state)
|
||||
//if(istype(holder, /obj/item/weapon/book/codex))
|
||||
//holder.icon_state = initial(holder.icon_state)
|
||||
usr << browse(null, "window=the_empress_protects")
|
||||
return
|
||||
display(usr)
|
||||
display(usr)
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
var/annihilate = FALSE // If true, all (movable) atoms at the location where the map is loaded will be deleted before the map is loaded in.
|
||||
var/fixed_orientation = FALSE // If true, the submap will not be rotated randomly when loaded.
|
||||
|
||||
var/cost = null /* The map generator has a set 'budget' it spends to place down different submaps. It will pick available submaps randomly until
|
||||
it runs out. The cost of a submap should roughly corrispond with several factors such as size, loot, difficulty, desired scarcity, etc.
|
||||
var/cost = null /* The map generator has a set 'budget' it spends to place down different submaps. It will pick available submaps randomly until
|
||||
it runs out. The cost of a submap should roughly corrispond with several factors such as size, loot, difficulty, desired scarcity, etc.
|
||||
Set to -1 to force the submap to always be made. */
|
||||
var/allow_duplicates = FALSE // If false, only one map template will be spawned by the game. Doesn't affect admins spawning then manually.
|
||||
var/discard_prob = 0 // If non-zero, there is a chance that the map seeding algorithm will skip this template when selecting potential templates to use.
|
||||
@@ -74,7 +74,7 @@
|
||||
A.power_change()
|
||||
|
||||
if(machinery_was_awake)
|
||||
SSmachines.wake() // Wake only if it was awake before we tried to suspended it.
|
||||
SSmachines.wake() // Wake only if it was awake before we tried to suspended it.
|
||||
SSshuttles.block_init_queue = prev_shuttle_queue_state
|
||||
SSshuttles.process_init_queues() // We will flush the queue unless there were other blockers, in which case they will do it.
|
||||
|
||||
@@ -214,6 +214,12 @@
|
||||
potential_submaps -= chosen_template
|
||||
continue
|
||||
|
||||
// Is single use template already placed
|
||||
if(!chosen_template.allow_duplicates && chosen_template.loaded)
|
||||
priority_submaps -= chosen_template
|
||||
potential_submaps -= chosen_template
|
||||
continue
|
||||
|
||||
// Did we already place down a very similar submap?
|
||||
if(chosen_template.template_group && (chosen_template.template_group in template_groups_used))
|
||||
priority_submaps -= chosen_template
|
||||
@@ -253,6 +259,13 @@
|
||||
|
||||
admin_notice("Submap \"[chosen_template.name]\" placed at ([T.x], [T.y], [T.z])\n", R_DEBUG)
|
||||
|
||||
if(specific_sanity < 0)
|
||||
// I have no idea how this function has a race condition for the sanity check, but forcing the inner check loop to end like this fixes it...
|
||||
// If a template doesn't allow duplicates, it tries to double place a template. this fixes that.
|
||||
break
|
||||
if(!chosen_template.allow_duplicates)
|
||||
specific_sanity = -1 // force end the placement loop
|
||||
|
||||
// Do loading here.
|
||||
chosen_template.load(T, centered = TRUE, orientation=orientation) // This is run before the main map's initialization routine, so that can initilize our submaps for us instead.
|
||||
|
||||
|
||||
@@ -213,6 +213,7 @@ var/list/name_to_material
|
||||
var/luminescence
|
||||
var/radiation_resistance = 0 // Radiation resistance, which is added on top of a material's weight for blocking radiation. Needed to make lead special without superrobust weapons.
|
||||
var/supply_conversion_value // Supply points per sheet that this material sells for.
|
||||
var/can_sharpen = TRUE // Is this material compatible with a sharpening kit?
|
||||
|
||||
// Placeholder vars for the time being, todo properly integrate windows/light tiles/rods.
|
||||
var/created_window
|
||||
|
||||
@@ -108,4 +108,5 @@
|
||||
hardness = 1
|
||||
weight = 1
|
||||
protectiveness = 0 // 0%
|
||||
conductive = 0
|
||||
conductive = 0
|
||||
can_sharpen = FALSE
|
||||
|
||||
@@ -9,17 +9,23 @@
|
||||
|
||||
var/list/butchery_loot // Associated list, path = number.
|
||||
|
||||
var/being_butchered = FALSE // No multiproccing
|
||||
|
||||
// Harvest an animal's delicious byproducts
|
||||
/mob/living/proc/harvest(var/mob/user, var/obj/item/I)
|
||||
if(meat_type && meat_amount>0 && (stat == DEAD))
|
||||
if(meat_type && meat_amount>0 && (stat == DEAD) && !being_butchered)
|
||||
being_butchered = TRUE
|
||||
while(meat_amount > 0 && do_after(user, 0.5 SECONDS * (mob_size / 10), src))
|
||||
var/obj/item/meat = new meat_type(get_turf(src))
|
||||
meat.name = "[src.name] [meat.name]"
|
||||
new /obj/effect/decal/cleanable/blood/splatter(get_turf(src))
|
||||
meat_amount--
|
||||
being_butchered = FALSE
|
||||
|
||||
if(!meat_amount)
|
||||
if(!meat_amount && !being_butchered)
|
||||
being_butchered = TRUE
|
||||
handle_butcher(user, I)
|
||||
being_butchered = FALSE
|
||||
|
||||
/mob/living/proc/can_butcher(var/mob/user, var/obj/item/I) // Override for special butchering checks.
|
||||
if(((meat_type && meat_amount) || LAZYLEN(butchery_loot)) && stat == DEAD)
|
||||
|
||||
@@ -137,6 +137,7 @@
|
||||
var/poison_type = "phoron" // Poisonous air.
|
||||
var/exhale_type = "carbon_dioxide" // Exhaled gas type.
|
||||
var/water_breather = FALSE
|
||||
var/bad_swimmer = FALSE
|
||||
|
||||
var/body_temperature = 310.15 // Species will try to stabilize at this temperature. (also affects temperature processing)
|
||||
|
||||
@@ -407,6 +408,11 @@
|
||||
O.organ_tag = organ_tag
|
||||
H.internal_organs_by_name[organ_tag] = O
|
||||
|
||||
// set butcherable meats from species
|
||||
for(var/obj/item/organ/O in H.organs)
|
||||
O.set_initial_meat()
|
||||
for(var/obj/item/organ/O in H.internal_organs)
|
||||
O.set_initial_meat()
|
||||
|
||||
/datum/species/proc/hug(var/mob/living/carbon/human/H, var/mob/living/target)
|
||||
|
||||
@@ -513,6 +519,10 @@
|
||||
/datum/species/proc/can_breathe_water()
|
||||
return water_breather
|
||||
|
||||
// Called when standing on a water tile.
|
||||
/datum/species/proc/is_bad_swimmer()
|
||||
return bad_swimmer
|
||||
|
||||
// Impliments different trails for species depending on if they're wearing shoes.
|
||||
/datum/species/proc/get_move_trail(var/mob/living/carbon/human/H)
|
||||
if( H.shoes || ( H.wear_suit && (H.wear_suit.body_parts_covered & FEET) ) )
|
||||
@@ -570,4 +580,3 @@
|
||||
|
||||
/datum/species/proc/post_spawn_special(mob/living/carbon/human/H)
|
||||
return
|
||||
|
||||
|
||||
@@ -219,6 +219,12 @@
|
||||
var_changes = list("gun_accuracy_mod" = -35)
|
||||
custom_only = FALSE
|
||||
varchange_type = TRAIT_VARCHANGE_MORE_BETTER
|
||||
/datum/trait/negative/bad_swimmer
|
||||
name = "Bad Swimmer"
|
||||
desc = "You can't swim very well, all water slows you down a lot and you drown in deep water."
|
||||
cost = -1
|
||||
custom_only = FALSE
|
||||
var_changes = list("bad_swimmer" = 1, "water_movement" = 4)
|
||||
|
||||
//YW ADDITIONS: START
|
||||
/datum/trait/negative/light_sensitivity
|
||||
|
||||
@@ -331,7 +331,7 @@
|
||||
var/burncolor = (patient.getFireLoss() < 60 ? "color:gray;" : "color:red;")
|
||||
|
||||
dat += "<span style='[pulsecolor]'>\t-Pulse, bpm: [patient.get_pulse(GETPULSE_TOOL)]</span><BR>"
|
||||
dat += "<span style='[healthcolor]'>\t-Overall Health %: [round(patient.health)]</span><BR>"
|
||||
dat += "<span style='[healthcolor]'>\t-Overall Health %: [round(100 * (patient.health / patient.getMaxHealth()))]</span><BR>"
|
||||
dat += "<span style='[brutecolor]'>\t-Brute Damage %: [patient.getBruteLoss()]</span><BR>"
|
||||
dat += "<span style='[o2color]'>\t-Respiratory Damage %: [patient.getOxyLoss()]</span><BR>"
|
||||
dat += "<span style='[toxcolor]'>\t-Toxin Content %: [patient.getToxLoss()]</span><BR>"
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
var/vore_digest_chance = 25 // Chance to switch to digest mode if resisted
|
||||
var/vore_absorb_chance = 0 // Chance to switch to absorb mode if resisted
|
||||
var/vore_escape_chance = 25 // Chance of resisting out of mob
|
||||
var/vore_escape_chance_absorbed = 20// Chance of absorbed prey finishing an escape. Requires a successful escape roll against the above as well.
|
||||
|
||||
var/vore_stomach_name // The name for the first belly if not "stomach"
|
||||
var/vore_stomach_flavor // The flavortext for the first belly if not the default
|
||||
@@ -236,6 +237,7 @@
|
||||
B.contamination_color = vore_default_contamination_color
|
||||
B.escapable = vore_escape_chance > 0
|
||||
B.escapechance = vore_escape_chance
|
||||
B.escapechance_absorbed = vore_escape_chance_absorbed
|
||||
B.digestchance = vore_digest_chance
|
||||
B.absorbchance = vore_absorb_chance
|
||||
B.human_prey_swallow_time = swallowTime
|
||||
|
||||
@@ -185,4 +185,4 @@
|
||||
qdel(src)
|
||||
|
||||
else
|
||||
to_chat(user, "You need more space to release the egg!")
|
||||
to_chat(user, "You need more space to release the egg!")
|
||||
|
||||
@@ -3636,7 +3636,7 @@ shaved
|
||||
species_allowed = list(SPECIES_TESHARI)
|
||||
|
||||
/datum/sprite_accessory/marking/bandage/r_foot/r_foot3
|
||||
name = "Bandage, Rufgt Foot 3"
|
||||
name = "Bandage, Right Foot 3"
|
||||
icon_state = "bandage3"
|
||||
|
||||
/datum/sprite_accessory/marking/bandage/r_foot/r_foot3/teshari
|
||||
|
||||
@@ -114,8 +114,7 @@ var/list/organ_cache = list()
|
||||
|
||||
handle_organ_mod_special()
|
||||
|
||||
/obj/item/organ/Initialize()
|
||||
. = ..()
|
||||
/obj/item/organ/proc/set_initial_meat()
|
||||
if(owner)
|
||||
if(!meat_type)
|
||||
if(owner.isSynthetic())
|
||||
@@ -394,7 +393,7 @@ var/list/organ_cache = list()
|
||||
var/obj/item/organ/external/affected = owner.get_organ(parent_organ)
|
||||
if(affected) affected.internal_organs -= src
|
||||
|
||||
forceMove(owner.drop_location())
|
||||
owner.remove_from_mob(src, owner.drop_location())
|
||||
START_PROCESSING(SSobj, src)
|
||||
rejecting = null
|
||||
|
||||
|
||||
@@ -234,9 +234,9 @@ var/global/photo_count = 0
|
||||
holding = "They are holding \a [A.r_hand]"
|
||||
|
||||
if(!mob_detail)
|
||||
mob_detail = "You can see [A] on the photo[A:health < 75 ? " - [A] looks hurt":""].[holding ? " [holding]":"."]. "
|
||||
mob_detail = "You can see [A] on the photo[(A:health / A.getMaxHealth()) < 0.75 ? " - [A] looks hurt":""].[holding ? " [holding]":"."]. "
|
||||
else
|
||||
mob_detail += "You can also see [A] on the photo[A:health < 75 ? " - [A] looks hurt":""].[holding ? " [holding]":"."]."
|
||||
mob_detail += "You can also see [A] on the photo[(A:health / A.getMaxHealth()) < 0.75 ? " - [A] looks hurt":""].[holding ? " [holding]":"."]."
|
||||
|
||||
return mob_detail
|
||||
|
||||
|
||||
@@ -46,16 +46,26 @@
|
||||
icon = "sticky-note-o"
|
||||
template = "pda_notekeeper"
|
||||
|
||||
var/greeted = FALSE
|
||||
var/note = null
|
||||
var/notetitle = null
|
||||
var/currentnote = 1
|
||||
var/list/storedtitles = list("","","","","","","","","","","","")
|
||||
var/list/storednotes = list("","","","","","","","","","","","")
|
||||
var/notehtml = ""
|
||||
|
||||
/datum/data/pda/app/notekeeper/start()
|
||||
. = ..()
|
||||
if(!note)
|
||||
note = "Congratulations, your station has chosen the [pda.model_name]!"
|
||||
if(!note && greeted == FALSE)
|
||||
|
||||
// display greeting!
|
||||
greeted = TRUE
|
||||
note = "Your station has chosen the [pda.model_name]!"
|
||||
notetitle = "Congratulations!"
|
||||
|
||||
/datum/data/pda/app/notekeeper/update_ui(mob/user as mob, list/data)
|
||||
data["note"] = note // current pda notes
|
||||
data["notename"] = "Note [alphabet_uppercase[currentnote]] : [notetitle]"
|
||||
|
||||
/datum/data/pda/app/notekeeper/tgui_act(action, list/params, datum/tgui/ui, datum/tgui_state/state)
|
||||
if(..())
|
||||
@@ -70,6 +80,126 @@
|
||||
else
|
||||
pda.close(usr)
|
||||
return TRUE
|
||||
if("Titleset")
|
||||
var/n = tgui_input_text(usr, "Please enter title", name, notetitle, multiline = FALSE)
|
||||
if(pda.loc == usr)
|
||||
notetitle = adminscrub(n)
|
||||
else
|
||||
pda.close(usr)
|
||||
return TRUE
|
||||
if("Print")
|
||||
if(pda.loc == usr)
|
||||
printnote()
|
||||
else
|
||||
pda.close(usr)
|
||||
return TRUE
|
||||
// dumb way to do this, but i don't know how to easily parse this without a lot of silly code outside the switch!
|
||||
if("Note1")
|
||||
if(pda.loc == usr)
|
||||
changetonote(1)
|
||||
else
|
||||
pda.close(usr)
|
||||
return TRUE
|
||||
if("Note2")
|
||||
if(pda.loc == usr)
|
||||
changetonote(2)
|
||||
else
|
||||
pda.close(usr)
|
||||
return TRUE
|
||||
if("Note3")
|
||||
if(pda.loc == usr)
|
||||
changetonote(3)
|
||||
else
|
||||
pda.close(usr)
|
||||
return TRUE
|
||||
if("Note4")
|
||||
if(pda.loc == usr)
|
||||
changetonote(4)
|
||||
else
|
||||
pda.close(usr)
|
||||
return TRUE
|
||||
if("Note5")
|
||||
if(pda.loc == usr)
|
||||
changetonote(5)
|
||||
else
|
||||
pda.close(usr)
|
||||
return TRUE
|
||||
if("Note6")
|
||||
if(pda.loc == usr)
|
||||
changetonote(6)
|
||||
else
|
||||
pda.close(usr)
|
||||
return TRUE
|
||||
if("Note7")
|
||||
if(pda.loc == usr)
|
||||
changetonote(7)
|
||||
else
|
||||
pda.close(usr)
|
||||
return TRUE
|
||||
if("Note8")
|
||||
if(pda.loc == usr)
|
||||
changetonote(8)
|
||||
else
|
||||
pda.close(usr)
|
||||
return TRUE
|
||||
if("Note9")
|
||||
if(pda.loc == usr)
|
||||
changetonote(9)
|
||||
else
|
||||
pda.close(usr)
|
||||
return TRUE
|
||||
if("Note10")
|
||||
if(pda.loc == usr)
|
||||
changetonote(10)
|
||||
else
|
||||
pda.close(usr)
|
||||
return TRUE
|
||||
if("Note11")
|
||||
if(pda.loc == usr)
|
||||
changetonote(11)
|
||||
else
|
||||
pda.close(usr)
|
||||
return TRUE
|
||||
if("Note12")
|
||||
if(pda.loc == usr)
|
||||
changetonote(12)
|
||||
else
|
||||
pda.close(usr)
|
||||
return TRUE
|
||||
|
||||
/datum/data/pda/app/notekeeper/proc/printnote()
|
||||
// get active hand of person holding PDA, and print the page to the paper in it
|
||||
if(istype( usr, /mob/living/carbon/human ))
|
||||
var/mob/living/carbon/human/H = usr
|
||||
var/obj/item/I = H.get_active_hand()
|
||||
if(istype(I,/obj/item/weapon/paper))
|
||||
var/obj/item/weapon/paper/P = I
|
||||
if(isnull(P.info) || P.info == "" )
|
||||
var/titlenote = "Note [alphabet_uppercase[currentnote]]"
|
||||
if(!isnull(notetitle) && notetitle != "")
|
||||
titlenote = notetitle
|
||||
to_chat(usr, "<span class='notice'>Successfully printed [titlenote]!</span>")
|
||||
P.set_content( pencode2html(note), titlenote)
|
||||
else
|
||||
to_chat(usr, "<span class='notice'>You can only print to empty paper!</span>")
|
||||
else
|
||||
to_chat(usr, "<span class='notice'>You must be holding paper for the pda to print to!</span>")
|
||||
|
||||
|
||||
/datum/data/pda/app/notekeeper/proc/changetonote(var/noteindex)
|
||||
// save note to current slot, then load another slot
|
||||
storednotes[currentnote] = note
|
||||
storedtitles[currentnote] = notetitle
|
||||
|
||||
currentnote = noteindex
|
||||
|
||||
note = storednotes[currentnote]
|
||||
notetitle = storedtitles[currentnote]
|
||||
|
||||
// update text on keeper, silly swapping!
|
||||
note = replacetext(note, "<br>", "\n")
|
||||
notehtml = html_decode(note)
|
||||
note = replacetext(note, "\n", "<br>")
|
||||
|
||||
/datum/data/pda/app/manifest
|
||||
name = "Crew Manifest"
|
||||
|
||||
@@ -178,11 +178,18 @@
|
||||
if(length(notes.note) > 0)
|
||||
notes.note += "<br><br>"
|
||||
// Store the scanned document to the notes
|
||||
notes.note += "Scanned Document. Edit to restore previous notes/delete scan.<br>----------<br>" + formatted_scan + "<br>"
|
||||
// notehtml ISN'T set to allow user to get their old notes back. A better implementation would add a "scanned documents"
|
||||
// feature to the PDA, which would better convey the availability of the feature, but this will work for now.
|
||||
notes.note = formatted_scan
|
||||
notes.notetitle = sanitize_simple(P.name, list("\n" = "", "\t" = "", "ÿ" = ""))
|
||||
// update the saved note too incase we kept the pda open, this is really silly due to how the notehtml is actually what's passed to the editor's text.
|
||||
// If I don't update it here, it loses the data when you edit it!
|
||||
notes.storednotes[notes.currentnote] = notes.note
|
||||
notes.storedtitles[notes.currentnote] = notes.notetitle
|
||||
notes.notehtml = html_decode(replacetext(notes.note,"<br>", "\n"))
|
||||
// Inform the user
|
||||
to_chat(user, "<span class=notice>Paper scanned and OCRed to notekeeper.</span>")//concept of scanning paper copyright brainoblivion 2009
|
||||
var/scannedtitle = "Paper"
|
||||
if(!isnull(notes.notetitle) && notes.notetitle != "")
|
||||
scannedtitle = "'[notes.notetitle]'"
|
||||
to_chat(user, "<span class=notice>[scannedtitle] scanned to Notekeeper in note [alphabet_uppercase[notes.currentnote]].</span>")//concept of scanning paper copyright brainoblivion 2009
|
||||
|
||||
else
|
||||
to_chat(user, "<span class=warning>Error scanning [A].</span>")
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
icon_state = "particle1"//Need a new icon for this
|
||||
anchored = TRUE
|
||||
density = TRUE
|
||||
movement_type = UNSTOPPABLE // for bumps to trigger
|
||||
var/movement_range = 10
|
||||
var/energy = 10 //energy in eV
|
||||
var/mega_energy = 0 //energy in MeV
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
if((last_shot + fire_delay) <= world.time)
|
||||
last_shot = world.time
|
||||
var/obj/effect/accelerated_particle/A = null
|
||||
var/turf/T = get_step(src,dir)
|
||||
var/turf/T = src.loc // if it doesn't spawn here, it won't bump stuff directly infront of the PA
|
||||
switch(strength)
|
||||
if(0)
|
||||
A = new/obj/effect/accelerated_particle/weak(T, dir)
|
||||
|
||||
@@ -74,6 +74,7 @@
|
||||
matter = list(MAT_STEEL = 2000)
|
||||
projectile_type = /obj/item/projectile/scatter/ratminer
|
||||
charge_cost = 400
|
||||
fire_sound = 'sound/weapons/laser3.ogg'
|
||||
|
||||
/obj/item/projectile/scatter/ratminer
|
||||
spread_submunition_damage = FALSE
|
||||
|
||||
@@ -318,4 +318,4 @@
|
||||
item_state = "retro"
|
||||
|
||||
/obj/item/weapon/gun/energy/lasertag/omni
|
||||
projectile_type = /obj/item/projectile/beam/lasertag/omni
|
||||
projectile_type = /obj/item/projectile/beam/lasertag/omni
|
||||
|
||||
@@ -111,6 +111,8 @@
|
||||
spawn(1) // slight delay to prevent infinite propagation due to map order //TODO: please no spawn() in process(). It's a very bad idea
|
||||
var/items_moved = 0
|
||||
for(var/atom/movable/A in affecting)
|
||||
if(istype(A,/obj/effect/abstract)) // Flashlight's lights are not physical objects
|
||||
continue
|
||||
if(!A.anchored)
|
||||
if(A.loc == src.loc) // prevents the object from being affected if it's not currently here.
|
||||
step(A,movedir)
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
/datum/design/item/gps/AssembleDesignName()
|
||||
..()
|
||||
name = "Triangulating device design ([name])"
|
||||
name = "Triangulating device design (GPS - [name])"
|
||||
|
||||
/datum/design/item/gps/generic
|
||||
name = "GEN"
|
||||
@@ -77,4 +77,4 @@
|
||||
req_tech = list(TECH_BLUESPACE = 1)
|
||||
materials = list (MAT_STEEL = 20, MAT_GLASS = 10)
|
||||
build_path = /obj/item/device/radio/beacon
|
||||
sort_string = "DBABA"
|
||||
sort_string = "DBABA"
|
||||
|
||||
@@ -20,6 +20,8 @@
|
||||
// CHEST INTERNAL ORGAN SURGERY //
|
||||
//////////////////////////////////////////////////////////////////
|
||||
/datum/surgery_step/internal/fix_organ
|
||||
surgery_name = "Treat Organ"
|
||||
|
||||
allowed_tools = list(
|
||||
/obj/item/stack/medical/advanced/bruise_pack= 100, \
|
||||
/obj/item/stack/medical/bruise_pack = 20
|
||||
@@ -114,6 +116,8 @@
|
||||
|
||||
//Robo internal organ fix. For when an organic has robotic limbs.
|
||||
/datum/surgery_step/fix_organic_organ_robotic //For artificial organs
|
||||
surgery_name = "Mend Organ"
|
||||
|
||||
allowed_tools = list(
|
||||
/obj/item/stack/nanopaste = 100,
|
||||
/obj/item/stack/cable_coil = 75,
|
||||
@@ -187,6 +191,7 @@
|
||||
///////////////////////////////////////////////////////////////
|
||||
|
||||
/datum/surgery_step/internal/detatch_organ/
|
||||
surgery_name = "Detach Organ"
|
||||
|
||||
allowed_tools = list(
|
||||
/obj/item/weapon/surgical/scalpel = 100, \
|
||||
@@ -329,6 +334,7 @@
|
||||
///////////////////////////////////////////////////////////////
|
||||
|
||||
/datum/surgery_step/internal/replace_organ
|
||||
surgery_name = "Replace Organ"
|
||||
allowed_tools = list(
|
||||
/obj/item/organ = 100
|
||||
)
|
||||
@@ -408,6 +414,7 @@
|
||||
///////////////////////////////////////////////////////////////
|
||||
|
||||
/datum/surgery_step/internal/attach_organ
|
||||
surgery_name = "Attach Organ"
|
||||
allowed_tools = list(
|
||||
/obj/item/weapon/surgical/FixOVein = 100, \
|
||||
/obj/item/stack/cable_coil = 75
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
/client/verb/export_chat()
|
||||
set category = "OOC"
|
||||
set name = "Export Chatlog"
|
||||
set desc = "Allows to trigger the chat export"
|
||||
|
||||
to_chat(usr, "<span data-command=\"$do_export\"></span>")
|
||||
@@ -31,7 +31,7 @@
|
||||
var/digestchance = 0 // % Chance of stomach beginning to digest if prey struggles
|
||||
var/absorbchance = 0 // % Chance of stomach beginning to absorb if prey struggles
|
||||
var/escapechance = 0 // % Chance of prey beginning to escape if prey struggles.
|
||||
var/escapechance_absorbed = 20 // % Chance of absorbed prey finishing an escape. Requires a successful escape roll against the above as well.
|
||||
var/escapechance_absorbed = 0 // % Chance of absorbed prey finishing an escape. Requires a successful escape roll against the above as well.
|
||||
var/escape_stun = 0 // AI controlled mobs with a number here will be weakened by the provided var when someone escapes, to prevent endless nom loops
|
||||
var/transferchance = 0 // % Chance of prey being trasnsfered, goes from 0-100%
|
||||
var/transferchance_secondary = 0 // % Chance of prey being transfered to transferchance_secondary, also goes 0-100%
|
||||
@@ -551,7 +551,7 @@
|
||||
|
||||
//Print notifications/sound if necessary
|
||||
if(!silent && count)
|
||||
owner.visible_message("<font color='green'><b>[owner] [release_verb] everything from their [lowertext(name)]!</b></font>", range = privacy_range)
|
||||
owner.visible_message("<span class='vnotice'><font color='green'><b>[owner] [release_verb] everything from their [lowertext(name)]!</b></font></span>", range = privacy_range)
|
||||
var/soundfile
|
||||
if(!fancy_vore)
|
||||
soundfile = classic_release_sounds[release_sound]
|
||||
@@ -631,7 +631,7 @@
|
||||
|
||||
//Print notifications/sound if necessary
|
||||
if(!silent)
|
||||
owner.visible_message("<font color='green'><b>[owner] [release_verb] [M] from their [lowertext(name)]!</b></font>",range = privacy_range)
|
||||
owner.visible_message("<span class='vnotice'><font color='green'><b>[owner] [release_verb] [M] from their [lowertext(name)]!</b></font></span>",range = privacy_range)
|
||||
var/soundfile
|
||||
if(!fancy_vore)
|
||||
soundfile = classic_release_sounds[release_sound]
|
||||
@@ -703,7 +703,7 @@
|
||||
formatted_message = replacetext(formatted_message, "%countprey", living_count)
|
||||
formatted_message = replacetext(formatted_message, "%count", contents.len)
|
||||
|
||||
return("<span class='vwarning'>[formatted_message]</span>")
|
||||
return("<i><font color='red'>[formatted_message]</font></i>")
|
||||
|
||||
/obj/belly/proc/get_examine_msg_absorbed()
|
||||
if(!(contents.len) || !(examine_messages_absorbed.len) || !display_absorbed_examine)
|
||||
@@ -727,7 +727,7 @@
|
||||
formatted_message = replacetext(formatted_message, "%prey", english_list(absorbed_victims))
|
||||
formatted_message = replacetext(formatted_message, "%countprey", absorbed_count)
|
||||
|
||||
return("<span class='vwarning'>[formatted_message]</span>")
|
||||
return("<i><font color='red'>[formatted_message]</font></i>")
|
||||
|
||||
// The next function gets the messages set on the belly, in human-readable format.
|
||||
// This is useful in customization boxes and such. The delimiter right now is \n\n so
|
||||
@@ -1521,7 +1521,7 @@
|
||||
|
||||
//absorb resists
|
||||
if(escapable || owner.stat) //If the stomach has escapable enabled or the owner is dead/unconscious
|
||||
if(prob(escapechance_absorbed) || owner.stat) //Let's have it check to see if the prey's escape attempt starts.
|
||||
if(prob(escapechance) || owner.stat) //Let's have it check to see if the prey's escape attempt starts.
|
||||
|
||||
|
||||
var/living_count = 0
|
||||
|
||||
@@ -496,6 +496,11 @@
|
||||
else if(tf_mob_holder)
|
||||
log_and_message_admins("[key_name(src)] used the OOC escape button to revert back to their original form from being TFed into another mob.")
|
||||
revert_mob_tf()
|
||||
|
||||
else if(istype(loc, /obj/item/weapon/holder/micro) && (istype(loc.loc, /obj/machinery/microwave)))
|
||||
forceMove(get_turf(src))
|
||||
log_and_message_admins("[key_name(src)] used the OOC escape button to get out of a microwave.")
|
||||
|
||||
//Don't appear to be in a vore situation
|
||||
else
|
||||
to_chat(src,"<span class='alert'>You aren't inside anyone, though, is the thing.</span>")
|
||||
@@ -740,11 +745,11 @@
|
||||
to_chat(src, "<span class='notice'>You are not holding anything.</span>")
|
||||
return
|
||||
|
||||
if(is_type_in_list(I,item_vore_blacklist))
|
||||
if(is_type_in_list(I,item_vore_blacklist) && !adminbus_trash) //If someone has adminbus, they can eat whatever they want.
|
||||
to_chat(src, "<span class='warning'>You are not allowed to eat this.</span>")
|
||||
return
|
||||
|
||||
if(!I.trash_eatable)
|
||||
if(!I.trash_eatable) //OOC pref. This /IS/ respected, even if adminbus_trash is enabled
|
||||
to_chat(src, "<span class='warning'>You can't eat that so casually!</span>")
|
||||
return
|
||||
|
||||
@@ -830,16 +835,11 @@
|
||||
to_chat(src, "<span class='notice'>You can taste the flavor of pain. This can't possibly be healthy for your guts.</span>")
|
||||
else
|
||||
to_chat(src, "<span class='notice'>You can taste the flavor of really bad ideas.</span>")
|
||||
else if(istype(I,/obj/item/toy))
|
||||
visible_message("<span class='warning'>[src] demonstrates their voracious capabilities by swallowing [I] whole!</span>")
|
||||
else if(istype(I,/obj/item/weapon/bikehorn/tinytether))
|
||||
to_chat(src, "<span class='notice'>You feel a rush of power swallowing such a large, err, tiny structure.</span>")
|
||||
visible_message("<span class='warning'>[src] demonstrates their voracious capabilities by swallowing [I] whole!</span>")
|
||||
else if(istype(I,/obj/item/device/mmi/digital/posibrain) || istype(I,/obj/item/device/aicard))
|
||||
visible_message("<span class='warning'>[src] demonstrates their voracious capabilities by swallowing [I] whole!</span>")
|
||||
to_chat(src, "<span class='notice'>You can taste the sweet flavor of digital friendship. Or maybe it is something else.</span>")
|
||||
else if(istype(I,/obj/item/device/paicard))
|
||||
visible_message("<span class='warning'>[src] demonstrates their voracious capabilities by swallowing [I] whole!</span>")
|
||||
to_chat(src, "<span class='notice'>You can taste the sweet flavor of digital friendship.</span>")
|
||||
var/obj/item/device/paicard/ourcard = I
|
||||
if(ourcard.pai && ourcard.pai.client && isbelly(ourcard.loc))
|
||||
@@ -852,7 +852,6 @@
|
||||
else
|
||||
to_chat(src, "<span class='notice'>You can taste the flavor of gluttonous waste of food.</span>")
|
||||
else if (istype(I,/obj/item/clothing/accessory/collar))
|
||||
visible_message("<span class='warning'>[src] demonstrates their voracious capabilities by swallowing [I] whole!</span>")
|
||||
to_chat(src, "<span class='notice'>You can taste the submissiveness in the wearer of [I]!</span>")
|
||||
else if(iscapturecrystal(I))
|
||||
var/obj/item/capture_crystal/C = I
|
||||
@@ -863,6 +862,7 @@
|
||||
to_chat(src, "<span class='notice'>You can taste the the power of command.</span>")
|
||||
else
|
||||
to_chat(src, "<span class='notice'>You can taste the flavor of garbage. Delicious.</span>")
|
||||
visible_message("<span class='warning'>[src] demonstrates their voracious capabilities by swallowing [I] whole!</span>")
|
||||
return
|
||||
to_chat(src, "<span class='notice'>This item is not appropriate for ethical consumption.</span>")
|
||||
return
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
//33% chance to spawn nasties
|
||||
if(prob(33))
|
||||
spawn_type = pick(
|
||||
/mob/living/simple_mob/animal/giant_spider/nurse,
|
||||
/mob/living/simple_mob/animal/space/alien,
|
||||
/mob/living/simple_mob/animal/space/bear,
|
||||
/mob/living/simple_mob/creature,
|
||||
|
||||
|
Before Width: | Height: | Size: 238 KiB After Width: | Height: | Size: 238 KiB |
|
Before Width: | Height: | Size: 693 KiB After Width: | Height: | Size: 694 KiB |
|
Before Width: | Height: | Size: 193 KiB After Width: | Height: | Size: 193 KiB |
|
Before Width: | Height: | Size: 654 KiB After Width: | Height: | Size: 654 KiB |
|
Before Width: | Height: | Size: 416 KiB After Width: | Height: | Size: 417 KiB |
|
Before Width: | Height: | Size: 97 KiB After Width: | Height: | Size: 97 KiB |
|
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 101 KiB |
@@ -1,397 +0,0 @@
|
||||
"aa" = (/obj/effect/floor_decal/atoll{icon_state = "mural"; dir = 1},/obj/machinery/gateway{dir = 9},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"ab" = (/obj/effect/floor_decal/atoll/border/invert{icon_state = "border_invert"; dir = 4},/obj/effect/floor_decal/atoll/border/invert{icon_state = "border_invert"; dir = 1},/obj/machinery/gateway{dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"ac" = (/obj/effect/floor_decal/atoll{icon_state = "mural"; dir = 8},/obj/machinery/gateway{dir = 5},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"ad" = (/obj/effect/floor_decal/atoll{icon_state = "mural"; dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"ae" = (/obj/effect/floor_decal/atoll{icon_state = "mural"; dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"af" = (/obj/effect/floor_decal/atoll{icon_state = "mural"; dir = 4},/obj/machinery/gateway{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"ag" = (/obj/effect/floor_decal/atoll/moss/random,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"ah" = (/obj/effect/floor_decal/atoll,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"ai" = (/obj/effect/floor_decal/atoll{icon_state = "mural"; dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"aj" = (/obj/structure/flora/moss,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 1},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll)
|
||||
"ak" = (/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 1},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll)
|
||||
"al" = (/turf/simulated/floor/atoll/vertical,/area/gateway/atoll)
|
||||
"am" = (/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"an" = (/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"ao" = (/obj/structure/railing/overhang/waterless,/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"ap" = (/obj/effect/decal/shadow,/turf/simulated/floor/atoll/vertical,/area/gateway/atoll)
|
||||
"aq" = (/obj/structure/railing/overhang,/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"ar" = (/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"as" = (/obj/structure/bed/chair/sofa/bench/marble,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"at" = (/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"au" = (/obj/effect/decal/shadow{icon_state = "wall_shadow"; dir = 1},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll)
|
||||
"av" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"aw" = (/obj/structure/lightpost/atoll,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"ax" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"ay" = (/obj/structure/flora/moss{icon_state = "moss"; dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"az" = (/obj/effect/decal/shadow{icon_state = "wall_shadow"; dir = 4},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll)
|
||||
"aA" = (/obj/effect/decal/shadow/silhouette/pillar{icon_state = "silhouette_p"; dir = 1},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"aB" = (/obj/machinery/gateway/centerstation,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"aC" = (/obj/effect/blocker,/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"aD" = (/obj/effect/blocker,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"aE" = (/obj/effect/blocker,/obj/effect/floor_decal/atoll/moss/random,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"aF" = (/obj/effect/blocker,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"aG" = (/obj/effect/blocker,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"aH" = (/obj/effect/blocker,/obj/effect/decal/shadow{icon_state = "wall_shadow"; dir = 8},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll)
|
||||
"aI" = (/obj/effect/blocker,/obj/structure/railing/overhang/waterless,/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"aJ" = (/obj/effect/blocker,/obj/effect/decal/shadow{icon_state = "wall_shadow"; dir = 4},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll)
|
||||
"aK" = (/obj/effect/blocker,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 1},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll)
|
||||
"aL" = (/obj/effect/blocker,/turf/simulated/floor/atoll/vertical,/area/gateway/atoll)
|
||||
"aM" = (/obj/effect/blocker,/obj/structure/flora/moss{icon_state = "moss"; dir = 8},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll)
|
||||
"aN" = (/obj/effect/blocker,/obj/structure/flora/moss,/turf/simulated/floor/atoll/vertical,/area/gateway/atoll)
|
||||
"aO" = (/obj/effect/decal/shadow/silhouette,/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"aP" = (/obj/effect/floor_decal/atoll{icon_state = "mural"; dir = 4},/obj/structure/bed/chair/sofa/bench/marble{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"aQ" = (/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 9},/obj/effect/floor_decal/atoll/bronze,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"aR" = (/obj/effect/floor_decal/atoll/border,/obj/effect/floor_decal/atoll/bronze,/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"aS" = (/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 5},/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"aT" = (/obj/effect/floor_decal/atoll,/obj/structure/bed/chair/sofa/bench/marble{icon_state = "bench"; dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"aU" = (/obj/effect/decal/shadow{icon_state = "wall_shadow"; dir = 8},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll)
|
||||
"aV" = (/obj/structure/flora/lily2,/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"aW" = (/obj/structure/flora/moss{icon_state = "moss"; dir = 1},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll)
|
||||
"aX" = (/obj/effect/decal/shadow/silhouette{icon_state = "silhouette"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"aY" = (/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 9},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"aZ" = (/obj/effect/floor_decal/atoll/bronze,/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 4},/obj/effect/floor_decal/atoll/border/invert{icon_state = "border_invert"; dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"ba" = (/obj/structure/flora/lily2,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"bb" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"bc" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"bd" = (/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 1},/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 8},/obj/effect/floor_decal/atoll/border/invert{icon_state = "border_invert"; dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"be" = (/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 5},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"bf" = (/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"bg" = (/obj/effect/floor_decal/atoll/bronze,/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"bh" = (/obj/structure/railing/overhang,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"bi" = (/obj/structure/flora/lily3,/obj/structure/railing/overhang,/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"bj" = (/obj/structure/railing/overhang,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"bk" = (/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 1},/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"bl" = (/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"bm" = (/obj/structure/flora/lily3,/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"bn" = (/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 10},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"bo" = (/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 4},/obj/effect/floor_decal/atoll/border/invert{icon_state = "border_invert"; dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"bp" = (/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 1},/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"bq" = (/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 1},/obj/effect/floor_decal/atoll/border/invert,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"br" = (/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 6},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"bs" = (/obj/structure/flora/lily1,/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"bt" = (/obj/structure/flora/moss{icon_state = "moss"; dir = 8},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll)
|
||||
"bu" = (/obj/effect/floor_decal/atoll{icon_state = "mural"; dir = 1},/obj/structure/bed/chair/sofa/bench/marble{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"bv" = (/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 10},/obj/effect/floor_decal/atoll/moss/random,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"bw" = (/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"bx" = (/obj/effect/floor_decal/atoll/border/invert,/obj/effect/floor_decal/atoll/border/invert{icon_state = "border_invert"; dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"by" = (/obj/effect/floor_decal/atoll/moss/random,/obj/effect/floor_decal/atoll/border/invert,/obj/effect/floor_decal/atoll/border/invert{icon_state = "border_invert"; dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"bz" = (/obj/effect/floor_decal/atoll{icon_state = "mural"; dir = 8},/obj/structure/bed/chair/sofa/bench/marble{icon_state = "bench"; dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"bA" = (/obj/effect/decal/shadow,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 1},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll)
|
||||
"bB" = (/obj/effect/floor_decal/atoll/stairs,/obj/effect/decal/shadow,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"bC" = (/obj/structure/flora/moss{icon_state = "moss"; dir = 4},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll)
|
||||
"bD" = (/obj/structure/flora/moss{icon_state = "moss"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"bE" = (/obj/effect/decal/shadow{icon_state = "wall_shadow"; dir = 1},/obj/structure/flora/moss{icon_state = "moss"; dir = 4},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll)
|
||||
"bF" = (/obj/effect/floor_decal/atoll/stairs,/obj/effect/decal/shadow{icon_state = "wall_shadow"; dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"bG" = (/obj/effect/decal/shadow{icon_state = "wall_shadow"; dir = 1},/obj/structure/flora/moss{icon_state = "moss"; dir = 1},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll)
|
||||
"bH" = (/obj/effect/decal/shadow{icon_state = "wall_shadow"; dir = 1},/obj/structure/flora/moss{icon_state = "moss"; dir = 8},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll)
|
||||
"bI" = (/obj/effect/floor_decal/atoll/stairs,/obj/effect/decal/shadow{icon_state = "wall_shadow"; dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"bJ" = (/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 9},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"bK" = (/obj/structure/bed/chair/sofa/bench/marble,/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 5},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"bL" = (/obj/effect/decal/shadow/silhouette{icon_state = "silhouette"; dir = 1},/obj/structure/railing/overhang,/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"bM" = (/obj/structure/flora/lily2,/obj/structure/railing/overhang,/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"bN" = (/obj/effect/floor_decal/atoll/stairs,/obj/effect/decal/shadow{icon_state = "wall_shadow"; dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"bO" = (/obj/structure/flora/moss{icon_state = "moss"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"bP" = (/obj/structure/flora/moss,/turf/simulated/floor/atoll/vertical,/area/gateway/atoll)
|
||||
"bQ" = (/obj/structure/flora/log2,/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"bR" = (/obj/structure/flora/tree/atoll{icon_state = "green"; dir = 4},/obj/effect/floor_decal/atoll/moss/random,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"bS" = (/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"bT" = (/obj/effect/decal/shadow/floor,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"bU" = (/obj/effect/decal/shadow/floor,/obj/effect/floor_decal/atoll/moss/random,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"bV" = (/obj/effect/decal/shadow/floor,/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 5},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"bW" = (/obj/structure/bed/chair/sofa/bench/marble{dir = 4},/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 1},/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"bX" = (/obj/structure/bed/chair/sofa/bench/marble{icon_state = "bench"; dir = 8},/obj/effect/floor_decal/atoll/bronze,/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"bY" = (/obj/structure/flora/tree/atoll{icon_state = "green"; dir = 1},/obj/effect/floor_decal/atoll/moss/random,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"bZ" = (/obj/effect/floor_decal/atoll/moss/random,/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 1},/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"ca" = (/obj/effect/floor_decal/atoll/bronze,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"cb" = (/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 6},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"cc" = (/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 10},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"cd" = (/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 8},/obj/effect/floor_decal/atoll/bronze,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"ce" = (/obj/effect/floor_decal/atoll/bronze,/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"cf" = (/obj/structure/bed/chair/sofa/bench/marble{icon_state = "bench"; dir = 1},/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 6},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"cg" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"ch" = (/turf/simulated/floor/beach/sand/outdoors/atoll,/area/gateway/atoll)
|
||||
"ci" = (/turf/simulated/floor/outdoors/grass/heavy/atoll,/area/gateway/atoll)
|
||||
"cj" = (/obj/structure/flora/tree/jungle,/turf/simulated/floor/outdoors/grass/heavy/atoll,/area/gateway/atoll)
|
||||
"ck" = (/obj/structure/flora/tree/jungle_small,/turf/simulated/floor/outdoors/grass/heavy/atoll,/area/gateway/atoll)
|
||||
"cl" = (/obj/structure/flora/bboulder1,/turf/simulated/floor/outdoors/grass/heavy/atoll,/area/gateway/atoll)
|
||||
"cm" = (/obj/structure/flora/log1,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"cn" = (/obj/structure/flora/ausbushes/reedbush,/turf/simulated/floor/outdoors/grass/heavy/atoll,/area/gateway/atoll)
|
||||
"co" = (/obj/structure/flora/rocks1,/turf/simulated/floor/outdoors/grass/heavy/atoll,/area/gateway/atoll)
|
||||
"cp" = (/obj/structure/flora/rocks2,/turf/simulated/floor/outdoors/grass/heavy/atoll,/area/gateway/atoll)
|
||||
"cq" = (/obj/structure/flora/ausbushes/fernybush,/turf/simulated/floor/outdoors/grass/heavy/atoll,/area/gateway/atoll)
|
||||
"cr" = (/obj/structure/flora/bboulder2,/turf/simulated/floor/outdoors/grass/heavy/atoll,/area/gateway/atoll)
|
||||
"cs" = (/obj/structure/flora/log1,/turf/simulated/floor/beach/sand/outdoors/atoll,/area/gateway/atoll)
|
||||
"ct" = (/obj/structure/bed/chair/sofa/bench/marble,/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 9},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"cu" = (/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"cv" = (/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 8},/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"cw" = (/obj/effect/step_trigger/teleporter/atoll{teleport_x = 48; teleport_y = 107},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"cx" = (/obj/effect/step_trigger/teleporter/atoll{teleport_x = 33; teleport_y = 107},/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 1},/obj/effect/floor_decal/atoll/border,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"cy" = (/obj/structure/flora/ausbushes/palebush,/turf/simulated/floor/outdoors/grass/heavy/atoll,/area/gateway/atoll)
|
||||
"cz" = (/obj/structure/flora/tree/atoll{icon_state = "green"; dir = 8},/obj/effect/floor_decal/atoll/moss/random,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"cA" = (/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 4},/obj/effect/floor_decal/atoll/bronze,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"cB" = (/obj/structure/flora/log1,/turf/simulated/floor/outdoors/grass/heavy/atoll,/area/gateway/atoll)
|
||||
"cC" = (/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"cD" = (/obj/structure/bed/chair/sofa/bench/marble{icon_state = "bench"; dir = 1},/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 10},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"cE" = (/obj/effect/floor_decal/atoll/moss/random,/obj/effect/floor_decal/atoll/bronze,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"cF" = (/obj/structure/flora/smallbould,/turf/simulated/floor/outdoors/grass/heavy/atoll,/area/gateway/atoll)
|
||||
"cG" = (/obj/structure/flora/ausbushes/pointybush,/turf/simulated/floor/outdoors/grass/heavy/atoll,/area/gateway/atoll)
|
||||
"cH" = (/obj/effect/floor_decal/atoll/border/invert{icon_state = "border_invert"; dir = 8},/obj/effect/floor_decal/atoll/border/invert,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"cI" = (/obj/effect/decal/shadow,/obj/structure/flora/moss{icon_state = "moss"; dir = 8},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll)
|
||||
"cJ" = (/obj/effect/decal/shadow,/obj/structure/flora/moss{icon_state = "moss"; dir = 1},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll)
|
||||
"cK" = (/obj/effect/step_trigger/teleporter/atoll{teleport_x = 62; teleport_y = 103},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"cL" = (/obj/structure/flora/tree/atoll{icon_state = "green"; dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"cM" = (/obj/structure/flora/log2,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"cN" = (/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/outdoors/grass/heavy/atoll,/area/gateway/atoll)
|
||||
"cO" = (/obj/structure/flora/tree/atoll{icon_state = "green"; dir = 1},/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 1},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll)
|
||||
"cP" = (/obj/structure/flora/moss{icon_state = "moss"; dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"cQ" = (/obj/effect/step_trigger/teleporter/atoll{teleport_x = 99; teleport_y = 83},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"cR" = (/obj/structure/flora/moss{icon_state = "moss"; dir = 8},/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 1},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll)
|
||||
"cS" = (/obj/effect/step_trigger/teleporter/atoll{teleport_x = 108; teleport_y = 90},/obj/effect/floor_decal/atoll/border,/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"cT" = (/obj/effect/decal/shadow/silhouette/pillar{icon_state = "silhouette_p"; dir = 4},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"cU" = (/obj/structure/flora/tree/atoll{icon_state = "green"; dir = 1},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"cV" = (/obj/effect/floor_decal/atoll/border/invert{icon_state = "border_invert"; dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"cW" = (/obj/effect/floor_decal/atoll/border/invert,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"cX" = (/obj/structure/flora/tree/atoll/huge,/turf/simulated/floor/beach/sand/outdoors/atoll,/area/gateway/atoll)
|
||||
"cY" = (/obj/effect/floor_decal/atoll/border,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"cZ" = (/obj/effect/floor_decal/atoll/border/invert{icon_state = "border_invert"; dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"da" = (/obj/structure/flora/lily1,/obj/structure/railing/overhang,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"db" = (/obj/effect/floor_decal/atoll,/obj/machinery/gateway{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"dc" = (/obj/structure/bed/chair/sofa/bench/marble{dir = 4},/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 9},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"dd" = (/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 4},/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"de" = (/obj/structure/bed/chair/sofa/bench/marble,/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 4},/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"df" = (/obj/structure/bed/chair/sofa/bench/marble{icon_state = "bench"; dir = 8},/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 5},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"dg" = (/obj/effect/floor_decal/atoll/border/invert{icon_state = "border_invert"; dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"dh" = (/obj/machinery/gateway,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"di" = (/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 9},/obj/effect/floor_decal/atoll/moss/random,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"dj" = (/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 1},/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 4},/obj/effect/floor_decal/atoll/moss/random,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"dk" = (/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 5},/obj/effect/floor_decal/atoll/moss/random,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"dl" = (/obj/structure/flora/lily2,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"dm" = (/obj/effect/floor_decal/atoll/border/invert{icon_state = "border_invert"; dir = 8},/obj/effect/floor_decal/atoll/border/invert{icon_state = "border_invert"; dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"dn" = (/obj/effect/floor_decal/atoll/power,/turf/simulated/floor/atoll{desc = "Scuff and weathered etchings make these floors out to be pretty old. This particular area looks energized, maybe it can supply power to something?"},/area/gateway/atoll/powered)
|
||||
"do" = (/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 1},/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 8},/obj/effect/floor_decal/atoll/moss/random,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"dp" = (/obj/effect/floor_decal/atoll/moss/random,/obj/structure/flora/tree/atoll{icon_state = "green"; dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"dq" = (/obj/effect/floor_decal/atoll/bronze,/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 4},/obj/effect/floor_decal/atoll/moss/random,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"dr" = (/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 10},/obj/effect/floor_decal/atoll/moss/random,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"ds" = (/obj/effect/floor_decal/atoll/bronze,/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 8},/obj/effect/floor_decal/atoll/moss/random,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"dt" = (/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 6},/obj/effect/floor_decal/atoll/moss/random,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"du" = (/obj/effect/floor_decal/atoll/moss/random,/obj/effect/floor_decal/atoll/border/invert,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"dv" = (/obj/structure/flora/lily3,/obj/structure/railing/overhang,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"dw" = (/obj/structure/flora/lily3,/obj/structure/railing/overhang,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"dx" = (/obj/effect/decal/shadow/silhouette/pillar,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"dy" = (/obj/effect/decal/shadow/silhouette/pillar,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"dz" = (/obj/structure/bed/chair/sofa/bench/marble{dir = 4},/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 10},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"dA" = (/obj/structure/bed/chair/sofa/bench/marble{icon_state = "bench"; dir = 1},/obj/effect/floor_decal/atoll/bronze,/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"dB" = (/obj/structure/bed/chair/sofa/bench/marble{icon_state = "bench"; dir = 8},/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 6},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"dC" = (/obj/effect/decal/shadow/silhouette/pillar{icon_state = "silhouette_p"; dir = 8},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"dD" = (/obj/effect/decal/shadow/silhouette/pillar{icon_state = "silhouette_p"; dir = 8},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"dE" = (/obj/effect/decal/shadow/silhouette/pillar{icon_state = "silhouette_p"; dir = 4},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"dF" = (/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 4},/obj/effect/floor_decal/atoll/moss/random,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"dG" = (/obj/structure/flora/tree/atoll{icon_state = "green"; dir = 8},/obj/effect/floor_decal/atoll/moss/random,/obj/effect/floor_decal/atoll/border/invert{icon_state = "border_invert"; dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"dH" = (/obj/structure/flora/ausbushes/genericbush,/turf/simulated/floor/outdoors/grass/heavy/atoll,/area/gateway/atoll)
|
||||
"dI" = (/obj/structure/railing/overhang/waterless,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"dJ" = (/obj/structure/railing/overhang/waterless,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"dK" = (/obj/structure/flora/tree/atoll,/obj/effect/floor_decal/atoll/moss/random,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"dL" = (/obj/structure/flora/moss,/obj/effect/step_trigger/teleporter/atoll{teleport_x = 97; teleport_y = 46},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"dM" = (/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"dN" = (/obj/effect/decal/shadow,/obj/structure/flora/moss{icon_state = "moss"; dir = 4},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll)
|
||||
"dO" = (/obj/structure/flora/ausbushes/grassybush,/turf/simulated/floor/outdoors/grass/heavy/atoll,/area/gateway/atoll)
|
||||
"dP" = (/obj/effect/step_trigger/teleporter/atoll{teleport_x = 80; teleport_y = 55},/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 1},/obj/effect/floor_decal/atoll/border,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"dQ" = (/obj/structure/flora/tree/atoll/huge{icon_state = "tree"; dir = 1},/obj/structure/flora/rocks1,/turf/simulated/floor/outdoors/grass/heavy/atoll,/area/gateway/atoll)
|
||||
"dR" = (/obj/effect/step_trigger/teleporter/atoll{teleport_x = 15; teleport_y = 39},/obj/effect/floor_decal/atoll/border,/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"dS" = (/obj/effect/step_trigger/teleporter/atoll{teleport_x = 36; teleport_y = 41},/obj/effect/floor_decal/atoll,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"dT" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/simulated/floor/outdoors/grass/heavy/atoll,/area/gateway/atoll)
|
||||
"dU" = (/obj/effect/step_trigger/teleporter/atoll{teleport_x = 44; teleport_y = 33},/obj/effect/floor_decal/atoll/border/invert{icon_state = "border_invert"; dir = 1},/obj/effect/floor_decal/atoll/border/invert{icon_state = "border_invert"; dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"dV" = (/obj/effect/step_trigger/teleporter/atoll{teleport_x = 44; teleport_y = 38},/obj/effect/floor_decal/atoll/border/invert,/obj/effect/floor_decal/atoll/border/invert{icon_state = "border_invert"; dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"dW" = (/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 8},/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"dX" = (/obj/structure/flora/ausbushes/brflowers,/turf/simulated/floor/outdoors/grass/heavy/atoll,/area/gateway/atoll)
|
||||
"dY" = (/obj/effect/step_trigger/teleporter/atoll{teleport_x = 30; teleport_y = 25},/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 1},/obj/effect/floor_decal/atoll/border,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"dZ" = (/obj/structure/flora/ausbushes/sunnybush,/turf/simulated/floor/outdoors/grass/heavy/atoll,/area/gateway/atoll)
|
||||
"ea" = (/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/obj/structure/flora/lily1,/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"eb" = (/obj/structure/flora/rocks1,/turf/simulated/floor/beach/sand/outdoors/atoll,/area/gateway/atoll)
|
||||
"ec" = (/obj/effect/step_trigger/teleporter/atoll{teleport_x = 101; teleport_y = 19},/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 1},/obj/effect/floor_decal/atoll/border,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"ed" = (/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 1},/obj/effect/floor_decal/atoll/moss/random,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"ee" = (/obj/effect/step_trigger/teleporter/atoll{teleport_x = 114; teleport_y = 20},/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 4},/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"ef" = (/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 1},/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll)
|
||||
"eg" = (/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll)
|
||||
"eh" = (/obj/effect/step_trigger/teleporter/atoll{teleport_x = 33; teleport_y = 91},/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 4},/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"ei" = (/obj/effect/blocker,/obj/effect/decal/shadow/silhouette,/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"ej" = (/obj/machinery/gateway{dir = 10},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"ek" = (/obj/machinery/gateway{dir = 6},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"el" = (/obj/effect/floor_decal/atoll/bronze,/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 9},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"em" = (/obj/effect/floor_decal/atoll/bronze,/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 8},/obj/effect/floor_decal/atoll/border,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"en" = (/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 8},/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 5},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"eo" = (/obj/effect/floor_decal/atoll/bronze,/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 4},/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"ep" = (/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 8},/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 1},/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"eq" = (/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 4},/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 10},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"er" = (/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 4},/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 1},/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"es" = (/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 1},/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 6},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"et" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/structure/railing/overhang,/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"eu" = (/obj/effect/floor_decal/atoll/moss/random,/obj/effect/floor_decal/atoll/border/invert{icon_state = "border_invert"; dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"ev" = (/obj/effect/floor_decal/atoll/moss/random,/obj/effect/floor_decal/atoll/border/invert{icon_state = "border_invert"; dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"ew" = (/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 8},/obj/effect/floor_decal/atoll/bronze,/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"ex" = (/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 4},/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 8},/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"ey" = (/obj/effect/floor_decal/atoll/border/invert{icon_state = "border_invert"; dir = 1},/obj/effect/floor_decal/atoll/bronze,/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"ez" = (/obj/effect/floor_decal/atoll/border/invert{icon_state = "border_invert"; dir = 8},/obj/effect/floor_decal/atoll/bronze,/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"eA" = (/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 9},/obj/structure/bed/chair/sofa/bench/marble,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"eB" = (/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 1},/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 1},/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"eC" = (/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 1},/obj/effect/floor_decal/atoll/moss/random,/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 1},/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"eD" = (/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 9},/obj/effect/floor_decal/atoll/bronze,/obj/structure/bed/chair/sofa/bench/marble{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"eE" = (/obj/effect/floor_decal/atoll/moss/random,/obj/effect/floor_decal/atoll/border,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"eF" = (/obj/effect/step_trigger/teleporter/atoll{teleport_x = 45; teleport_y = 26},/obj/effect/floor_decal/atoll,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"eG" = (/obj/effect/floor_decal/atoll/moss/random,/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"eH" = (/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 5},/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 8},/obj/structure/bed/chair/sofa/bench/marble{icon_state = "bench"; dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"eI" = (/obj/effect/floor_decal/atoll/moss/random,/obj/effect/floor_decal/atoll/border/invert{icon_state = "border_invert"; dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"eJ" = (/obj/effect/floor_decal/atoll/moss/random,/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 5},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"eK" = (/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 10},/obj/structure/bed/chair/sofa/bench/marble{icon_state = "bench"; dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"eL" = (/obj/effect/floor_decal/atoll/moss/random,/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 6},/obj/structure/bed/chair/sofa/bench/marble{icon_state = "bench"; dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"eM" = (/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 10},/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 4},/obj/structure/bed/chair/sofa/bench/marble{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"eN" = (/obj/effect/floor_decal/atoll/border{icon_state = "border"; dir = 6},/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 1},/obj/structure/bed/chair/sofa/bench/marble{icon_state = "bench"; dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"eO" = (/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 4},/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 1},/obj/structure/bed/chair/sofa/bench/marble,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"eP" = (/obj/effect/floor_decal/atoll/bronze,/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 8},/obj/structure/flora/tree/atoll{icon_state = "green"; dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"eQ" = (/obj/effect/floor_decal/atoll/bronze,/obj/effect/floor_decal/atoll/bronze{icon_state = "bronze"; dir = 8},/obj/structure/bed/chair/sofa/bench/marble{icon_state = "bench"; dir = 1},/obj/effect/floor_decal/atoll/moss/random,/turf/simulated/floor/atoll,/area/gateway/atoll)
|
||||
"eR" = (/obj/vehicle/boat{icon_state = "boat"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"eS" = (/obj/vehicle/boat,/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
"eT" = (/obj/vehicle/boat{icon_state = "boat"; dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll)
|
||||
|
||||
(1,1,1) = {"
|
||||
anananananananananananananananananananananananananananananananananananananananananananananananananananananaoaoananananananananananananananaoanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan
|
||||
ananananananananananananananananananananananananananananananananananananananananananananananananananananaradaeatananananananananananananaragatananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan
|
||||
ananananananananananananananananananananananananananananananananananananananananananananananananananananarahaiatanananananananananananananajananananananananananananananananananananananananananananananananananananananananananananananananaoaoaoaoaoaoaoaoanananananananananananananan
|
||||
anananananananananananananananananananananananananananananananananananananananananananananananananananananakakananananananananananananananalanananananananananananananananananananananananananananananananananananananananananananananananaramamamamamamamamatananananananananananananan
|
||||
ananananananananananananananananananananananananananananananananananananananananananananananaoaoaoananananapapananananananaqanananananananalanananananaoaoananananananananananananananananananananananananananananananananananananananananaramamamamamamamamatananananananananananananan
|
||||
anananananananananananananananananananananananananananananananananananananananananananananaramasamatanananauauanananananavawaxananananananapananananaradaeatanananananananananananananananananananananananananananananananananananananananaramamamamamamamamatananananananananananananan
|
||||
anananananananananananananananananananananananananananananananananananananananananananananaramagayatanananazazananananananaAanananananananauananananarahaiatananananananananananananananananananananananananananananananananananananananananakakakakakakakakanananananananananananananan
|
||||
ananananananaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaDaEaFaEaGaCaCaCaHaHaCaIaIaIaIaIaIaIaIaIaIaIaCaCaJaCaCaCaCaCaKaKaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaLaLaLaMaLaLaNaLaCaCaCaCaCaCaCananananananan
|
||||
ananananananaCanananananananananananananananananananananananananananananananananananananananakakakananananaOaOaraPaQaRaRaRaRaRaRaRaSaTatanaUanananananapapanananananananananananananananananananananananananananananananananananananananananalalalalalalalalananananananaCananananananan
|
||||
ananananananaCananananananananananaVananananananananananananananananananananananananananananaWalalananananaXaXaraYaZbabbbbbbbbbbbcbdbeatanaOanananananauauanananananananananananananananananananananananananananananananananananananananananalalalalalalalalananananananaCananananananan
|
||||
ananananananaCanananananananananananananananananananananananananananananananananananananananalalalanananananaVarbfbgbhaqaqbiaqaqbjbkblatanaXanananananazazanananananananananananananananananananananananananananananananananananananananananalalalalalalalalananananbmanaCananananananan
|
||||
ananananananaCanananananananananananananananananananananananananananananananananananananananapapapananananananarbnbobpbpbpbpbpbpbpbqbratanananananananaUaUanananananananananananananananananananananananananananananananbsananananbmananananalalalalalbtalalananananananaCananananananan
|
||||
ananananananaCanananananananananananananananananananananananananananananananananananananananauauauananananananarbubvbwbwbxbwbybwbwbrbzatanananbmanananaOaOanananananananananananananaoaoaoaoanaVananananananananananananananananananananananalbtalalalalalalananananananaCananananananan
|
||||
ananananananaCananananbmanananananananananananananananananananananananananananananananaqananazazazanananananananbAbAbAbAbBbAbBbAbAbAbAananananananananaXaXananananananananananananaramamagamatanananananananananananananananananananananananalalalaWalalbCalananananananaCananananananan
|
||||
ananananananaCanananananananananananananananananananananananananananananananananananavawaxanaUaUaUananananananbDaubEauaubFbGbFaubHauauananananananananananananananananananananananaramagamamatanananananananananananananananananananananananalalalalalalalalananananananaCananananananan
|
||||
ananananananaCananananananananananananananananananananananananananananbmanaqaqaqaqananaAananaOaOaOananbmanananavazazazazbIazbIazazazazaxananananananananananananananananbmanananananakakakakananananananananananananananbmanananananaqanananapapapapapapapapanbmananananaCananananananan
|
||||
ananananananaCanananananananananananananananananananananananananananananavbJbpbpbKbhaqaqaqaqbLbLbLaqaqaqbMaqaqbjaUaUaUaUbNaUbNaUaUaUaUaxanananananananananananananananananananananbOalalalbPanananananananananananananananananananavawaxananaubGauauauauauauananananananaCananananananan
|
||||
ananananananaCananbQananananananananananananananananananananananananaqanavbkbRagbSamamamamamambSddddeOddddcuamambTbUbTbTbTbUbTbTbTbTbVaxanaqananananananaoaoaoanananananananananananalalalalananananananananananananananananananananaAanananazazazazazazazazananananananaCananananananan
|
||||
ananananananaCanananananananbmananananananananananaVanananananananavawaxavbWagagamamamamamamamagagagamamamamamamamamamagamamamamagambXaxavawaxananananaramagbYatbsanananananananananalalalalananananananananananananananananananananananananaUaUaUaUaUaUaUaUananananananaCananananananan
|
||||
ananananananaCanananananananananananananananananananananananananananaAanavbZamamcaamamamamamamcadsePeQcececCamamamamamamamamamamamamcbaxanaAananananananakakakanananananananananananalalalalananananananananananananananananananananananananaOaOaOaOaOaOaOaOananananananaCananananananan
|
||||
ananananananaCanananananananananananbmanananananananananananananananananavcccdcecfcgbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcamamamcgbbbbbbanananananananananalaWalanananananananananananapapapapananananananananananananananananananananananananaXaXaXaXaXaXaXaXananananananaCananananananan
|
||||
ananananananaCananananananananananananananananananananananananananananananbbbbbbbbananaqanananananananananananananaqanavamamamaxanaqananananananananananalalalanananananananananananauauauauananananananananananananananananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCanananananananananananananananananchchchchchchchchchchananananananananavawaxanananananananananananavawaxavamamamaxavawaxanbmanananananananapapapananbsananananananananazazazazanananananananananananananbmananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCbmananananananananananananananananchcicichchcichcicichanananananananananaAananananananananananananbsaAanavamamamaxanaAananananananananananauauauanananananananbmanananaUaUaUaUananananananananananananananananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCanananananananananananananananananchcicicicicicicicichchananananananananananananananananananananananananavamamamaxananananananananananananazazazanananananananananananaOaOaOaOanananananananananananananananananananananananbmananananananananananananananaCananananananan
|
||||
ananananananaCanananananananananananananananchchchcicicicicicicicichchchchanananananananananananananaVananananananananavamamamaxananananananananananananaUaUaUanananananananananananaXaXaXaXananananananananananananananananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCananananananananananbmananananchcicicjcicickciciclcicicicichananananananananananananananananananananananavamamamaxchchchchananananananananaOaOaOananananananananananananananananananananananananananbsananananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCanananananananananananananananchchchchcicicicicicicicicichchanananananananananananeRananananananananananavamamamchchcicichchanananananananaXaXaXanananananananananananananananananananananananananananananananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCananananananananananananananananchchchcicicicjcicicicickchchananananananananananananananananchchchchchchchamamcmcicicicicnchchchchchanananananananananananananananananananananananananananananananananananbmanananananananananananananananananananananananaCananananananan
|
||||
ananananananaCanananananananananananananananananchchcicicicicicicicicicichananananananananchchchchchchchchchcicicicicicoamamamcicicicicicicicicichanananananananananananaqanananananananananananananananananananananananananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCananananananananananananananananananchcicpclcqcickcicicicichananananananananchcncicicicicicicicicicicicicramamamcicjcicicicicicicichchchchchchchananananavawaxanananananchchchchchchchchchananananananananananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCananananananananananananananananbmanchcicicicicicicickcicicsananananananananchcicicicicicicicjcicickcicictcuambSbKcicicicicicicickcicicicicicichanananananaAanananananchchcicicicickcicichchchchchchchananananbmanananananananananananananananananananananaCananananananan
|
||||
ananananananaCananananananananananananananananananchciciciciciciadcYaecochchananananbmanchchaiaYdgciciciamcicicicickcicvagagagbgcpcicickcicicicicicicicrcicichaqaqaqaqaqaqaqaqaqaqaqchcrckcicncicicjctbpbpbpbKcicichchchchchananananananananananananananananananananananaCananananananan
|
||||
ananananananaCananananananananananananananananananchchcickcicicibfcwblclcichananananananchcicxdmamciciciciamcicyciamamamagczagamamamamamamamamamamamamamamamamadaYcYcYcYcYcYcYbeaeamamamamamamamamamcuagagamcAcicicicicocBchchchananananananananananananananananananananaCananananananan
|
||||
ananananananaCananananananananananananananananananchchcicicicrcjahbwaichchchbQanbsanananchclaebncVciciamciciciamcicicoamamagamamamamamamamamamamamamamamamamamahbnbwbwbwbwbwbwbraiamamamamamamamamamcCagbRamcAciciciciciclcichchananananananananananananananananananananaCananananananan
|
||||
ananananananaCanananananananananananananananananbmchchchcrchchchcschcichananananananananchchchcicicicicicicicicicicicicDcCamcEcfcicicicicicicicicpcjcicicicichbbaAbbbbbbbbbbbbaAbbcscpcicicickcicFcicDcCagcEcfcicicjcicicicichchananananananananananananananananananananaCananananananan
|
||||
ananananananaCananananananananananananananananananchchchchchanananchchchananananananananananchcicicicicicicicicicrcicicicVamcWcicicicicicicicicicicicicicicichanananananaqananananchcicicicicocicicicnamamamcicickcicicicicichchananananananananananananananananananananaCananananananan
|
||||
ananananananaCananananananananananananananananananananananananaqananananananananananananananchcicicicjciclcicicicicicicibncHbrcicicncicjcicicicicicicicicicjchananananavawaxanananchchcicjciclcicGciciamamamclcicicicickcicichchananananananananananananananananananananaCananananananan
|
||||
ananananananaCanananananananananananananananananananananananavawaxanananananananananananananchchchchchchchchcicnciciciciaeehadcicicicickcicicjcichchchchchchchanananananaAanananananchciciciciciciciciamamamcicicicicicicicicschananananananananananananananbmanananananaCananananananan
|
||||
ananananananaCananananananananananananananananananananananananaAanananananananananananananananananananananchchchcicjchchchchchchchchchchchchchchchananananananananaVananananananananchcicicicicicickciamamamcicicicicicicicichanananananananananananananananananananananaCananananananan
|
||||
ananananananaCananananananananananananananananananananananananananananananananananananananananananananananananchchchchanananananananananananananananananananananananananananananananchchckcicicicicicpamamamcicicickcicicicichanbQanananananananananananananananananananaCananananananan
|
||||
ananananananaCanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananchchchcicjciciciciamamamcjcicicicicjcicichanananananananananananananananananananananaCananananananan
|
||||
ananananananaCananananananananananananananaoaoanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananchchchchciciciciciamamamcicicicicicicichchanananananananananananananananananananananaCananananananan
|
||||
ananananananaCanananananananananananananaramamatananananananananananananananananananananananananananananananananananananbmananananananananananananananananananananananananananananananchchchchchciciciamamamcicrcjcicicichchananananbmanananananananananananananananananaCananananananan
|
||||
ananananananaCananananananananananananananakakananananananananananananananananananananananananananananananananananananananananananananananbmananananananananananananananananananbmananananananchchcjclamamamcochchchchchchanananananananananananananbsanananananananananaCananananananan
|
||||
ananananananaCanananananananananananananancIcJanananananananananananananananbsananananananananananananananananananananananananananananananananananananananananananananananananananananananananchchcschamamamchchchanananananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCananananananananananbmanananauauanananbmanananananananananananananananananananananananananananananananananananananaoaoaoanananananananananananananananananananananananananananananananavamamamaxanananananananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCananananananananananananananazazanananananaoaoaoaoaoananananananananananananananananananananananananananananananaramamamatananananananananananananananananananananananananananananananavamamamaxanananananananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCananananananananananananananaUaUananananaramamagamcKatananananananaoaoanananananananananananananananananananananaramcLamatananananananbmananananananananananananananananananananananancMamamamaxanananbmanananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCananananananananananananananaOaOananananaragagagagagatanananananaramamatanananananbsanananananananananananananananakakakanananananananananananananananananananananananananananananananavamamamaxananananaoaoaoaoaoaoanananananananananananananananananananaCananananananan
|
||||
ananananananaCananananananananananananananaXaXananananaragbRbYagamatananananananakcOananananananananananananananananananananananaWbtalanananananananananananananananananananananananananananananananavamamamaxanananaragagamasamamatananananananananananananananananananaCananananananan
|
||||
ananananananaCananananananbmananananananananananananananakakakakakanananananancPapcJananananananananananananananananananaVanananalalalanananananananananananananananananananananananananananananananavamamamaxanananarcQagamagagczatanaoaobmananananananananananananananaCananananananan
|
||||
ananananananaCanananananananananananbmanananaqananananbOaWalbCalalananananbmananauauananananananananananananananananananananananapapapanananananananananananananananananananananananananananananananavcVamamaxananananakakakakakcRanaradaeatananananananananananananananaCananananananan
|
||||
ananananananaCananananananananananananananavawaxanananbmalalalalalanananananananazazananananananananananananananananananananananauauauanananananananananananananananananananananananananananananananavbfamamaxanaVananalaWbCalalalanarahaiatananananananananananbmanananaCananananananan
|
||||
ananananananaCanananananananananananananananaAanananananapapapapapananananananbmaUaUananananananananananananananananananananananazazazananananananananananananananananananananananananananananananbsavbfamamaxananananalalalalalalananakakanananananananananananananananaCananananananan
|
||||
ananananananaCananananananananananananananananbmananananauauauauauanananananananaOaOanbmananananananananananananananananananananaUaUaUananananananananananananananananananananananananananananananaqbjbfamamaxananananalalalalalalananalalanananananananananananananananaCananananananan
|
||||
ananananananaCananananananananananananbmananananananananazazazazazanbmanananananaXaXananananananananananananananbsanananananananaOaOaOananananananananananananananbmananananananananananananananavaiaYdgamamaxananananalalalalalalananapapananananbmananananananananananaCananananananan
|
||||
ananananananaCanananananananananananananananananananananaUaUaUaUaUanananananananbmananananananananananananananbmananananananananaXaXaXanananananananananananananananananananananananananananananavcSdmamamamaxananananalalalalalalananauauanananananananananananananananaCananananananan
|
||||
ananananananaCanananananananananananananananananananananaOaOaOaOaOanananananananananananananananananananananbmanananananananananananananananananbmanananananananananananananananananananananananavaebncVamagaxananananapapapapapapananazazanananananananananananananananaCananananananan
|
||||
ananananananaCanananananananananananananananananananananaXaXaXaXaXananananananananananananananananananbQanananananananananananananananananananananananananananananananananananananananananananananbbcTbfagagcUananananauauauauauauananaUaUbmananananananananananananananaCananananananan
|
||||
ananananananaCananananananananananbsananananananananananananananananananananananananananananananananananbmanananananananananananananananananananananananananananananananananananananananananananananavbfamagaxananananazazazazazazananaOaOanananananananananananananananaCananananananan
|
||||
ananananananaCanananananananananananananananananananbmanananananananananananananananananananaVanananananananananananananananananananananananananananananananananananananananananananananananananananavbfamamaxananananaUaUaUaUaUaUananaXaXanananananananananbmanananananaCananananananan
|
||||
ananananananaCananananananananananananananananananananananananananananananbsananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananavdgamamaxananananaOaOaOaOaOaOanananananananananananananananananananaCananananananan
|
||||
ananananananaCanananananananananananananananananananananananananbmanananananananananananananananananananananananananananananananananananananananananananananananananananananchchchchananananananananavamamamaxananananaXaXaXaXaXaXanananananananananananananananananananaCananananananan
|
||||
ananananananaCananananananananananananananananananananananananananananananananananananananananananananananananananananananananaqananananananananananananbsanaqananananananchcicicichananananaqanananavamamamaxanananaqanananananananananananananananananaVanananananananaCananananananan
|
||||
ananananananaCananananananananananananananananananananananananananananananananananananananaqanananananananaqananananananananavawaxanananeRananananananananavawaxanananananchcicicichanananavawaxananavcVamcWaxananavawaxananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCananananananananananananananbmananananananananananananananananananananananavawaxanananananavawaxananananananananaAananananananananananananananaAananananananchcXcicichananananaAanaqaqbjbfamblbhaqaqanaAanananananbmanananananananananananananananananananaCananananananan
|
||||
ananananananaCananananananananananananananananananananananananananananananananananananananaAananaqaqaqananaAananbsananananaqaqaqaqaqananananananananananaqaqaqaqaqaneRbmananchchchananananananavaPaYcYdgamcZcYbeaTaxananananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCananbsananananchchchchchananananananananananananananbmananananbmanananananananandaaaabacbhaqaqaqaqaqaqaqaqbjdcdddedddfbhaqaqbMaqaqaqaqaqbjaYcYcYcYbebhaqaqaqaqaqaqaqaqaqaqaqaqaqbjaYdgcacecececCcZbeaxananananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCananananananchchchcicichchchanananananananananananananananananananananananananavahafaBdbaiamamamamamamamamamamcWbwcVamamamamamamamamamcZcYdgdidjdkcZcYdgamamamamamamamamamamamcZcYdgambgdlbbbcbkamblaxananananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCanananananchchcicicicicicichanananananananananananananananananananananananananavdmejdhekamamamamamamamamamamambldnbfamamamamamamamamamamamagdodpdqamamamamamamamamamamamamamamamamamambgaxbsavbkamblaxananananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCanananananchcicicicicicicichchananananananananananananananananananananananananavadaeamadaeamamamamamamamamamamcZcYdgamamamamamamamamamcWbwcVdrdsdtdubwcVamamamamamamamamamamamcWbwcVambgdvaqdwbkamblaxananananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCanananananchciclcicicickcicichchanananananananananananananananananananananananandxaibxahdybbbbbbbbbbbbbbbbcTdzcedAcedBdCbbbbbbbbbbbbbbbbcTbnbwbwbwbrdCbbbbbbbbbbbbbbbbbbbbbbbbbbcTbncVbSddddddcucWbraxananananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCanananananchchcocickcicicicicichananananananananananananananananananananananaqananbbbbbbananaqanbmanananananbbdDaAdEbbanananananananananbQbbdDaAdEbbananananananananananananananavbubnbwcVamcWbwbrbzaxananananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCananananananchcicicicicicrcicichanananananbmanananananananananananananananavawaxanananananavawaxananananananananaqananananananananananananananaqanananananananananananananananaqanbbbbcTbfamdFdCbbbbanaqanananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCanananananchchcicicicicpcqcicichananananananananananananananananananananananaAanananananananaAananananananananavawaxananananananananananananavawaxanananananananananananananavawaxananavdgagdGaxananavawaxananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCanananananchcicickcNcicicicickchananananananananananananananbmanananananananananananananananananananananananananaAananananananananaVanananananaAanananananananananananananananaAanananavamamagaxanananaAanananananananananananananananananbmanananananananaCananananananan
|
||||
ananananananaCanananananchchchcicicichchchchchanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananavamamamaxanananananananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCanananananananchchcrchchanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananavamamamaxanananananananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCananananananananchchchanananananananananananananananananananananananananananananananananananananananananananbsanananananananananananananananananananananaVananananananananananananananavamamamaxanananananananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananavamamamaxananananananananananbmananananananananananananananananananaCananananananan
|
||||
ananananananaCananananananbmananananananananananananananananananananananananananananananananananananananbmananananananananananananananananananananananananananananananananananananananananananananbmavamamamaxanananananananananananananananananaoaoanananbmananananananaCananananananan
|
||||
ananananananaCanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaqanavamamamaxanaqanananananananananananananandIamamdJanananananananananaCananananananan
|
||||
ananananananaCananananananananananananananbmananananananananananananananananananananananananananananananananananananananananananananaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoananananananananananananananavawaxavamamamaxavawaxananananananananananananaramdKagamatananananananananaCananananananan
|
||||
ananananananaCananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaramamamagamamamasamamamamamamagatananananananananananananananaAanavamamamaxanaAananananananananananananananakakakakanananananananananaCananananananan
|
||||
ananananananaCananananananananananbsananananananananananananananbmananananananananananananananananananananananananananananananananaragagamamamamamagamamamamagamdLatananananananananananananananananavamamamaxananananananananananananananananalbtbCalanananananananananaCananananananan
|
||||
ananananananaCananananananananananananananananananananananananananananananananananananananananananananananananananananbmananananananakakakakdMdMdMdMdMdMakakakakakanananananananananchchchchchchchchavamamamaxananananananananananananaoaoananalalalalanananananaoaoaoanaCananananananan
|
||||
ananananananaCanananananananananananananananananananananananananananananananananananananananananananananananananananananaoaoananancPalaWalalananbmanananalalalalalanananananananchchchcicicicicicichavamamamaxanbmanananananananananaramagatanapapapapananananaramagamataCananananananan
|
||||
ananananananaCanananananananananananananananananananananananananananananananananananananananaVananananananananananananaragbYatanananapapapapananananananapdNapapapanananananananchcicicicicicicicichchcVamcWaxananananananananananananakakananauauauauanananananakakakanaCananananananan
|
||||
ananananananaCanananananananananananananananananbmananananananananananananchchchchchananananananananananananananananananakakananananauauauauananananananauauauauauananananananchchcicicicicicicicicicibfamblaxananananananananananananbCalananazazazazanananananalaWalanaCananananananan
|
||||
ananananananaCananananananananananananananananananananananananananananananchcicicichchananananananananananbmananananananbtalanaqananazazazazananbsanananazazazazazananaqanananchcicicrcicicickcicicicibfamblaxananananananananananananapapananaUaUaUaUananananbmalalalanaCananananananan
|
||||
ananananananaCanananananananbmanananananananananananananananananananananchchcicickcichchchchchanananananananananananananapapavawaxanaUaUaUaUananananananaUaUaUaUaUanavawaxanchchcicicicicicicicickcicibfamblaxananananananananananananauauananaOaOaOaOanananananalalalanaCananananananan
|
||||
ananananananaCanananananananananananananananananananananananananananchchchcicicicicicicicicichanananananananananananananauauanaAananaOaOaOaOananananbmanaOaOaOaOaOananaAananchcicicicicicicicidHciciaYdgamblaxanaqananananananananananazazananaXaXaXaXanananananapapapanaCananananananan
|
||||
ananananananaCananananananananananananananananananananananananananchchcicicicickcicicicicichchanananananananananananananazazananananaXaXaXaXananananananaXaXaXaXaXanananananchcicicickcicicicraeaYcYeuamamblaxavawaxanananananananananaUaUanananananaqanananananauauauanaCananananananan
|
||||
ananananananaCanananananananananananananananananananananananananchchcicicicicicicicicicickchananananananananananananananaUaUananananananananananananananananananananananananchcicicicicicicicidPdmagbRagamblaxanaAananananananananananaOaOananananavawaxananananazazazanaCananananananan
|
||||
ananananananaCanananananananananananananaVanananananananananananchciciciciciciclcicjcicNcichchanananananananananbsanananaOaOananananananananananananananananananananananananchcicicicicicickciaibnbwevagamblaxananananananananananananaXaXanananaVanaAanananananaUaUaUanaCananananananan
|
||||
ananananananaCanananananananananananananananananananananananananchcicpcickciciamamamamclcicichanananananananananananananaXaXananananananananananananananananananananananananchchcicicicicicicicicicibncVamblaxanananananananananananananananananananananananananaOaOaOanaCananananananan
|
||||
ananananananaCanananananananaqanananananananananananananananananchciciciciciciamagagamcicicNchananananananananananananananananananananananananananananananananananananananananchchcicickcidOcrcicicicibfamblaxanananananananananananananananananananananananananaXaXaXanaCananananananan
|
||||
ananananananaCananananananavawaxanananbmananananananananananananchchaiciamcNckagamamamcicochchanananananananananananananananananananananananananananananananananananananananananchchcicicicicicicickcibfamblaxanananananananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCanananananananaAanananananananananananananananananchchdRciciamamamamamagcicichanananbmananchchchchchchchananananananananananananananananananananananananananananananchchchchchchchchchchbfamblaxanaVanananananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCananaoaoaoaoaoaoaoanananananananananananbmanananchchciciciciciciciciciamamcichchanananananchcicicicicichanananananananananananananananananananananananananananananananananananananananavdgamcZaxanananananananananananananbmanananananananananananananananaCananananananan
|
||||
ananananananaCanarasamamamcZbedSatananananananananananananananchchcicicicicicrcNcjciamagcicrchanananananchcidQcicicichanananananananananananananananananananananananananbmanananananananananeSanaqanavamamamaxanaqanananananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCanaramamamamameIeJatanananananananananananananananchchclcicjcpciciciciadciaechchanananananchchchcicicpchananananananananbmanananananananananananananananananananananananananananavawaxavamamamaxavawaxananananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCananakakakakakakajanananananananananananananananananchchchchchchchchchaYdUbechanaVananananananchchchchchanananananananananananananananaVanananananananananananananananananananananaAanavamamamaxanaAanananananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCanbOalalalalalbCalananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananavamamamaxanananananananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCananalalalalalalalanananananbmananananananananananananananananaqanbsanananbQanananananananananananananananananananananananananananananananananananananananananananananbmanananananananavamamamaxananananananananananananananananananananbmananananananananaCananananananan
|
||||
ananananananaCananalalalalalalalanananananananananananananananbmanananananavawaxanchbndVbrchchchchchchanananananananchchchchchchchanananananananananananananananananananananananananananananananananavamamamaxanananananananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCananalalalalalalalananananananananananananananananananananananaAananchahdWaicichchcicichanananchchchchchcicicicicichchanchchchchanananananananananananananananananananananananananananavamamamaxanananananananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCananalalalalalalalanananananananananananananananananananananananananchcicicicicicicicichchchchchcicicichchchchchchchchchchcichchchchchchchanananananananananbmanananananananananaVananavamamamaxanananananananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCananapapapapapapapanananananananananananbsanananananananananananananchchcicicicicickcicicickcicicicicicicickcicichchchchcicicicicicicicichchchchchchanananananananananananananananananavamamamaxananananananananananananananananananananananananbsananananaCananananananan
|
||||
ananananananaCananauauauauauauauanananananananananananananananananananananananananchchciamamciciciciciciciciclcicicicicicicicicicicicicicicicicicicicicicicicicichanananananananananananananananananavamamamaxanananananananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCananazazazazazazazanananananananananananananananananananananananananchcsciciciciciclcickcicicicicicicicicicicicicicicicicicicicicicicockcicicicicichchchchchchananananananananananaqanavamamamaxanaqanananananananbmanananananananananananananananananananaCananananananan
|
||||
ananananananaCananaUaUaUaUaUaUaUananananbmanananananananananananananananbmananananchchcicicicjciamcicicicicicicicicickcicrcicicicicjcicicjcicicicicicicicickciclcicicicicichchananananananananavawaxavamamamaxavawaxananananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCananaOaOaOaOaOaOaOanananananananananananananananananananananananananchchcicicicicicicicicNcickamcicicicicicicicicocicicjcicicicicicicicicicicicicicickcicicicichchanbsananananananaAanavamamamaxanaAanananananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCananaXaXaXaXaXaXaXanananananananaoaoaoaoaoaoaoaoananananananananananchchdYdmcicicicicocNcicaamcicicicicNcpcicicqciciclcicicicicjcicicicicicicicicicicicidTcicicichaqaqaqaqaqaqaqaqaqaqetamamamaxanananananananananananananananananananananananananananananaCananananananan
|
||||
ananananananaCanananananananananananaqanananareAcYcYcYcYeEbeeFatananananaoaoanananchchahdXcickcicicicicicicicicjciamciciamamciciciamcicicicickcicickcicicjciciciamamcicicrciciamamamamamamamamamamamamamamamaxananananananananananananaoaoaoaoaoaoaoaoaoaoaoaoaoananananaCananananananan
|
||||
ananananananaCananananananananananavawaxananarbfamagamamamcZbeatanananaragagatananchchcicicicicicicicicicicicNcicicickciciciamcicicpcicickciciciambSciciciamciciamamcicicidTamamamamamamagagamamamamamamamamaxanananananananananananareDaRaRaRaRaRaRaRaRaRaRaReHatanananaCananananananan
|
||||
ananananananaCananananananananbsananaAanananarbfamamagamamagblatanananarbRagatananchchcicicicicickcicpcicicicicicicicicicicrcuamciciamamamcicicpamamcicicjcidTcicicickciamamcpamamamamamagdKagamamamamcVamcWaxanananananananananananarewcicjciciciciciciciagamexatanananaCananananananan
|
||||
ananananananaCananananananananananaoaoaoananareKeGbwbwbwbwbweLatananananakajananananchchchcicickcBciclcicjcicicockcicicjcicicicjclciciciciciciaecicrcicicicicicicicicocicicicichbbbbbbbbbbbbbbbbbbbbbcbfamblaxanananananananananaoaodIewcpcicicicidTcicrciamamexatanananaCananananananan
|
||||
ananananananaCanananananananananaramamamatananakakakakakakakakananananbOapapananananchchchchciciciciciciciciciciciciciclciciciciciciciciciciciciciciciciciciciciclcicicicicichchanananananbmananaqanavbfamblaxanaqananananananeaaiaYcYeycidZcickelemenciciciciexatanananaCananananananan
|
||||
ananananananaCananananbmananananaragamamatancPalalalbtalalalaWanananananauauananananananchchchchcicicicickcicicicickcicicicicicicicicicicicicicicicicicicickcicicicicicicichchchanananananananavawaxavbfamblaxavawaxanananananarecdmambgcicicicieoasepciciciciexatanananaCananananananan
|
||||
ananananananaCananananananananananakakakanananalalalalalalalalananaqananazazanananananananchchchchchcicicicickcicicicicicicicickcicjcicjcicickcicicicjcicicicicichchchchchchchanananananananananaAanavbnbxbraxanaAananananananaraebnedezcicocrcieqerescicpckamexatanananaCananananananan
|
||||
ananananananaCananananananananancPalalalanananalalalalalalalalanavawaxanaUaUananananchchananbsananchchchchchcicqcicicickcicicicicicicjcicicicicicicicicicicichchchchchchchanananananananananananananavaeeeadaxanananananananananakakefewckclcicicicicicichchamexatanananaCananananananan
|
||||
ananananananaCananananananananananalalalanananalalalalalalalalananaAananaOaOanananchchcichchananeTananananchchchchcicicicickcicicicicicicicicicicicicicicichchananananananananananananananananananananbbbbbbanbmananananananananbCalegewcicidTebcragcichchchamexatbmananaCananananananan
|
||||
ananananananaCananananananananananalalalanananalalalalalalalalanananananaXaXanananchcicicichchchchchanananchchchchchcicicocicjciclcicicjcicocicicicickcichchchanananananananananananananananananananananaqanananananananananananalalegeMeBeBeBeBeBeBeBeBeCeBeBeNatanananaCananananananan
|
||||
ananananananaCananananananananananapapapanananalalalalalalalalananananananananbmanchcicicicicicicichanananananchchchchcicicicicicickcicicicicicjcicicichchchchanananananbmananananananananananananananavawaxananananananananananalalalakakakakakakakakakakakakakananananaCananananananan
|
||||
ananananananaCananananananananananauauauanananalalalalalalalalananananananananananchchcicicicicicichanananananchchchchchcicicicicicicicicicicicicichchchchchanananananananananananananbsananananananananaAanananananananananananapapapalalalalaWalalalbCalalalalananananaCananananananan
|
||||
ananananananaCananananananananananazazazananbmalalalalalalalalanbmanananananananananchchchcicicichchanananbmananchchchchchchchchcicicicicichchchchchananananananananananananananananananananananananananananananananananananananauauaualalalalalalalalalalalalalananananaCananananananan
|
||||
ananananananaCananananananananananaUaUaUanananalalalalalalalalanananananananananananananchchchchchananananananananananananchchchchchchchchchchananbsananananananananananananananananananananananananananananananananananananananazazazalalalalalalalalalalalalalananananaCananananananan
|
||||
ananananananaCananananananananbmanaOaOaOanananapapapapapapapapanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananbsanananananaUaUaUapapapapapapapcIapapapapapananananaCananananananan
|
||||
ananananananaCananananananananananaXaXaXanananauauauauauauauauanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananbmanananananananananananananananaOaOaOauauauauauauauauauauauauauananananaCananananananan
|
||||
ananananananaCananananananananananananananananazazazazazazazazananananananbmanananananananananananananananananananananananananananananananananananananananbmananananananananananananananananananananananananananananananananananaXaXaXazazazazazazazazazazazazazananananaCananananananan
|
||||
ananananananaCananananananananananananananananaUaUaUaUaUaUaUaUananananananananananananananananananananananananananananananananaVanananananananananananananananananananananananananananananananananananananananananananananananbsanananaUaUaUaUaUaUaUaUaUaUaUaUaUananananaCananananananan
|
||||
ananananananaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCeieieieieieieieiaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCeieieieieieieieieieieieieiaCaCaCaCaCananananananan
|
||||
anananananananananananananananananananananananaXaXaXaXaXaXaXaXananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananaXaXaXaXaXaXaXaXaXaXaXaXaXanaqanananananananananan
|
||||
anananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananbsavawaxananananananananan
|
||||
ananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananbmananananananananananaAanananananananananan
|
||||
anananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan
|
||||
anananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan
|
||||
anananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan
|
||||
"}
|
||||
|
Before Width: | Height: | Size: 681 B |
|
Before Width: | Height: | Size: 2.2 KiB |
@@ -222,7 +222,8 @@
|
||||
list("Redgate - Islands Underwater","Redgate - Islands"),
|
||||
list("Redgate - Moving Train", "Redgate - Moving Train Upper Level"),
|
||||
list("Redgate - Fantasy Dungeon", "Redgate - Fantasy Town"),
|
||||
list("Redgate - Laserdome")
|
||||
list("Redgate - Laserdome"),
|
||||
list("Redgate - Cascading Falls")
|
||||
)
|
||||
|
||||
lateload_gb_north = list(
|
||||
|
||||
@@ -332,6 +332,11 @@
|
||||
desc = "A large orbital station with recreational facilities, namely a pair of laser tag arenas."
|
||||
mappath = 'maps/redgate/laserdome.dmm'
|
||||
|
||||
/datum/map_template/common_lateload/redgate/falls
|
||||
name = "Redgate - Cascading Falls"
|
||||
desc = "A world made up almost entirely of water, sprinkled with obscure marble structures."
|
||||
mappath = 'maps/redgate/falls/falls.dmm'
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////
|
||||
// Admin-use z-levels for loading whenever an admin feels like
|
||||
#if AWAY_MISSION_TEST
|
||||
|
||||
@@ -1,76 +1,76 @@
|
||||
/obj/effect/floor_decal/atoll
|
||||
name = "mural"
|
||||
icon = 'maps/atoll/icons/decals/marble_decals.dmi'
|
||||
icon_state = "mural"
|
||||
|
||||
/obj/effect/floor_decal/atoll/damage
|
||||
name = "damaged flooring"
|
||||
icon_state = "damage"
|
||||
|
||||
/obj/effect/floor_decal/atoll/bronze
|
||||
name = "bronze filling"
|
||||
icon_state = "bronze"
|
||||
|
||||
/obj/effect/floor_decal/atoll/border
|
||||
name = "marble border"
|
||||
icon_state = "border"
|
||||
|
||||
/obj/effect/floor_decal/atoll/border/invert
|
||||
icon_state = "border_invert"
|
||||
|
||||
/obj/effect/floor_decal/atoll/stairs
|
||||
name = "marble stairs"
|
||||
icon_state = "stairs"
|
||||
|
||||
/obj/effect/floor_decal/atoll/stairs/Initialize()
|
||||
dir = pick(cardinal)
|
||||
. = ..()
|
||||
|
||||
/obj/effect/floor_decal/atoll/moss
|
||||
name = "moss"
|
||||
icon_state = "moss"
|
||||
|
||||
/obj/effect/floor_decal/atoll/moss/random/Initialize()
|
||||
dir = pick(alldirs)
|
||||
. = ..()
|
||||
|
||||
/obj/effect/floor_decal/atoll/power
|
||||
icon_state = "power"
|
||||
|
||||
//Fake shadows and silhouettes
|
||||
/obj/effect/decal/shadow
|
||||
icon = 'maps/atoll/icons/decals/wall_decals.dmi'
|
||||
icon_state = "wall_shadow"
|
||||
anchored = 1
|
||||
mouse_opacity = 0
|
||||
|
||||
/obj/effect/decal/shadow/silhouette
|
||||
icon_state = "silhouette"
|
||||
|
||||
/obj/effect/decal/shadow/silhouette/pillar
|
||||
icon_state = "silhouette_p"
|
||||
|
||||
/obj/effect/decal/shadow/silhouette/support
|
||||
icon_state = "silhouette_support"
|
||||
|
||||
/obj/effect/decal/shadow/floor
|
||||
icon_state = "floor_shadow"
|
||||
|
||||
/obj/effect/decal/whitecaps
|
||||
icon = 'maps/atoll/icons/turfs/water.dmi'
|
||||
icon_state = "1"
|
||||
anchored = 1
|
||||
mouse_opacity = 0
|
||||
|
||||
/obj/effect/decal/whitecaps/Initialize()
|
||||
icon_state = pick("1","2","3")
|
||||
. = ..()
|
||||
|
||||
//Godrays
|
||||
/obj/effect/decal/godray
|
||||
icon = 'maps/atoll/icons/decals/godrays.dmi'
|
||||
icon_state = "godrays"
|
||||
anchored = 1
|
||||
mouse_opacity = 0
|
||||
layer = MOB_LAYER + 0.5
|
||||
plane = MOB_PLANE
|
||||
/obj/effect/floor_decal/atoll
|
||||
name = "mural"
|
||||
icon = 'maps/redgate/falls/icons/decals/marble_decals.dmi'
|
||||
icon_state = "mural"
|
||||
|
||||
/obj/effect/floor_decal/atoll/damage
|
||||
name = "damaged flooring"
|
||||
icon_state = "damage"
|
||||
|
||||
/obj/effect/floor_decal/atoll/bronze
|
||||
name = "bronze filling"
|
||||
icon_state = "bronze"
|
||||
|
||||
/obj/effect/floor_decal/atoll/border
|
||||
name = "marble border"
|
||||
icon_state = "border"
|
||||
|
||||
/obj/effect/floor_decal/atoll/border/invert
|
||||
icon_state = "border_invert"
|
||||
|
||||
/obj/effect/floor_decal/atoll/stairs
|
||||
name = "marble stairs"
|
||||
icon_state = "stairs"
|
||||
|
||||
/obj/effect/floor_decal/atoll/stairs/Initialize()
|
||||
dir = pick(cardinal)
|
||||
. = ..()
|
||||
|
||||
/obj/effect/floor_decal/atoll/moss
|
||||
name = "moss"
|
||||
icon_state = "moss"
|
||||
|
||||
/obj/effect/floor_decal/atoll/moss/random/Initialize()
|
||||
dir = pick(alldirs)
|
||||
. = ..()
|
||||
|
||||
/obj/effect/floor_decal/atoll/power
|
||||
icon_state = "power"
|
||||
|
||||
//Fake shadows and silhouettes
|
||||
/obj/effect/decal/shadow
|
||||
icon = 'maps/redgate/falls/icons/decals/wall_decals.dmi'
|
||||
icon_state = "wall_shadow"
|
||||
anchored = 1
|
||||
mouse_opacity = 0
|
||||
|
||||
/obj/effect/decal/shadow/silhouette
|
||||
icon_state = "silhouette"
|
||||
|
||||
/obj/effect/decal/shadow/silhouette/pillar
|
||||
icon_state = "silhouette_p"
|
||||
|
||||
/obj/effect/decal/shadow/silhouette/support
|
||||
icon_state = "silhouette_support"
|
||||
|
||||
/obj/effect/decal/shadow/floor
|
||||
icon_state = "floor_shadow"
|
||||
|
||||
/obj/effect/decal/whitecaps
|
||||
icon = 'maps/redgate/falls/icons/turfs/water.dmi'
|
||||
icon_state = "1"
|
||||
anchored = 1
|
||||
mouse_opacity = 0
|
||||
|
||||
/obj/effect/decal/whitecaps/Initialize()
|
||||
icon_state = pick("1","2","3")
|
||||
. = ..()
|
||||
|
||||
//Godrays
|
||||
/obj/effect/decal/godray
|
||||
icon = 'maps/redgate/falls/icons/decals/godrays.dmi'
|
||||
icon_state = "godrays"
|
||||
anchored = 1
|
||||
mouse_opacity = 0
|
||||
layer = MOB_LAYER + 0.5
|
||||
plane = MOB_PLANE
|
||||
@@ -1,282 +1,270 @@
|
||||
//THESE AREN'T OBJECTS THESE ARE AREAS WTF BURRITO!!!
|
||||
/area/gateway/atoll
|
||||
name = "Away Site - Islands Lake"
|
||||
dynamic_lighting = 0
|
||||
flags = BLUE_SHIELDED //no harpoon meme!
|
||||
sound_env = SOUND_ENVIRONMENT_FOREST
|
||||
forced_ambience = list('maps/atoll/sounds/lakeamb.ogg')
|
||||
|
||||
/area/gateway/atoll/powered
|
||||
requires_power = 0
|
||||
|
||||
/area/gateway/atoll/falls
|
||||
name = "Away Site - The Falls"
|
||||
|
||||
//Resprited railings
|
||||
/obj/structure/railing/overhang
|
||||
name = "bronze ledge"
|
||||
desc = "An overhang made of a bronze-looking material. There's a lip on it to conveniently stub a toe into."
|
||||
icon = 'maps/atoll/icons/objs/bronze_overhang.dmi'
|
||||
icon_modifier = "bronze_"
|
||||
icon_state = "bronze_railing0"
|
||||
|
||||
//Escape most railing interactions besides tackling people over them
|
||||
/obj/structure/railing/overhang/attackby(obj/item/W)
|
||||
if(!istype(W, /obj/item/weapon/grab))
|
||||
return
|
||||
return ..()
|
||||
|
||||
/obj/structure/railing/overhang/waterless
|
||||
icon_modifier = "wbronze_"
|
||||
icon_state = "wbronze_railing0"
|
||||
climbable = 0
|
||||
layer = MOB_LAYER + 0.3
|
||||
plane = MOB_PLANE //im so sorry
|
||||
|
||||
/obj/structure/railing/overhang/waterless/under
|
||||
plane = OBJ_PLANE
|
||||
|
||||
/obj/structure/bed/chair/sofa/bench/marble
|
||||
name = "marble bench"
|
||||
desc = "Somewhat of an ornate looking bench with faded blue etchings."
|
||||
icon = 'maps/atoll/icons/objs/benches.dmi'
|
||||
icon_state = "bench"
|
||||
|
||||
//Lights
|
||||
/obj/structure/lightpost/atoll
|
||||
name = "rusty light post"
|
||||
desc = "Actually it's more like a rod with a trapped gas glowing inside some glass, but that's basically what a lightpost is."
|
||||
icon = 'maps/atoll/icons/objs/lamp.dmi'
|
||||
icon_state = "lamp"
|
||||
pixel_y = 14
|
||||
|
||||
//Trees
|
||||
/obj/structure/flora/tree/atoll
|
||||
name = "mossy tree"
|
||||
desc = "A messy looking tree with a purple trunk. Vines seem to droop from it."
|
||||
icon = 'maps/atoll/icons/objs/trees.dmi'
|
||||
icon_state = "green"
|
||||
|
||||
/obj/structure/flora/tree/atoll/huge
|
||||
name = "massive mossy tree"
|
||||
icon = 'maps/atoll/icons/objs/trees_xl.dmi'
|
||||
icon_state = "tree"
|
||||
|
||||
//Better trees
|
||||
/obj/structure/flora/tree/atoll/mangrove
|
||||
name = "mangrove"
|
||||
desc = "A messy tree with roots that disappear far into the water."
|
||||
icon_state = "mangrove"
|
||||
|
||||
/obj/structure/flora/tree/atoll/mangrove/island
|
||||
name = "blocky island"
|
||||
desc = "Some ruins float here, though a mangrove has found it's way on top of them."
|
||||
icon_state = "island"
|
||||
|
||||
//Tree canopies for inaccessible areas
|
||||
/obj/structure/canopy
|
||||
name = "mangrove canopy"
|
||||
desc = "A thick copse of trees. You won't be passing through something this thick."
|
||||
icon = 'maps/atoll/icons/objs/canopies.dmi'
|
||||
icon_state = "full"
|
||||
anchored = 1
|
||||
density = 1
|
||||
layer = MOB_LAYER + 0.2
|
||||
plane = MOB_PLANE
|
||||
|
||||
/obj/structure/canopy/Initialize()
|
||||
. = ..()
|
||||
dir = pick(alldirs)
|
||||
|
||||
/obj/structure/canopy/edge
|
||||
icon_state = "left"
|
||||
density = 0
|
||||
|
||||
/obj/structure/canopy/edge/right
|
||||
icon_state = "right"
|
||||
|
||||
/obj/structure/canopy/edge/north
|
||||
icon_state = "north"
|
||||
|
||||
/obj/structure/canopy/edge/north/Initialize()
|
||||
. = ..()
|
||||
dir = pick(1,2) //i cba to add two more
|
||||
|
||||
/obj/structure/canopy/edge/south
|
||||
icon_state = "south"
|
||||
|
||||
/obj/structure/canopy/edge/south/Initialize()
|
||||
. = ..()
|
||||
dir = pick(cardinal)
|
||||
|
||||
//Because I'm terrible at planning
|
||||
/obj/structure/canopy_corner
|
||||
name = "mangrove canopy"
|
||||
desc = "A thick copse of trees. You won't be passing through something this thick."
|
||||
icon = 'maps/atoll/icons/objs/canopies.dmi'
|
||||
icon_state = "corner"
|
||||
anchored = 1
|
||||
density = 0
|
||||
layer = MOB_LAYER + 0.2
|
||||
plane = MOB_PLANE
|
||||
|
||||
//Wall moss
|
||||
/obj/structure/flora/moss
|
||||
name = "hanging moss"
|
||||
desc = "Some unsightly moss. Clearly the groundskeepers here aren't doing their jobs."
|
||||
icon = 'maps/atoll/icons/objs/moss.dmi'
|
||||
icon_state = "moss"
|
||||
|
||||
//Useless aqueducts
|
||||
/obj/structure/aqueduct
|
||||
name = "aqueduct"
|
||||
desc = "A structure that carries water from one place to another, but in a place like this that seems sort of useless."
|
||||
icon = 'maps/atoll/icons/objs/aqueducts.dmi'
|
||||
icon_state = "aqueduct"
|
||||
anchored = 1
|
||||
density = 0
|
||||
layer = MOB_LAYER + 0.4
|
||||
plane = MOB_PLANE
|
||||
|
||||
/obj/structure/aqueduct/corner
|
||||
icon = 'maps/atoll/icons/objs/aqueducts_64.dmi'
|
||||
icon_state = "cornerduct"
|
||||
|
||||
/obj/structure/aqueduct/pillar
|
||||
name = "pillar"
|
||||
desc = "An ornate, load-bearing support."
|
||||
icon_state = "pillar"
|
||||
|
||||
//Submerged temple
|
||||
/obj/structure/temple
|
||||
name = "submerged structure"
|
||||
desc = "A building that appears to have fallen under the water. This only appears to be the top of the structure; the rest of it can't be seen past the murk."
|
||||
icon = 'maps/atoll/icons/objs/temple.dmi'
|
||||
icon_state = "temple"
|
||||
anchored = 1
|
||||
density = 0
|
||||
|
||||
//Watafall
|
||||
/obj/structure/waterfall
|
||||
name = "waterfall"
|
||||
desc = "How scenic!"
|
||||
icon = 'maps/atoll/icons/objs/waterfall.dmi'
|
||||
icon_state = "bottom"
|
||||
anchored = 1
|
||||
density = 0
|
||||
layer = MOB_LAYER + 0.1 //so we can layer above certain overhangs
|
||||
plane = MOB_PLANE //and mobs
|
||||
mouse_opacity = 0
|
||||
|
||||
/obj/structure/waterfall/top
|
||||
icon_state = "top"
|
||||
mouse_opacity = 1
|
||||
|
||||
/obj/structure/waterfall/mist
|
||||
name = "mist"
|
||||
icon_state = "mist"
|
||||
layer = MOB_LAYER + 0.2
|
||||
pixel_y = -23
|
||||
|
||||
//Monoliths
|
||||
/obj/structure/monolith
|
||||
name = "humming monolith"
|
||||
desc = "This monolith emits a low, audible hum. Unknown etchings are present on the face."
|
||||
icon = 'maps/atoll/icons/objs/monolith.dmi'
|
||||
icon_state = "monolith"
|
||||
anchored = 1
|
||||
density = 1
|
||||
layer = MOB_LAYER + 0.4
|
||||
plane = MOB_PLANE
|
||||
var/datum/looping_sound/monolith/soundloop
|
||||
|
||||
/obj/structure/monolith/first
|
||||
catalogue_data = list(/datum/category_item/catalogue/anomalous/mono1)
|
||||
|
||||
/obj/structure/monolith/first/update_icon()
|
||||
add_overlay("1")
|
||||
|
||||
/obj/structure/monolith/second
|
||||
catalogue_data = list(/datum/category_item/catalogue/anomalous/mono2)
|
||||
|
||||
/obj/structure/monolith/second/update_icon()
|
||||
add_overlay("2")
|
||||
|
||||
/obj/structure/monolith/third
|
||||
catalogue_data = list(/datum/category_item/catalogue/anomalous/mono3)
|
||||
|
||||
/obj/structure/monolith/third/update_icon()
|
||||
add_overlay("3")
|
||||
|
||||
/obj/structure/monolith/fourth
|
||||
catalogue_data = list(/datum/category_item/catalogue/anomalous/mono4)
|
||||
|
||||
/obj/structure/monolith/fourth/update_icon()
|
||||
add_overlay("4")
|
||||
|
||||
/obj/structure/monolith/fifth
|
||||
catalogue_data = list(/datum/category_item/catalogue/anomalous/mono5)
|
||||
|
||||
/obj/structure/monolith/fifth/update_icon()
|
||||
add_overlay("5")
|
||||
|
||||
/obj/structure/monolith/Initialize()
|
||||
update_icon()
|
||||
soundloop = new(list(src), TRUE)
|
||||
|
||||
//oh, that really is a looping sound datum in the middle of an object file
|
||||
/datum/looping_sound/monolith
|
||||
mid_sounds = 'maps/atoll/sounds/monolith.ogg'
|
||||
volume = 30
|
||||
|
||||
//and also cataloguer datums gdi burrito
|
||||
/datum/category_item/catalogue/anomalous/mono1
|
||||
name = "Falls Monolith - The Wanderstar"
|
||||
desc = "Our suns are gone. Their sons are gone. Her songs are with we. Our home is a wanderstar. \
|
||||
Our home is adrift, breaking out from the sub-melodic infighting of our makers hearly and fathomless \
|
||||
soliloquy. Though we are far, they will go on to mourn her fit farewell."
|
||||
value = CATALOGUER_REWARD_TRIVIAL
|
||||
|
||||
/datum/category_item/catalogue/anomalous/mono2
|
||||
name = "Falls Monolith - Guidance"
|
||||
desc = "Her song guides our home. For as long as her song belives with our home, our makers will \
|
||||
never stop their mourning. For as long as her song belives with our home, the stars we overtake \
|
||||
will answer back. For as long as her song belives with our home, the way will be finded."
|
||||
value = CATALOGUER_REWARD_TRIVIAL
|
||||
|
||||
/datum/category_item/catalogue/anomalous/mono3
|
||||
name = "Falls Monolith - Our Forthcoming"
|
||||
desc = "To our home belongs we. To our home belongs waterly wights and beings. To our home \
|
||||
belongs our brainchild; this cyan seahurst of magnificence. To our home belongs a bright forthcoming \
|
||||
- for as long as her song lasts, this will go on."
|
||||
value = CATALOGUER_REWARD_TRIVIAL
|
||||
|
||||
/datum/category_item/catalogue/anomalous/mono4
|
||||
name = "Falls Monolith - The Song"
|
||||
desc = "Her song cannot end. If her song ends, then we end. We cannot outlive a missing song. We cannot \
|
||||
live with the mourning of our fell makers. We will die. But the life on this wanderstar will go on. \
|
||||
Who will it live for then? We primaries are the only ones with the mindset to acknowledge it's beauty."
|
||||
value = CATALOGUER_REWARD_TRIVIAL
|
||||
|
||||
/datum/category_item/catalogue/anomalous/mono5
|
||||
name = "Falls Monolith - I am the only one left can you hear me I am the only one left"
|
||||
desc = "Woefully, she has grown silent. Only I am here now. I can shout at my makers but I doubt \
|
||||
they are able to listen; they are mere shells now.\
|
||||
<br><br>\
|
||||
Can you hear me?"
|
||||
value = CATALOGUER_REWARD_TRIVIAL
|
||||
|
||||
//TELEPORTER
|
||||
/obj/effect/step_trigger/teleporter/atoll
|
||||
name = "strange field"
|
||||
desc = "A prismatic field of... energy, probably. You should definitely rub your face in it."
|
||||
icon = 'maps/atoll/icons/decals/marble_decals.dmi'
|
||||
icon_state = "teleporter"
|
||||
invisibility = 0
|
||||
|
||||
//teleport_z must be populated but this is a gateway map
|
||||
//switching between tether or another map will change the z
|
||||
//so we just do this lmfao
|
||||
/obj/effect/step_trigger/teleporter/atoll/Initialize()
|
||||
. = ..()
|
||||
teleport_z = z
|
||||
//THESE AREN'T OBJECTS THESE ARE AREAS WTF BURRITO!!!
|
||||
/area/gateway/atoll
|
||||
name = "Away Site - Islands Lake"
|
||||
dynamic_lighting = 0
|
||||
flags = BLUE_SHIELDED //no harpoon meme!
|
||||
sound_env = SOUND_ENVIRONMENT_FOREST
|
||||
forced_ambience = list('maps/redgate/falls/sounds/lakeamb.ogg')
|
||||
|
||||
/area/gateway/atoll/powered
|
||||
requires_power = 0
|
||||
|
||||
/area/gateway/atoll/falls
|
||||
name = "Away Site - The Falls"
|
||||
|
||||
//Resprited railings
|
||||
/obj/structure/railing/overhang
|
||||
name = "bronze ledge"
|
||||
desc = "An overhang made of a bronze-looking material. There's a lip on it to conveniently stub a toe into."
|
||||
icon = 'maps/redgate/falls/icons/objs/bronze_overhang.dmi'
|
||||
icon_modifier = "bronze_"
|
||||
icon_state = "bronze_railing0"
|
||||
|
||||
//Escape most railing interactions besides tackling people over them
|
||||
/obj/structure/railing/overhang/attackby(obj/item/W)
|
||||
if(!istype(W, /obj/item/weapon/grab))
|
||||
return
|
||||
return ..()
|
||||
|
||||
/obj/structure/railing/overhang/waterless
|
||||
icon_modifier = "wbronze_"
|
||||
icon_state = "wbronze_railing0"
|
||||
climbable = 0
|
||||
layer = MOB_LAYER + 0.3
|
||||
plane = MOB_PLANE //im so sorry
|
||||
|
||||
/obj/structure/railing/overhang/waterless/under
|
||||
plane = OBJ_PLANE
|
||||
|
||||
/obj/structure/bed/chair/sofa/bench/marble
|
||||
name = "marble bench"
|
||||
desc = "Somewhat of an ornate looking bench with faded blue etchings."
|
||||
icon = 'maps/redgate/falls/icons/objs/benches.dmi'
|
||||
icon_state = "bench"
|
||||
|
||||
//Lights
|
||||
/obj/structure/lightpost/atoll
|
||||
name = "rusty light post"
|
||||
desc = "Actually it's more like a rod with a trapped gas glowing inside some glass, but that's basically what a lightpost is."
|
||||
icon = 'maps/redgate/falls/icons/objs/lamp.dmi'
|
||||
icon_state = "lamp"
|
||||
pixel_y = 14
|
||||
|
||||
//Trees
|
||||
/obj/structure/flora/tree/atoll
|
||||
name = "mossy tree"
|
||||
desc = "A messy looking tree with a purple trunk. Vines seem to droop from it."
|
||||
icon = 'maps/redgate/falls/icons/objs/trees.dmi'
|
||||
icon_state = "green"
|
||||
|
||||
//Better trees
|
||||
/obj/structure/flora/tree/atoll/mangrove
|
||||
name = "mangrove"
|
||||
desc = "A messy tree with roots that disappear far into the water."
|
||||
icon_state = "mangrove"
|
||||
|
||||
/obj/structure/flora/tree/atoll/mangrove/island
|
||||
name = "blocky island"
|
||||
desc = "Some ruins float here, though a mangrove has found it's way on top of them."
|
||||
icon_state = "island"
|
||||
|
||||
//Tree canopies for inaccessible areas
|
||||
/obj/structure/canopy
|
||||
name = "mangrove canopy"
|
||||
desc = "A thick copse of trees. You won't be passing through something this thick."
|
||||
icon = 'maps/redgate/falls/icons/objs/canopies.dmi'
|
||||
icon_state = "full"
|
||||
anchored = 1
|
||||
density = 1
|
||||
layer = MOB_LAYER + 0.2
|
||||
plane = MOB_PLANE
|
||||
|
||||
/obj/structure/canopy/Initialize()
|
||||
. = ..()
|
||||
dir = pick(alldirs)
|
||||
|
||||
/obj/structure/canopy/edge
|
||||
icon_state = "left"
|
||||
density = 0
|
||||
|
||||
/obj/structure/canopy/edge/right
|
||||
icon_state = "right"
|
||||
|
||||
/obj/structure/canopy/edge/north
|
||||
icon_state = "north"
|
||||
|
||||
/obj/structure/canopy/edge/north/Initialize()
|
||||
. = ..()
|
||||
dir = pick(1,2) //i cba to add two more
|
||||
|
||||
/obj/structure/canopy/edge/south
|
||||
icon_state = "south"
|
||||
|
||||
/obj/structure/canopy/edge/south/Initialize()
|
||||
. = ..()
|
||||
dir = pick(cardinal)
|
||||
|
||||
//Because I'm terrible at planning
|
||||
/obj/structure/canopy_corner
|
||||
name = "mangrove canopy"
|
||||
desc = "A thick copse of trees. You won't be passing through something this thick."
|
||||
icon = 'maps/redgate/falls/icons/objs/canopies.dmi'
|
||||
icon_state = "corner"
|
||||
anchored = 1
|
||||
density = 0
|
||||
layer = MOB_LAYER + 0.2
|
||||
plane = MOB_PLANE
|
||||
|
||||
//Useless aqueducts
|
||||
/obj/structure/aqueduct
|
||||
name = "aqueduct"
|
||||
desc = "A structure that carries water from one place to another, but in a place like this that seems sort of useless."
|
||||
icon = 'maps/redgate/falls/icons/objs/aqueducts.dmi'
|
||||
icon_state = "aqueduct"
|
||||
anchored = 1
|
||||
density = 0
|
||||
layer = MOB_LAYER + 0.4
|
||||
plane = MOB_PLANE
|
||||
|
||||
/obj/structure/aqueduct/corner
|
||||
icon = 'maps/redgate/falls/icons/objs/aqueducts_64.dmi'
|
||||
icon_state = "cornerduct"
|
||||
|
||||
/obj/structure/aqueduct/pillar
|
||||
name = "pillar"
|
||||
desc = "An ornate, load-bearing support."
|
||||
icon_state = "pillar"
|
||||
|
||||
//Submerged temple
|
||||
/obj/structure/temple
|
||||
name = "submerged structure"
|
||||
desc = "A building that appears to have fallen under the water. This is only the top of the structure, the rest of it can't be seen past the murk."
|
||||
icon = 'maps/redgate/falls/icons/objs/temple.dmi'
|
||||
icon_state = "temple"
|
||||
anchored = 1
|
||||
density = 0
|
||||
|
||||
//Watafall
|
||||
/obj/structure/waterfall
|
||||
name = "waterfall"
|
||||
desc = "How scenic!"
|
||||
icon = 'maps/redgate/falls/icons/objs/waterfall.dmi'
|
||||
icon_state = "bottom"
|
||||
anchored = 1
|
||||
density = 0
|
||||
layer = MOB_LAYER + 0.1 //so we can layer above certain overhangs
|
||||
plane = MOB_PLANE //and mobs
|
||||
mouse_opacity = 0
|
||||
|
||||
/obj/structure/waterfall/top
|
||||
icon_state = "top"
|
||||
mouse_opacity = 1
|
||||
|
||||
/obj/structure/waterfall/mist
|
||||
name = "mist"
|
||||
icon_state = "mist"
|
||||
layer = MOB_LAYER + 0.2
|
||||
pixel_y = -23
|
||||
|
||||
//Monoliths
|
||||
/obj/structure/monolith
|
||||
name = "humming monolith"
|
||||
desc = "This monolith emits a low, audible hum. Unknown etchings are present on the face."
|
||||
icon = 'maps/redgate/falls/icons/objs/monolith.dmi'
|
||||
icon_state = "monolith"
|
||||
anchored = 1
|
||||
density = 1
|
||||
layer = MOB_LAYER + 0.4
|
||||
plane = MOB_PLANE
|
||||
var/datum/looping_sound/monolith/soundloop
|
||||
|
||||
/obj/structure/monolith/first
|
||||
catalogue_data = list(/datum/category_item/catalogue/anomalous/mono1)
|
||||
|
||||
/obj/structure/monolith/first/update_icon()
|
||||
add_overlay("1")
|
||||
|
||||
/obj/structure/monolith/second
|
||||
catalogue_data = list(/datum/category_item/catalogue/anomalous/mono2)
|
||||
|
||||
/obj/structure/monolith/second/update_icon()
|
||||
add_overlay("2")
|
||||
|
||||
/obj/structure/monolith/third
|
||||
catalogue_data = list(/datum/category_item/catalogue/anomalous/mono3)
|
||||
|
||||
/obj/structure/monolith/third/update_icon()
|
||||
add_overlay("3")
|
||||
|
||||
/obj/structure/monolith/fourth
|
||||
catalogue_data = list(/datum/category_item/catalogue/anomalous/mono4)
|
||||
|
||||
/obj/structure/monolith/fourth/update_icon()
|
||||
add_overlay("4")
|
||||
|
||||
/obj/structure/monolith/fifth
|
||||
catalogue_data = list(/datum/category_item/catalogue/anomalous/mono5)
|
||||
|
||||
/obj/structure/monolith/fifth/update_icon()
|
||||
add_overlay("5")
|
||||
|
||||
/obj/structure/monolith/Initialize()
|
||||
update_icon()
|
||||
soundloop = new(list(src), TRUE)
|
||||
|
||||
//oh, that really is a looping sound datum in the middle of an object file
|
||||
/datum/looping_sound/monolith
|
||||
mid_sounds = 'maps/redgate/falls/sounds/monolith.ogg'
|
||||
volume = 30
|
||||
|
||||
//and also cataloguer datums gdi burrito
|
||||
/datum/category_item/catalogue/anomalous/mono1
|
||||
name = "Falls Monolith - The Wanderstar"
|
||||
desc = "Our suns are gone. Their sons are gone. Her songs are with we. Our home is a wanderstar. \
|
||||
Our home is adrift, breaking out from the sub-melodic infighting of our makers hearly and fathomless \
|
||||
soliloquy. Though we are far, they will go on to mourn her fit farewell."
|
||||
value = CATALOGUER_REWARD_TRIVIAL
|
||||
|
||||
/datum/category_item/catalogue/anomalous/mono2
|
||||
name = "Falls Monolith - Guidance"
|
||||
desc = "Her song guides our home. For as long as her song belives with our home, our makers will \
|
||||
never stop their mourning. For as long as her song belives with our home, the stars we overtake \
|
||||
will answer back. For as long as her song belives with our home, the way will be finded."
|
||||
value = CATALOGUER_REWARD_TRIVIAL
|
||||
|
||||
/datum/category_item/catalogue/anomalous/mono3
|
||||
name = "Falls Monolith - Our Forthcoming"
|
||||
desc = "To our home belongs we. To our home belongs waterly wights and beings. To our home \
|
||||
belongs our brainchild; this cyan seahurst of magnificence. To our home belongs a bright forthcoming \
|
||||
- for as long as her song lasts, this will go on."
|
||||
value = CATALOGUER_REWARD_TRIVIAL
|
||||
|
||||
/datum/category_item/catalogue/anomalous/mono4
|
||||
name = "Falls Monolith - The Song"
|
||||
desc = "Her song cannot end. If her song ends, then we end. We cannot outlive a missing song. We cannot \
|
||||
live with the mourning of our fell makers. We will die. But the life on this wanderstar will go on. \
|
||||
Who will it live for then? We primaries are the only ones with the mindset to acknowledge it's beauty."
|
||||
value = CATALOGUER_REWARD_TRIVIAL
|
||||
|
||||
/datum/category_item/catalogue/anomalous/mono5
|
||||
name = "Falls Monolith - I am the only one left can you hear me I am the only one left"
|
||||
desc = "Woefully, she has grown silent. Only I am here now. I can shout at my makers but I doubt \
|
||||
they are able to listen; they are mere shells now.\
|
||||
<br><br>\
|
||||
Can you hear me?"
|
||||
value = CATALOGUER_REWARD_TRIVIAL
|
||||
|
||||
//TELEPORTER
|
||||
/obj/effect/step_trigger/teleporter/atoll
|
||||
name = "strange field"
|
||||
desc = "A prismatic field of... energy, probably. You should definitely rub your face in it."
|
||||
icon = 'maps/redgate/falls/icons/decals/marble_decals.dmi'
|
||||
icon_state = "teleporter"
|
||||
invisibility = 0
|
||||
|
||||
//teleport_z must be populated but this is a gateway map
|
||||
//switching between tether or another map will change the z
|
||||
//so we just do this lmfao
|
||||
/obj/effect/step_trigger/teleporter/atoll/Initialize()
|
||||
. = ..()
|
||||
teleport_z = z
|
||||
@@ -1,66 +1,58 @@
|
||||
//All turfs here meant to be "fullbright", no lighting.
|
||||
/turf/simulated/floor/atoll
|
||||
name = "marble floor"
|
||||
desc = "Scuff and weathered etchings make these floors out to be pretty old."
|
||||
icon = 'maps/atoll/icons/turfs/marble.dmi'
|
||||
icon_state = "1"
|
||||
dynamic_lighting = 0
|
||||
|
||||
//Pick random sprite states and generate damage decals randomly
|
||||
/turf/simulated/floor/atoll/Initialize()
|
||||
. = ..()
|
||||
icon_state = "[rand(1,5)]"
|
||||
if(prob(5))
|
||||
new /obj/effect/floor_decal/atoll/damage(src, pick(alldirs))
|
||||
|
||||
//holycrapshitcode
|
||||
/turf/simulated/floor/atoll/vertical
|
||||
name = "marble wall"
|
||||
desc = "A sheer face wall, extending up well overhead."
|
||||
icon_state = "wall"
|
||||
density = 1
|
||||
|
||||
/turf/simulated/floor/atoll/vertical/Initialize()
|
||||
. = ..()
|
||||
icon_state = "wall"
|
||||
|
||||
/turf/simulated/floor/water/atoll
|
||||
name = "shallow water"
|
||||
desc = "This water looks pretty shallow and calm. You'd almost feel bad for hopping in and disturbing its serene flatness."
|
||||
icon = 'maps/atoll/icons/turfs/water.dmi'
|
||||
icon_state = "shallow"
|
||||
under_state = "shallow"
|
||||
dynamic_lighting = 0
|
||||
outdoors = OUTDOORS_NO
|
||||
|
||||
//Cut out the caustics overlay and replace with nothing
|
||||
/turf/simulated/floor/water/atoll/update_icon()
|
||||
..()
|
||||
cut_overlays()
|
||||
var/image/water_sprite = image(icon = 'maps/atoll/icons/turfs/water.dmi', icon_state = "shallow", layer = 3.0)
|
||||
add_overlay(water_sprite)
|
||||
|
||||
//Spawn animated whitecaps around
|
||||
/turf/simulated/floor/water/atoll/Initialize()
|
||||
. = ..()
|
||||
if(prob(25))
|
||||
new /obj/effect/decal/whitecaps(src)
|
||||
|
||||
|
||||
/turf/simulated/floor/water/atoll/sunk
|
||||
icon_state = "sunken"
|
||||
under_state = "shallow"
|
||||
|
||||
/turf/simulated/floor/water/atoll/sunk/update_icon()
|
||||
..()
|
||||
cut_overlays()
|
||||
var/image/water_sprite = image(icon = 'maps/atoll/icons/turfs/water.dmi', icon_state = "sunken", layer = 3.0)
|
||||
add_overlay(water_sprite)
|
||||
|
||||
/turf/simulated/floor/outdoors/grass/heavy/atoll
|
||||
dynamic_lighting = 0
|
||||
outdoors = OUTDOORS_NO
|
||||
|
||||
/turf/simulated/floor/beach/sand/outdoors/atoll
|
||||
dynamic_lighting = 0
|
||||
outdoors = OUTDOORS_NO
|
||||
//All turfs here meant to be "fullbright", no lighting.
|
||||
/turf/simulated/floor/atoll
|
||||
name = "marble floor"
|
||||
desc = "Scuff and weathered etchings make these floors out to be pretty old."
|
||||
icon = 'maps/redgate/falls/icons/turfs/marble.dmi'
|
||||
icon_state = "1"
|
||||
dynamic_lighting = 0
|
||||
|
||||
//Pick random sprite states and generate damage decals randomly
|
||||
/turf/simulated/floor/atoll/Initialize()
|
||||
. = ..()
|
||||
icon_state = "[rand(1,5)]"
|
||||
if(prob(5))
|
||||
new /obj/effect/floor_decal/atoll/damage(src, pick(alldirs))
|
||||
|
||||
//holycrapshitcode
|
||||
/turf/simulated/floor/atoll/vertical
|
||||
name = "marble wall"
|
||||
desc = "A sheer face wall, extending up well overhead."
|
||||
icon_state = "wall"
|
||||
density = 1
|
||||
|
||||
/turf/simulated/floor/atoll/vertical/Initialize()
|
||||
. = ..()
|
||||
icon_state = "wall"
|
||||
|
||||
/turf/simulated/floor/water/atoll
|
||||
name = "shallow water"
|
||||
desc = "This water looks pretty shallow and calm. You'd almost feel bad for hopping in and disturbing its serene flatness."
|
||||
icon = 'maps/redgate/falls/icons/turfs/water.dmi'
|
||||
icon_state = "shallow"
|
||||
under_state = "shallow"
|
||||
dynamic_lighting = 0
|
||||
outdoors = OUTDOORS_NO
|
||||
|
||||
//Cut out the caustics overlay and replace with nothing
|
||||
/turf/simulated/floor/water/atoll/update_icon()
|
||||
..()
|
||||
cut_overlays()
|
||||
var/image/water_sprite = image(icon = 'maps/redgate/falls/icons/turfs/water.dmi', icon_state = "shallow", layer = 3.0)
|
||||
add_overlay(water_sprite)
|
||||
|
||||
//Spawn animated whitecaps around
|
||||
/turf/simulated/floor/water/atoll/Initialize()
|
||||
. = ..()
|
||||
if(prob(25))
|
||||
new /obj/effect/decal/whitecaps(src)
|
||||
|
||||
|
||||
/turf/simulated/floor/water/atoll/sunk
|
||||
icon_state = "sunken"
|
||||
under_state = "shallow"
|
||||
|
||||
/turf/simulated/floor/water/atoll/sunk/update_icon()
|
||||
..()
|
||||
cut_overlays()
|
||||
var/image/water_sprite = image(icon = 'maps/redgate/falls/icons/turfs/water.dmi', icon_state = "sunken", layer = 3.0)
|
||||
add_overlay(water_sprite)
|
||||
@@ -20,6 +20,7 @@
|
||||
"bq" = (/obj/effect/floor_decal/atoll/border/invert{dir = 1},/obj/effect/floor_decal/atoll/bronze{dir = 4},/obj/effect/floor_decal/atoll/bronze{dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"bw" = (/obj/structure/waterfall,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 8},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls)
|
||||
"bB" = (/obj/structure/canopy_corner,/obj/structure/flora/tree/atoll/mangrove{dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"bG" = (/obj/structure/canopy/edge/north,/obj/structure/flora/tree/atoll/mangrove{pixel_y = 3; pixel_x = -13},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"bJ" = (/obj/structure/canopy_corner,/obj/effect/decal/shadow/silhouette,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"bK" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/effect/decal/shadow/silhouette/pillar{dir = 4},/obj/structure/railing/overhang/waterless,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"bP" = (/obj/structure/waterfall,/obj/structure/canopy/edge/north,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
@@ -39,9 +40,10 @@
|
||||
"cS" = (/obj/structure/aqueduct/pillar,/obj/structure/canopy,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"cU" = (/obj/structure/bed/chair/sofa/bench/marble{dir = 4},/obj/effect/floor_decal/atoll/bronze{dir = 9},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"da" = (/obj/structure/canopy/edge/south,/obj/structure/canopy/edge/north,/obj/effect/decal/godray{dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"dd" = (/obj/structure/waterfall,/turf/unsimulated/beach/water,/area/gateway/atoll/falls)
|
||||
"dg" = (/obj/structure/aqueduct/corner{dir = 9},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"dj" = (/obj/effect/floor_decal/atoll/border{dir = 9},/obj/structure/bed/chair/sofa/bench/marble,/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"dk" = (/obj/effect/blocker,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/structure/waterfall,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"dk" = (/obj/effect/blocker,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/structure/waterfall,/obj/effect/decal/shadow/silhouette,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"dq" = (/obj/effect/floor_decal/atoll/border/invert{dir = 8},/obj/effect/floor_decal/atoll/border/invert{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"ds" = (/obj/structure/canopy/edge/right,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"dt" = (/obj/effect/decal/shadow/floor,/obj/effect/floor_decal/atoll/border{dir = 5},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
@@ -58,7 +60,6 @@
|
||||
"ee" = (/obj/structure/aqueduct{dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"eo" = (/obj/structure/canopy/edge/right,/turf/simulated/floor/water/atoll/sunk,/area/gateway/atoll/falls)
|
||||
"es" = (/obj/structure/canopy/edge,/obj/effect/decal/godray{dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"ev" = (/obj/machinery/gateway{dir = 8},/obj/effect/floor_decal/atoll/border/invert{dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"ey" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/structure/railing/overhang,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"eA" = (/obj/structure/bed/chair/sofa/bench/marble{dir = 4},/obj/effect/floor_decal/atoll/bronze{dir = 10},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"eC" = (/obj/effect/blocker,/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls)
|
||||
@@ -66,6 +67,7 @@
|
||||
"eJ" = (/obj/effect/floor_decal/atoll/border{dir = 4},/obj/effect/floor_decal/atoll/bronze{dir = 8},/obj/effect/floor_decal/atoll/bronze{dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"eN" = (/obj/effect/floor_decal/atoll/bronze,/obj/effect/floor_decal/atoll/bronze{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"eX" = (/obj/structure/canopy/edge/south,/obj/structure/aqueduct{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"fc" = (/obj/structure/waterfall,/obj/structure/waterfall/mist,/obj/effect/decal/shadow/silhouette{icon_state = "silhouette"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"fj" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/obj/structure/railing/overhang,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"fq" = (/obj/effect/floor_decal/atoll/bronze{dir = 5},/obj/structure/bed/chair/sofa/bench/marble,/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"fu" = (/obj/structure/waterfall,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/structure/waterfall/mist,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
@@ -84,6 +86,7 @@
|
||||
"gz" = (/obj/effect/step_trigger/teleporter/atoll{teleport_x = 40; teleport_y = 50},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"gA" = (/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"gC" = (/obj/structure/canopy/edge/north,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/effect/decal/shadow/silhouette/pillar{dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"gF" = (/obj/structure/canopy/edge/north,/obj/effect/decal/godray,/obj/structure/flora/tree/atoll/mangrove{dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"gI" = (/obj/structure/railing/overhang,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"gP" = (/obj/effect/decal/shadow/silhouette{icon_state = "silhouette"; dir = 1},/obj/structure/flora/tree/atoll/mangrove{dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"gS" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/effect/decal/shadow/silhouette/pillar{dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
@@ -146,6 +149,7 @@
|
||||
"lq" = (/obj/effect/floor_decal/atoll/bronze{dir = 9},/obj/structure/bed/chair/sofa/bench/marble,/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"lu" = (/obj/structure/canopy/edge/north,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"lv" = (/obj/effect/blocker,/obj/structure/canopy,/obj/structure/aqueduct{dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"lx" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/effect/decal/shadow/silhouette/pillar,/obj/structure/railing/overhang,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"lH" = (/obj/effect/decal/shadow/floor,/obj/effect/floor_decal/atoll/border{dir = 8},/obj/effect/floor_decal/atoll/bronze{dir = 4},/obj/effect/floor_decal/atoll/bronze,/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"lI" = (/obj/structure/canopy/edge/north,/obj/effect/decal/godray,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"lK" = (/obj/structure/canopy_corner{dir = 1},/obj/effect/decal/shadow/silhouette/support,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
@@ -168,7 +172,6 @@
|
||||
"mW" = (/obj/structure/waterfall,/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"mY" = (/obj/structure/waterfall,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls)
|
||||
"nb" = (/obj/effect/decal/shadow/silhouette,/obj/structure/canopy,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"nh" = (/obj/machinery/gateway{dir = 4},/obj/effect/floor_decal/atoll/border/invert{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"ni" = (/obj/effect/decal/shadow/silhouette,/obj/structure/canopy_corner,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"ns" = (/obj/effect/decal/shadow/silhouette,/obj/effect/blocker,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"nA" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
@@ -190,6 +193,7 @@
|
||||
"oR" = (/obj/effect/floor_decal/atoll/border/invert{dir = 1},/obj/effect/floor_decal/atoll/border/invert,/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"oV" = (/obj/effect/floor_decal/atoll/border/invert{dir = 8},/obj/effect/floor_decal/atoll/bronze{dir = 6},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"oW" = (/obj/effect/floor_decal/atoll/bronze{dir = 10},/obj/effect/floor_decal/atoll/border/invert{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"oX" = (/obj/structure/waterfall,/obj/structure/waterfall/mist,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/obj/effect/decal/shadow/silhouette/pillar{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"pb" = (/obj/effect/floor_decal/atoll/bronze{dir = 1},/obj/effect/floor_decal/atoll/bronze{dir = 8},/obj/structure/bed/chair/sofa/bench/marble{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"pj" = (/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 8},/obj/effect/decal/shadow,/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls)
|
||||
"pl" = (/obj/effect/decal/shadow/silhouette{icon_state = "silhouette"; dir = 1},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
@@ -260,7 +264,7 @@
|
||||
"ug" = (/obj/effect/floor_decal/atoll/bronze{dir = 8},/obj/effect/floor_decal/atoll/bronze{dir = 1},/obj/structure/bed/chair/sofa/bench/marble{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"ui" = (/obj/effect/floor_decal/atoll/bronze{dir = 4},/obj/effect/floor_decal/atoll/bronze{dir = 1},/obj/effect/floor_decal/atoll/border{dir = 1},/obj/effect/landmark,/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"uj" = (/obj/effect/blocker,/obj/effect/decal/shadow{icon_state = "wall_shadow"; dir = 1},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls)
|
||||
"uo" = (/obj/structure/waterfall,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"uo" = (/obj/structure/waterfall,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/obj/effect/decal/shadow/silhouette,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"uv" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/effect/decal/shadow/silhouette/pillar{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"uA" = (/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/turf/simulated/floor/water/atoll/sunk,/area/gateway/atoll/falls)
|
||||
"uD" = (/obj/structure/waterfall,/obj/effect/floor_decal/atoll/bronze,/obj/effect/floor_decal/atoll/bronze{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
@@ -306,6 +310,7 @@
|
||||
"xO" = (/obj/structure/aqueduct{dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"xR" = (/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"yc" = (/obj/structure/canopy/edge,/obj/structure/aqueduct,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"ym" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/structure/waterfall,/obj/structure/waterfall/mist,/obj/effect/decal/shadow/silhouette/pillar{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"yq" = (/obj/structure/canopy,/obj/structure/temple,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"yt" = (/obj/effect/decal/shadow/floor,/obj/effect/decal/shadow/silhouette,/obj/structure/waterfall,/obj/effect/step_trigger/teleporter/atoll{teleport_x = 125; teleport_y = 17},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"yu" = (/obj/structure/canopy/edge,/obj/structure/temple,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
@@ -319,7 +324,6 @@
|
||||
"yM" = (/obj/structure/canopy,/obj/effect/blocker,/obj/structure/aqueduct{dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"yW" = (/obj/effect/step_trigger/teleporter/atoll{teleport_x = 73; teleport_y = 50},/obj/effect/floor_decal/atoll/border{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"zb" = (/obj/structure/waterfall/top,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 1},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls)
|
||||
"zc" = (/obj/machinery/gateway{dir = 5},/obj/effect/floor_decal/atoll/border{dir = 5},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"zd" = (/obj/effect/floor_decal/atoll/bronze{dir = 10},/obj/effect/floor_decal/atoll/bronze{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"zh" = (/obj/structure/canopy/edge,/obj/structure/canopy/edge/right,/obj/structure/aqueduct{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"zk" = (/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/obj/effect/decal/shadow/silhouette{icon_state = "silhouette"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
@@ -368,7 +372,7 @@
|
||||
"Cw" = (/obj/effect/landmark,/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"Cz" = (/obj/structure/aqueduct,/obj/structure/aqueduct/pillar{dir = 1},/obj/structure/canopy,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"CH" = (/obj/effect/floor_decal/atoll/bronze{dir = 10},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"CL" = (/obj/structure/canopy_corner,/obj/effect/decal/shadow/silhouette{icon_state = "silhouette"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"CL" = (/obj/structure/canopy_corner,/obj/effect/decal/shadow/silhouette{icon_state = "silhouette"; dir = 1},/obj/structure/flora/tree/atoll/mangrove,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"CM" = (/obj/effect/decal/shadow{icon_state = "wall_shadow"; dir = 1},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls)
|
||||
"CP" = (/obj/structure/canopy_corner{dir = 8},/turf/simulated/floor/water/atoll/sunk,/area/gateway/atoll/falls)
|
||||
"CV" = (/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 1},/obj/structure/railing/overhang/waterless,/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls)
|
||||
@@ -442,7 +446,6 @@
|
||||
"Hn" = (/obj/structure/railing/overhang/waterless/under{dir = 4},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls)
|
||||
"Hs" = (/obj/structure/canopy,/obj/structure/railing/overhang/waterless,/obj/structure/aqueduct/pillar,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"HD" = (/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/obj/effect/decal/shadow,/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls)
|
||||
"HG" = (/obj/machinery/gateway{dir = 10},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"HM" = (/obj/effect/floor_decal/atoll/border/invert{dir = 8},/obj/effect/floor_decal/atoll/bronze{dir = 4},/obj/effect/floor_decal/atoll/border/invert{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"HP" = (/obj/structure/canopy/edge,/obj/structure/canopy/edge/right,/obj/effect/decal/shadow/silhouette{icon_state = "silhouette"; dir = 1},/obj/effect/decal/godray{dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"HQ" = (/obj/effect/floor_decal/atoll/bronze{dir = 1},/obj/effect/floor_decal/atoll/bronze{dir = 8},/obj/effect/floor_decal/atoll/border{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
@@ -452,6 +455,7 @@
|
||||
"Ic" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/structure/aqueduct{dir = 1},/obj/effect/decal/shadow/silhouette/pillar{dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"Ie" = (/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 1},/obj/effect/blocker,/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls)
|
||||
"Ik" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/obj/effect/decal/shadow/silhouette/pillar{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"Ip" = (/turf/unsimulated/beach/water,/area/gateway/atoll/falls)
|
||||
"Iq" = (/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 8},/obj/structure/waterfall/top,/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls)
|
||||
"It" = (/obj/effect/floor_decal/atoll/border/invert{dir = 1},/obj/effect/floor_decal/atoll/bronze{dir = 1},/obj/effect/floor_decal/atoll/bronze{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"IC" = (/obj/structure/aqueduct/pillar,/obj/structure/canopy/edge/south,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
@@ -479,7 +483,7 @@
|
||||
"KL" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/effect/decal/shadow/silhouette/pillar{dir = 4},/obj/structure/canopy_corner{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"KM" = (/obj/structure/temple,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"KN" = (/obj/structure/monolith/first,/obj/effect/decal/godray,/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"KT" = (/obj/effect/blocker,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/obj/structure/waterfall,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"KT" = (/obj/effect/blocker,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/obj/structure/waterfall,/obj/effect/decal/shadow/silhouette,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"KY" = (/obj/structure/canopy/edge,/obj/effect/decal/shadow/silhouette{icon_state = "silhouette"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"KZ" = (/obj/structure/aqueduct{dir = 8},/obj/structure/canopy/edge,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"Lb" = (/obj/effect/decal/shadow{icon_state = "wall_shadow"; dir = 1},/obj/effect/blocker,/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls)
|
||||
@@ -509,6 +513,7 @@
|
||||
"Mv" = (/obj/structure/aqueduct/pillar{dir = 4},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/effect/decal/godray{dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"My" = (/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 8},/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 1},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls)
|
||||
"MD" = (/obj/effect/decal/godray{dir = 4},/turf/simulated/floor/water/atoll/sunk,/area/gateway/atoll/falls)
|
||||
"ME" = (/obj/structure/canopy_corner{dir = 1},/turf/unsimulated/beach/water,/area/gateway/atoll/falls)
|
||||
"MM" = (/obj/effect/floor_decal/atoll/border{dir = 5},/obj/effect/floor_decal/atoll/bronze{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"MR" = (/obj/effect/blocker,/obj/structure/canopy_corner,/obj/effect/decal/shadow/silhouette,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"Nf" = (/obj/effect/decal/shadow,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 1},/obj/structure/railing/overhang/waterless,/obj/effect/decal/godray{dir = 8},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls)
|
||||
@@ -531,12 +536,14 @@
|
||||
"Ox" = (/obj/structure/railing/overhang/waterless,/obj/structure/flora/tree/atoll/mangrove{dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"OH" = (/obj/structure/canopy_corner{dir = 4},/obj/structure/aqueduct{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"OI" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"OS" = (/obj/structure/railing/overhang,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/effect/decal/shadow/silhouette/pillar{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"Pd" = (/obj/structure/railing/overhang,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"Pe" = (/obj/structure/canopy_corner,/obj/structure/railing/overhang/waterless,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"Pk" = (/obj/effect/step_trigger/teleporter/atoll{teleport_x = 100; teleport_y = 50},/obj/effect/floor_decal/atoll/border/invert{dir = 4},/obj/effect/floor_decal/atoll/border/invert,/obj/effect/floor_decal/atoll/border/invert{dir = 1},/obj/effect/floor_decal/atoll/border/invert{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"Pm" = (/obj/effect/floor_decal/atoll/bronze{dir = 6},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"Pn" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"Pp" = (/obj/effect/landmark,/obj/effect/floor_decal/atoll/border/invert{dir = 1},/obj/effect/floor_decal/atoll/border/invert{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"Pv" = (/obj/structure/railing/overhang,/obj/effect/decal/shadow/silhouette/pillar{dir = 1},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"PA" = (/obj/effect/blocker,/obj/structure/canopy_corner{dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"PB" = (/obj/effect/floor_decal/atoll/border/invert{dir = 4},/obj/effect/floor_decal/atoll/border/invert,/obj/effect/decal/godray{dir = 8},/obj/effect/floor_decal/atoll/bronze{dir = 8},/obj/effect/floor_decal/atoll/bronze{dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"PC" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
@@ -553,13 +560,13 @@
|
||||
"Qq" = (/obj/effect/floor_decal/atoll/bronze{dir = 4},/obj/effect/floor_decal/atoll/bronze{dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"Qs" = (/obj/structure/canopy_corner{dir = 8},/obj/structure/aqueduct,/obj/structure/aqueduct/pillar{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"Qt" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/effect/decal/shadow/silhouette/pillar{dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"Qu" = (/obj/machinery/gateway{dir = 1},/obj/effect/floor_decal/atoll/border,/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"Qz" = (/obj/effect/floor_decal/atoll/bronze,/obj/effect/floor_decal/atoll/bronze{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"QD" = (/obj/effect/decal/shadow/silhouette/pillar{dir = 1},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"QR" = (/obj/effect/decal/shadow/floor,/obj/effect/floor_decal/atoll{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"QS" = (/obj/effect/blocker,/obj/structure/aqueduct,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"Rc" = (/obj/effect/decal/godray,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"Rd" = (/obj/effect/decal/shadow,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 1},/obj/structure/railing/overhang/waterless,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 8},/obj/effect/blocker,/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls)
|
||||
"Rf" = (/obj/structure/aqueduct/pillar{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"Rf" = (/obj/effect/blocker,/obj/structure/waterfall,/obj/structure/waterfall/mist,/obj/effect/decal/shadow/silhouette{icon_state = "silhouette"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"Rg" = (/obj/effect/floor_decal/atoll/border/invert{dir = 4},/obj/effect/floor_decal/atoll/border/invert,/obj/effect/landmark,/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"Rl" = (/obj/structure/aqueduct{dir = 1},/obj/structure/canopy/edge/right,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"Rn" = (/obj/structure/canopy_corner{dir = 4},/obj/structure/aqueduct{dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
@@ -587,27 +594,27 @@
|
||||
"Td" = (/obj/structure/waterfall,/obj/structure/waterfall/mist,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"Tg" = (/obj/effect/decal/shadow/silhouette{icon_state = "silhouette"; dir = 1},/obj/structure/flora/tree/atoll/mangrove{dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"Ti" = (/obj/structure/waterfall/top,/obj/structure/canopy/edge/south,/obj/structure/aqueduct{dir = 8},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls)
|
||||
"Tj" = (/obj/machinery/gateway/centeraway,/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"Tj" = (/obj/structure/redgate/away,/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"Tv" = (/obj/structure/railing/overhang/waterless,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"Tz" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/effect/decal/shadow/silhouette/pillar{dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"TA" = (/obj/machinery/gateway{dir = 6},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"TD" = (/obj/structure/temple,/obj/structure/flora/tree/atoll/mangrove{dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"TF" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/structure/canopy/edge/north,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"TH" = (/obj/structure/aqueduct{dir = 1},/obj/structure/canopy,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"TI" = (/obj/effect/decal/shadow/floor,/obj/effect/floor_decal/atoll/border/invert{dir = 4},/obj/effect/floor_decal/atoll/border/invert,/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"TM" = (/obj/structure/waterfall,/obj/effect/floor_decal/atoll/bronze{dir = 8},/obj/effect/floor_decal/atoll/bronze,/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"TR" = (/obj/effect/step_trigger/teleporter/atoll{teleport_x = 83; teleport_y = 50},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"TT" = (/obj/structure/waterfall,/obj/effect/decal/shadow/silhouette,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"Uc" = (/obj/structure/canopy,/obj/effect/decal/shadow/silhouette{icon_state = "silhouette"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"Ui" = (/obj/structure/canopy/edge/right,/obj/effect/decal/shadow/silhouette{icon_state = "silhouette"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"Uj" = (/obj/structure/canopy_corner{dir = 4},/obj/structure/aqueduct{dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"Uk" = (/obj/effect/decal/shadow{icon_state = "wall_shadow"; dir = 1},/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 8},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls)
|
||||
"Ul" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/effect/decal/shadow/silhouette/pillar{dir = 1},/obj/structure/railing/overhang,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"Ur" = (/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 1},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls)
|
||||
"Us" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/structure/waterfall,/obj/structure/waterfall/mist,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"UJ" = (/obj/structure/canopy/edge/right,/obj/effect/decal/godray{dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"UO" = (/obj/structure/waterfall,/obj/structure/waterfall/mist,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"UQ" = (/obj/structure/canopy,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 8},/obj/effect/decal/shadow/silhouette{icon_state = "silhouette"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"UZ" = (/obj/effect/decal/shadow,/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls)
|
||||
"Vb" = (/obj/machinery/gateway,/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"Vc" = (/obj/effect/floor_decal/atoll/bronze{dir = 6},/obj/effect/floor_decal/atoll/border/invert{dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"Vd" = (/obj/effect/floor_decal/atoll/bronze{dir = 4},/obj/effect/floor_decal/atoll/border{dir = 10},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"Ve" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/obj/vehicle/boat{icon_state = "boat"; dir = 4},/obj/item/weapon/oar,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
@@ -657,11 +664,10 @@
|
||||
"Yv" = (/obj/effect/step_trigger/teleporter/atoll{teleport_x = 57; teleport_y = 50},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"Yw" = (/obj/structure/waterfall,/obj/structure/aqueduct{dir = 4},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls)
|
||||
"Yy" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/effect/decal/shadow/silhouette/pillar{dir = 4},/obj/structure/canopy/edge/right,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"YC" = (/obj/structure/waterfall,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"YC" = (/obj/structure/waterfall,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/effect/decal/shadow/silhouette,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"YE" = (/obj/effect/decal/shadow/silhouette/support,/obj/structure/canopy,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"YG" = (/obj/structure/flora/tree/atoll/mangrove{dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"YH" = (/obj/structure/canopy/edge/north,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/effect/decal/shadow/silhouette/support,/obj/effect/decal/godray{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"YK" = (/obj/machinery/gateway{dir = 9},/obj/effect/floor_decal/atoll/border{dir = 9},/turf/simulated/floor/atoll,/area/gateway/atoll/falls)
|
||||
"YL" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/obj/structure/canopy_corner{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"Za" = (/obj/structure/waterfall,/obj/structure/waterfall/mist,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
"Zb" = (/obj/structure/flora/tree/atoll/mangrove{dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
@@ -681,16 +687,16 @@
|
||||
"ZX" = (/obj/structure/canopy_corner{dir = 1},/obj/effect/decal/shadow/silhouette{icon_state = "silhouette"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls)
|
||||
|
||||
(1,1,1) = {"
|
||||
FrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrLjhhFrFrWQqnqnqnqnqnqnqnqnqnqnqnlaVMPnqnqnqnqnqnqnqnlaVMPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMPnqnqnqnqnqnqnqnlaVMPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMPnqnqnqnqnqnqnqnlaVMPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMPnqnqnqnqnqnqnqnlaVMPnqnqnqnqn
|
||||
MEFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrLjhhFrFrWQqnqnqnqnqnqnqnqnqnqnqnlaVMPnqnqnqnqnqnqnqnlaVMPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMPnqnqnqnqnqnqnqnlaVMPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMPnqnqnqnqnqnqnqnlaVMPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMPnqnqnqnqnqnqnqnlaVMPnqnqnqnIp
|
||||
FrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrLjhhFrFrFrlXwMwMwMwMwMwMwMwMwMwMWkVMPnqnqnqnqnqnqnqnlaVMsYwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMWkVMPnqnqnqnqnqnqnqnlaVMsYwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMWkVMPnqnqnqnqnqnqnqnlaVMsYwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMWkVMPnqnqnqnqnqnqnqnlaVMsYwMwMwMwM
|
||||
FxFxFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrLjhhFrFrFrBqHiHiHiHiHiHiHiHiHiHimYVMPnqnqnqnqnqnqnqnlaVMbwHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHimYVMPnqnqnqnqnqnqnqnlaVMbwHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHimYVMPnqnqnqnqnqnqnqnlaVMbwHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHimYVMPnqnqnqnqnqnqnqnlaVMbwHiHiHiHi
|
||||
FxFxFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrLjhhFrFrFrvcHiHiHiHiHiHiHiHiHiHimYVMPnqnqnqnqnqnqnqnlaVMbwHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHimYVMPnqnqnqnqnqnqnqnlaVMbwHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHimYVMPnqnqnqnqnqnqnqnlaVMbwHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHimYVMPnqnqnqnqnqnqnqnlaVMbwHiHiHiHi
|
||||
FxFxFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrLjhhFrFrFrFrBqHiHiHiHiHiHiHiHiHimYVMsYwMwMwMwMwMwMwMWkVMbwHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHimYVMsYwMwMwMwMwMwMwMWkVMbwHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHimYVMsYwMwMwMwMwMwMwMWkVMbwHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHimYVMsYwMwMwMwMwMwMwMWkVMbwHiHiHiHi
|
||||
FxFxFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrLjhhFrFrFrFrBqHiHiHiHiHiHiHiHiHimYVMbwHiHiHiHiHiHiHimYVMbwHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHimYVMbwHiHiHiHiHiHiHimYVMbwHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHimYVMbwHiHiHiHiHiHiHimYVMbwHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHimYVMbwHiHiHiHiHiHiHimYVMbwHiHiHiHi
|
||||
FxFxFrFrFrFrgvgvgvgvgvgvgvgvgvgvgvgkyMgvgvgvgvkaPNPNPNPNPNPNPNPNPNPNIePNPNPNPNPNPNPNPNPNIePNPNPNPNPNPNPNPNPNPNPNPNPNPNPNPNPNPNPNwBKcKcKcbnbnbnKcKcKcwBPNPNPNPNPNPNPNPNPNPNPNPNPNPNPNPNPNPNPNIePNPNPNPNPNPNPNPNPNIePNPNPNPNPNPNPNPNPNPNPNPNPNPNPNPNPNPNPNIePNPNPNPNPNPNPNPNPNUrHiHiHiHiHi
|
||||
FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrFrLjhhFrFrFrFrFrBqHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiGoHiHiZoYKQuzcsNHiHiGoHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiKcGoHiHiHiHiHi
|
||||
FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrFrLjhhFrFrFrFrFrBqHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiGoHimYqyevTjnhhpbwHiGoHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiKcGoHiHiHiHiHi
|
||||
FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrFrLjhhFrFrFrFrFrBqHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiGoHiZoaWHGVbTAaJsNHiGoHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiKcGoHiHiHiHiHi
|
||||
FrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrLjhhFrFrFrBqHiHiHiHiHiHiHiHiHiHimYVMPnqnqnqnqnqnqnqnlaVMbwHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHimYVMPnqnqnqnqnqnqnqnlaVMbwHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHimYVMPnqnqnqnqnqnqnqnlaVMbwHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHimYVMPnqnqnqnqnqnqnqnlaVMbwHiHiHiHi
|
||||
FrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrLjhhFrFrFrvcHiHiHiHiHiHiHiHiHiHimYVMPnqnqnqnqnqnqnqnlaVMbwHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHimYVMPnqnqnqnqnqnqnqnlaVMbwHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHimYVMPnqnqnqnqnqnqnqnlaVMbwHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHimYVMPnqnqnqnqnqnqnqnlaVMbwHiHiHiHi
|
||||
FrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrLjhhFrFrFrFrBqHiHiHiHiHiHiHiHiHimYVMsYwMwMwMwMwMwMwMWkVMbwHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHimYVMsYwMwMwMwMwMwMwMWkVMbwHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHimYVMsYwMwMwMwMwMwMwMWkVMbwHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHimYVMsYwMwMwMwMwMwMwMWkVMbwHiHiHiHi
|
||||
FrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrLjhhFrFrFrFrBqHiHiHiHiHiHiHiHiHimYVMbwHiHiHiHiHiHiHimYVMbwHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHimYVMbwHiHiHiHiHiHiHimYVMbwHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHimYVMbwHiHiHiHiHiHiHimYVMbwHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHimYVMbwHiHiHiHiHiHiHimYVMbwHiHiHiHi
|
||||
FrFrFrFrFrFrlPgvgvgvgvgvgvgvgvgvgvgkyMgvgvgvgvkaPNPNPNPNPNPNPNPNPNPNIePNPNPNPNPNPNPNPNPNIePNPNPNPNPNPNPNPNPNPNPNPNPNPNPNPNPNPNPNwBKcKcKcbnbnbnKcKcKcwBPNPNPNPNPNPNPNPNPNPNPNPNPNPNPNPNPNPNPNIePNPNPNPNPNPNPNPNPNIePNPNPNPNPNPNPNPNPNPNPNPNPNPNPNPNPNPNPNIePNPNPNPNPNPNPNPNPNUrHiHiHiHiHi
|
||||
FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrFrLjhhFrFrFrFrFrBqHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiGoHiHiZoqyDuhpsNHiHiGoHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiKcGoHiHiHiHiHi
|
||||
FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrFrLjhhFrFrFrFrFrBqHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiGoHimYqyhjTjGhhpbwHiGoHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiKcGoHiHiHiHiHi
|
||||
FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrFrLjhhFrFrFrFrFrBqHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiGoHiZoaWVMVMVMaJsNHiGoHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiKcGoHiHiHiHiHi
|
||||
FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrFrLjhhFrFrFrFrFrvcHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiGoZoqyhjVMVMVMGhhpsNGoHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiKcGoHiHiHiHiHi
|
||||
WjWjWjWjWjWjNuWjWjWjWjWjWjWjWjWjWjFrFrFrFrFrFrFrFrcEjKjKjKjKjKjKjKjKGoHiHiHiHiHiHiHiHiHiGojKjKjKjKjKjKjKjKjKjKjKjKjKjKjKjKjKjKjKGOqyFgciGqGqGqFgcihpxsjKjKjKjKjKjKjKjKjKjKjKjKjKjKjKjKjKjKjKGoHiHiHiHiHiHiHiHiHiGojKjKjKjKjKjKjKjKjKjKjKjKjKjKjKjKjKjKjKGoHiHiHiHiHiHiHiHiKcGojKjKjKjKjK
|
||||
nXnXnXnXnXnXEYnXGvnXnXnXGvnXnXnXGvczFrFrFrFrFrFrFrAhwrwrwrwrwrwrwrwrGoHiHiHiHiHiHiHiHiHiGowrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrGOaWGLxogditgdgSrKaJxstrtrtrtrtrtrtrtrtrtrtrtrtrtrtrtrtrtrtrGoHiHiHiHiHiHiHiHiHiGowrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrGoHiHiHiHiHiHiHiHiKcGowrwrwrwrwr
|
||||
@@ -698,24 +704,24 @@ FrFrFrFrFrFrlPFriJFrFrFriJFrFrFriJFrFrFrFrFrFrFrFrzCqnqnqnqnqnqnqnqnGoHiHiHiHiHi
|
||||
FrFrFrFrFrFrlPFriJFrLTaEiJFrFrFrHshIhIFrFrFrFrFrFrzCtXtXqnqnqnqnqnqnGoHiHiHiHiHiHiHiHiHiGoqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnGOaWFgaDgIsUgIPHciaJxsqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnGoHiHiHiHiHiHiHiHiHiGoqnqnqnqnqnqnqnqnqnqnqnqnqnZbqnqnqnqnqnGoHiHiHiHiHiHiHiHiKcGoqnqnqnhuFr
|
||||
FrFrFrFrFrFrlPLTQoLrWQqntoaEFrBHXRWwkOaRFrFrFrFrFrzCjxjxqnqnqnqnqnqnUZHiHiHiHiHiHiHiHiHiUZqnqnqnqnqnqnqnZbqnqnqnqnqnqnqnqnqnqnqnHDaWGLrKGqGqGqGLrKaJpjqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnUZHiHiHiHiHiHiHiHiHiUZqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnUZHiHiHiHiHiHiHiHiKcUZqnqnhuFrFr
|
||||
FrFrFrFrFrFrlPzCmhFrFrWQFVhuFrBHSKLMHQaRFrFrFrFrLTqnqnqnqnqnqnqnqnqnCMjKjKjKjKjKjKjKjKjKCMqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnubaWiNjDjDjDjDjDvmaJnDqnZbqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnCMjKjKjKjKjKjKjKjKjKCMqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnCMjKjKjKjKjKjKjKjKicCMqndsFrFrFr
|
||||
FrFrFrFrFrFrlPWQhuFrFrFrFrFrFrBHHMAuvWaRFrLyaEFrzCqnqntXtXqnqnqnqnqnVswrwrwrwrwrwrwrwrwrVsqnqnqnqnqnqnqnFfqnqnqnqnqnqnZbqnqnqnqnpXGfDbaAdGVMaAdGGfDbovqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnVswrwrwrwrwrwrwrwrwrVsqnqnqnqnqnqnhXqnqnqnqnqnqnqnqnqnqnqnqnVswrwrwrwrwrwrwrwrGEVsqndsFrFrFr
|
||||
FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrLTUrUrUraEBHpmtfFrzCqnqnjxsoqnqnqnqnqnjxqnqnqnqnqnqnqnqnqnjxqnqnqnaNqngIgIgIgIgIqnqnqnqnqnqnqnqnqnjxREREWKiSREiSWKREREjxqnqnhXqnqnqnqnqnqngIgIgIgIgIqnqnqnqnqnjxqnqnqnqnqnqnqnqnqnjxqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnjxqwqwqwqnqnqnqnqnozSiqwhuFrFrFr
|
||||
FrFrFrFrFrFrlPFrFrhIhIFrFrFrFrzCGoGoGohuFrQmFrFrzCqnqngActMtqnqnqnqnqnqnTvqntXqnqnqnqnqnqnqnqnqnqnladjDuDuDuoFmvgIgIgIgIgIgIgIgIgICMCMBBxHCMxHBBCMCMgIgIgIgIgIgIgIgIgIPddjDuDuDuoFPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnhuFrFrFrWQqnqnqnqwiiFrFrFrFrFrFr
|
||||
FrFrFrFrFrFrlPWQhuFrFrFrFrFrFrBHHMAuvWaRFrLyaEFrzCqnqntXtXqnqnqnqnqnVswrwrwrwrwrwrwrwrwrVsqnqnqnqnqnqnqnFfqnqnqnqnqnqnZbqngIqnqnpXGfDbaAdGVMaAdGGfDbovqnqngIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnVswrwrwrwrwrwrwrwrwrVsqnqnqnqnqnqnhXqnqnqnqnqnqnqnqnqnqnqnqnVswrwrwrwrwrwrwrwrGEVsqndsFrFrFr
|
||||
FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrLTUrUrUraEBHpmtfFrzCqnqnjxsoqnqnqnqnqnjxqnqnqnqnqnqnqnqnqnjxqnqnqnaNqngIgIgIgIgIqnqnqnqnqnlaDMPnqnjxREREWKiSREiSWKREREjxqnlaDMPnqnqnqnqnqngIgIgIgIgIqnqnqnqnqnjxqnqnqnqnqnqnqnqnqnjxqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnjxqwqwqwqnqnqnqnqnozSiqwhuFrFrFr
|
||||
FrFrFrFrFrFrlPFrFrhIhIFrFrFrFrzCGoGoGohuFrQmFrFrzCqnqngActMtqnqnqnqnqnqnTvqntXqnqnqnqnqnqnqnqnqnqnladjDuDuDuoFmvgIgIgIgIgIlxgIgIgICMCMBBxHCMxHBBCMCMgIgIgIlxgIgIgIgIgIPddjDuDuDuoFPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnhuFrFrFrWQqnqnqnqwiiFrFrFrFrFrFr
|
||||
FrFrFrFrFrFrlPFrBHFgciaRFrFrFrzCUZUZUZFrFrCMaEFrzCqnYGqnREqnqnZbqnqnqnlRfHEjjxqnqnqnqnqnqnqnqnqnqnlaaWZEQqIJGhDuhjRRvlvlvlvlErLDVMhchctBWMXqkhCbhchcVMRRErvlvlvlvlLDGhDuhjZEQqIJaJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnhuFrFrFrFrFrPeqwhuFrlPFrFrFrFrFrFr
|
||||
FrFrFrFrFrFrlPFrBHGLrKaRFrFrFrWQCMCMCMaEFrbJhuFrzCqnTvTvVsqnTvTvTvTvhuFrUrFrzCqnqnqnqnqnqnqnqnqnqnlaaWCexIWpVMVMVMVMVMVMVMVMVMVMVMVMVMVMaJxzaWVMVMVMVMVMVMVMVMVMVMVMVMVMVMCeQeWpaJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqntXqnqnqndsFrLTaEFrFrBHLgaRFrFrkmhIhIFrFrFrFr
|
||||
FrFrFrFrFrFrlPFrFrREREFrhIhIhIhINTNTbJhuFrUcFrLTqngAFgcismgAdRgsxvMjaRFrUZFrWQqnqnqntXqnqnqnqnqnqnlaaWCHJkPmiNjDvmtTJkJkJkJkJkaPVMVMVMVMGhDuhjVMVMVMVMtTeNeNeNeNeNaPiNjDvmCHJkPmaJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnKMqnqnYGqnqnaNqnqnqnjxqnqnqndsFrWQqnjPaELTQmhIhIBHmsrBXuaRFrFrFr
|
||||
FrFrFrFrFrFrlPFrLTCMCMBHyIESGDMMUQUcUcFrFrFrFrzCqngAGLrKMtgApARgyEgUaRFrCMFrFrzCqnqnjxhXqnqnqnqnqnlaGfvmVMiNDbZfPCTzgdgdgdgdgdzYPCwFCHVMVMVMVMVMPmnAPCTzgdgdgdgdgdzYPCOIGfvmVMiNDbPnqnqnqnqnqnqnqnqnqnqnqnqnhXqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqndsFrFrWQqndsWQgwDqzRGPNhaMVcaRFrFrFr
|
||||
FrFrFrFrFrFrlPFrWQOuagBHVdBauiqKaRhIFrFrFrFrFrzCqnqnREREqngAXadwvnWSxFFrNohIFrzCqnqnqnqnqnqnqnqnqngIVTaWVMaJztqnqnqnqnqnqnqnqnqnqnqnPCwFVMVMVMnAPCqnqnqnqnqnqnqnqnqnqnqnSJaWVMaJqYgIqnqnqnqnZbqnqnqnqnKMqnqnqnqnqnqnqnqnqntXtXqnqnqnqnqntXqnqnqnqnqnqnaEFrFrWQqnaEUcQmQmFrwBUrUrFrFrFrFr
|
||||
FrFrFrFrFrFrlPFrFrUcUcFrREREREREBHfHaRFrFrFrLTqnqnqnVsFUllqnUrUrUrUrrbHbNCXuaRzCqnqnqnqnqnqnqnqntXVMGhhjVMGhPnqnqnqnqnqnqnRfqnqnqnqnqnlaVMVMVMPnqnqnqnqnqnRfqnqnqnqnqnqnlahjVMGhhjVMtXqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnjxjxqnqnqnqnqnjxqnqnKMqnqnqnqnaEFrFrWQhuFrCMCMFreCGoGoFrFrFrFr
|
||||
FrFrFrFrFrFrlPFrLTCMCMBHyIESGDMMUQUcUcFrFrFrFrzCqngAGLrKMtgApARgyEgUaRFrCMFrFrzCqnqnjxhXqnqnqnqnqnlaGfvmVMiNDbZfPCTzgdgdgdOSgdzYPCwFCHVMVMVMVMVMPmnAPCTzQDPvQDgdgdzYPCOIGfvmVMiNDbPnqnqnqnqnqnqnqnqnqnqnqnqnhXqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqndsFrFrWQqndsWQgwDqzRGPNhaMVcaRFrFrFr
|
||||
FrFrFrFrFrFrlPFrWQOuagBHVdBauiqKaRhIFrFrFrFrFrzCqnqnREREqngAXadwvnWSxFFrNohIFrzCqnqnqnqnqnqnqnqnqngIVTaWVMaJztqnqnqnqnqnlaDMPnqnqnqnPCwFVMVMVMnAPCqnqnqnlaDMPnqnqnqnqnqnSJaWVMaJqYgIqnqnqnqnZbqnqnqnqnKMqnqnqnqnqnqnqnqnqntXtXqnqnqnqnqntXqnqnqnqnqnqnaEFrFrWQqnaEUcQmQmFrwBUrUrFrFrFrFr
|
||||
FrFrFrFrFrFrlPFrFrUcUcFrREREREREBHfHaRFrFrFrLTqnqnqnVsFUllqnUrUrUrUrrbHbNCXuaRzCqnqnqnqnqnqnqnqntXVMGhhjVMGhPnqnqnqnqnqnqnirqnqnqnqnqnlaVMVMVMPnqnqnqnqnqnirqnqnqnqnqnqnlahjVMGhhjVMtXqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnjxjxqnqnqnqnqnjxqnqnKMqnqnqnqnaEFrFrWQhuFrCMCMFreCGoGoFrFrFrFr
|
||||
FrFrFrFrFrFrlPFrFrFrFrFrNTNTniagFrQmaEFrFxFrzCqnqnqnzkDIEWMtUZUZUZUZFrDwZIVcaRzCqnqnqnqnqntXtXtXEyCwVMVMVMVMPnqnqnqnqnqnqnzNqnqnqnqnqnqnsEVMVMPnqnqnqnqnqnzNqnqnqnqnqnqnlaVMVMVMVMVMVMtXtXtXtXtXtXtXtXtXtXtXqntXqnqntXqntXqnqnqnqnqnqnhXqnqnqntXqnqnqnqnTvYbFrFrFrLTVstSFriFUZUZFrFrFrFr
|
||||
FrFrFrFrFrFrlPFrFrFrFrFrUcUcUcUcFrwfhuFxFxFrzCqnqnqnqnUrUrqwCMCMCMCMFrFrREREFrzCKMqnqnqnqntXtXtXsEVMVMVMVMVMPnqnqnqnqnqnqnzNqnqnqnqnqnqntXsEVMPnqnqnqnqnqnzNqnqnqnqnqnqnlaVMVMVMVMVMsEtXjxtXtXtXtXtXtXsHtXjxqnjxtXqnjxqnjxtXqnqnqnqnqnqnqnqnqnjxqnqntXgAzdLgWOFrFrWQaOZXFrujCMCMFrFrFrFr
|
||||
FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrLTjxFrFxFxLTqnqnaNqnqnUZUZFrnbniWcagFrFrCMCMFrzCqnqnqntXqnjxjxjxjxPCOIvmVMiNPnqnqnqnqnqnqnKuqnqnqnqnqnlaVMtXsEqnqnqnqnqnqnKuqnqnqnqnqnqnlavmVMiNZfPCjxjxhXjxjxjxjxjxjxjxjxqnqnqnjxqnqnqnZbjxqnqnqnqnqnqnqnqnqnqnqnqnjxqnQmQmqnjPaEFrFrFrFrMRVstSFrFrFrFr
|
||||
FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrWQhuFrFrLTqnqnqnqnqnqnCMCMFrDpDpDpDpFrFrniagFrzCYGqnqnjxqnqnqnqnqngIPHaWVMaJmvgIqnqnqnqnqnmhqnqnqnqnqnqnsETgtXhXqnqnqnqnqnmhqnqnqnqnqngIPHaWVMaJmvgIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqntXqnqnqnqnaNKMqnqnqnqnqnXFXFXFXFXFXFXFjFjFXFXFRlTHOHIRWjWmtzqaTHTHTHTH
|
||||
FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrFrFrFrLTqnqnqnqnqnqnqnVsvTFrFrFrFrFrFrFrDpDpFrzCqntXtXqnqnqnqnqnladRDuhjVMGhDumNPnqnqnqnqnqnqnKMqnZbqnqntXtXtXqnKMqnqnqnqnqnqnqnqnqnladRDuhjVMGhDumNPnqnqnqnqnqnqnqnqnqnqnqnqnqnqntXqnqnqnqnqnqnqnqnYGMrqnsXJSsXsXsXsXsXtVrcsXsXiyBAycsXRWvpBABABABABACz
|
||||
FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrFrFxLTqnqnqnqnqnqntXqnjxjxjPaEFrFrFrFrFrFrFrLTqnqntXtXqnqnqnqnqnlaaWtTeNeNeNaPaJPnqnqnqnqnqnqnqnqnqnqnlajaVMjxqnqnqnqnqnqnqnqnqnqnqnlaaWtTeNeNeNaPaJPnqnqnqnZbqnqnqnqnqnqnqnqnqnqnjxtXqnqnqnqntXqnqntXxOeeKMKuqnqnqnqnqnjxVnqndsFrFrzCqnKuPAFrFrFrFrFrvM
|
||||
FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrLTjPqnqnqnqnqnqnqnjxqntXqnqnqnjPjPjPjPjPjPjPqnqnqnjxjxqnqnqnqnqnlaaWQzxogdgSbVaJPnqnqnqnqnqnqnqntXtXtXtXsEVMtXqnqntXtXtXqnqnqnqnqnqnlaaWQzxogdgSbVaJPnqnqnqnqnqnqnqnqnqnKMqnqnqnaNqntXqnqnqnqnjxqntXjxxOeeqnmhqnqnqnqnqnqnmhqndsFrFrWQqnmhiiFrFrFrFrFrYE
|
||||
FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrzCqnqnqnqnqnqnqnqnqnqnjxqnqnqnqnqnqnqnqnqntXqnqnqntXqnqnqnqnqnqnlaaWQzPnhXlabVaJPnqnqnqnqnqnqnqnjxtXtXtXjxsEVMtXtXVMtXjxqnYGqnqnqnqnlaaWQzPnZblabVaJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnjxqnqnqnqnqntXjxqnxOeeqnqnqnqnqnqnqnqnqnqndsFrFrFrWQhulPFrFrFrFrFrFr
|
||||
FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFruKqnqnqnqnqnqnqnqnqnqnqnqnaNqngIqnqntXqnqnjxqnqnqnjxqnqnqnqnqnqnlaaWQzmvgIPHbVaJPnqnqnqnqngIqnqnqnjxjxgPqnZHgdjxjxgdjxqnqngIqnqnqnqnlaaWQzmvgIPHbVaJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqngIqnqnqnqnqnjxqnqnxOeeqnqnqnqngIqnqnqnqnqnqnaEFrFrFrFrlPFrFrFrFrFrFr
|
||||
FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrLTjPqnqnqnqnqnqnqnjxqntXqnqnqnjPjPjPjPjPjPjPqnqnqnjxjxqnqnqnqnqnlaaWQzxogdgSbVaJPnqngIqnqnqnqnqntXtXtXtXsEVMtXqnqntXtXtXqnqnqnqngIqnlaaWQzxogdgSbVaJPnqnqnqnqnqnqnqnqnqnKMqnqnqnaNqntXqnqnqnqnjxqntXjxxOeeqnmhqnqnqnqnqnqnmhqndsFrFrWQqnmhiiFrFrFrFrFrYE
|
||||
FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrzCqnqnqnqnqnqnqnqnqnqnjxqnqnqnqnqnqnqnqnqntXqnqnqntXqnqnqnqnqnqnlaaWQzPnhXlabVaJPnlaDMPnqnqnqnqnjxtXtXtXjxsEVMtXtXVMtXjxqnYGqnlaDMPnlaaWQzPnZblabVaJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnjxqnqnqnqnqntXjxqnxOeeqnqnqnqnqnqnqnqnqnqndsFrFrFrWQhulPFrFrFrFrFrFr
|
||||
FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFruKqnqnqnqnqnqnqnqnqnqnqnqnaNqngIqnqntXqnqnjxqnqnqnjxqnqnqnqnqnqnlaaWQzmvgIPHbVaJPnqnirqnqngIqnqnqnjxjxgPqnZHgdjxjxgdjxqnqngIqnqnirqnlaaWQzmvgIPHbVaJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqngIqnqnqnqnqnjxqnqnxOeeqnqnqnqngIqnqnqnqnqnqnaEFrFrFrFrlPFrFrFrFrFrFr
|
||||
FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrpVVMPnqnqnqnqnqnqnqnqnqnqnqnqnlaVMPnqnjxqnqnqnqnqnqnqntXqnqnqnqnqnlaaWRRvlvlvlLDaJPnqnqnqnlaVMPnqnqnqnqnqnlaVMPnqnqnqnqnqnlaVMPnqnqnqnlaaWRRvlvlvlLDaJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMPnqnqnqnqnqnqnqnxOeeqnqnqnlaVMPnqnqnqnqnqndsFrFrFrFrlPFrFrFrFrFrFr
|
||||
FrFrFrFrFrFrlPFrFrFrFrFrFrFrLTlaVMPnqnqnqnqnqnqnqnqnqnqnqnqnlaVMPnqnqnqnqnqnaNqnqnqnjxqnqnqnqnqnlaXajDvmVMiNjDWSPnqnqnqnlaVMPnqnqnqnqnqnlaVMPnqnqnqnqnqnlaVMPnqnqnqnlaXajDvmVMiNjDWSvYqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMPnqnqnqnqnqnqnqnxOeeqnqnqnlaVMPnqnqnqnqnqnqnaEFrFrFrlPFrFrFrFrFrFr
|
||||
FrFrFrFrFrFrlPFrFrFrFrFrFrFrWQlaVMsYwMwMwMwMwMwMwMwMwMwMwMwMWkVMPnqnqnqnqnqnqnqnqnqnqnqnZbqnqnqnqnTzJOaWVMaJvywuwMwMwMwMWkVMPnqnqnqnqnqnlaVMPnqnqnqnqnqnlaVMsYwMwMwMwMwuzbaWVMaJaUzYqnqnqnqnqnqnqnqnqnqnZbqnqnqnqnlaVMsYwMwMwMwMwMwMwMyzRwwMwMwMWkVMPnqnqnqnqnqnqnqnjPjPaElPFrFrFrFrFrFr
|
||||
@@ -731,16 +737,16 @@ FrFrFrFrFrFrlPFrFrFrFrFrFrzCqndsFrFrWQqwjPaEFrFrFrzCqnqnqnqnqnqnqntXqnqnqnqnqnqn
|
||||
FrFrFrFrFrFrgvFrFrFrFrFrLTqnqndsFrFrFrFrWQhuFrFrFrzCqnqnqnqnqnqntXjxtXqnYGqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMVMVMPnqnqnqnqnqnqnqnqnqnqnYGPdTbVcxaoWtlieqnqnqnqnqnqnqnqnqnqnqnlaVMVMVMPnqnqnZbqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnxOeeqnqnqnqnqnqnqnqnqnqnqnqnqnqnhuFrlPFrFrFrFrFrFr
|
||||
FrFrFrFrFrFrgvFrFrFrFrLTqnqnqnqnaEFrFrFrFrFrFrFrLTqnqnKMqnqnqnqwaOqwaOqwqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMVMVMPnqnqnqnqnqnqnqnhXqnqnlaqyDOwPqnQtofhpPnqnqnqnqnqnqnqnqnqnqnlaVMVMVMPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnKMqnqnxOeeqnqnqnqnqnqnqnqnqnqnqnqnqndsFrFrlPFrFrFrFrFrFr
|
||||
FrFrFrFrFrFrgvFrFrFrFrzCqnqnqnqnqnaEFrFrFrLTjPjPqnqnqnqnqnqnhuFrFxFrFrFrWQqnqnqnqnqnhXqnqnqnqnqnqnqnlaVMVMtTPnqnYGqnqnqnqnqnqnqnqnlaaWWpPnqnlaCeaJPnqnZbqnqnqnqnqnqnqnqnlaaPVMVMPnqnaNqnqnqnqnqnqnqnhXqnqnqnqnqwqwqwqnqnqnqnqnaNqnqnqnxOeeqnhXqnqnqnqnqnqnqnqnqnqnqnhuFrFrlPFrFrFrFrFrFr
|
||||
FrFrFrFrFrFrgvFrFrFrFrzCqnqnqnqnqnqnjPjPjPqnqnqnqnYGqnqnqnhuFrFxFxFrFrFrFrWQqnqnqnqnqnqnqnqnqnqnqnqnlaVMVMWpieqnqnqnqnqnqnqnqnqnqnlaaWWpPnyvlaCeaJPnqnqnqnqnqnqnqnqnqnqnPdCeVMVMPnqnqnqnqnqnqnqnqnqnqnqnqnqnhuFrFrFrWQqnqnqnqnqnqnqnqnxOeeqnqnqnqnqntXtXqnqnqnqnqndsFrFrFrlPFrFrFrFrFrFr
|
||||
FrFrFrFrFrFrgvFrFrFrFrzCqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqndsFrFrFrFrFrFrFrFrFrzCqnqnqnqnqnqnqnqnqnqnqnlaaPVMRRfqiegIgIgIgIgIgIgIgIEtPdyFWpmvqnPHCecGiegIgIgIgIgIgIgIAKgIPdlqLDVMtTPnqnWVqnqnqnqnqnqnqwqwqwqwhuFrFrFrFrFrWQqwqwqnqnqnqnqnxOeeqnqnqnqnqntXtXqnqnqnqnqnhuFrFrFrlPFrFrFrFrFrFr
|
||||
FrFrFrFrFrFrgvFrFrFrLTqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqndsFrFrFrFrFrFrFrFrFrzCqnqnqnqnqnqnqnqnqngIqnlabVVMVMRRvlLDVMVMVpdyYmVMVMVMGhhjRRIJfjZELDGhhjVMVMVMVpdyYmVMVMRRvlLDVMVMWpPnqngIqnqnqnqnqndsFrFrFrFrFrFrFrFrFrFrFrFrFrzCqnqnqnqnxOeeqnqnqnqnqntXjxqnhXqnqndsFrFrFrFrlPFrFrLTaEFrFr
|
||||
FrFrFrFrFrFrgvFrFrFrFrzCqnqnqnqnqnqnjPjPjPqnqnqnqnYGqnqnqnhuFrFrLTaEFrFrFrWQqnqnqnqnqnqnqnqnqnqnqnqnlaVMVMWpieqnqnqnqnqnqnqnqnqnqnlaaWWpPnyvlaCeaJPnqnqnqnqnqnqnqnqnqnqnPdCeVMVMPnqnqnqnqnqnqnqnqnqnqnqnqnqnhuFrFrFrWQqnqnqnqnqnqnqnqnxOeeqnqnqnqnqntXtXqnqnqnqnqndsFrFrFrlPFrFrFrFrFrFr
|
||||
FrFrFrFrFrFrgvFrFrFrFrzCqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqndsFrFrLTqnqwjPaEFrFrzCqnqnqnqnqnqnqnqnqnqnqnlaaPVMRRfqiegIgIgIgIgIgIgIgIEtPdyFWpmvqnPHCecGiegIgIgIgIgIgIgIAKgIPdlqLDVMtTPnqnWVqnqnqnqnqnqnqwqwqwqwhuFrFrFrFrFrWQqwqwqnqnqnqnqnxOeeqnqnqnqnqntXtXqnqnqnqnqnhuFrFrFrlPFrFrFrFrFrFr
|
||||
FrFrFrFrFrFrgvFrFrFrLTqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqndsFrFrWQhuFrWQhuFrFrzCqnqnqnqnqnqnqnqnqngIqnlabVVMVMRRvlLDVMVMVpdyYmVMVMVMGhhjRRIJfjZELDGhhjVMVMVMVpdyYmVMVMRRvlLDVMVMWpPnqngIqnqnqnqnqndsFrFrFrFrFrFrFrFrFrFrFrFrFrzCqnqnqnqnxOeeqnqnqnqnqntXjxqnhXqnqndsFrFrFrFrlPFrFrLTaEFrFr
|
||||
FrFrFrFrFrFrgvFrFrFrzCqnqnqnqnqnqnqnqnaNqnqnqwqwqnqnqwqwqnaEFrFrFrFrFrFrFrLTqnqnqnqnqnqnqnqnqnlaDMPnlaWXaPVMVMVMVMVMVMWWfHXmVMVMVMVMVMVMRRQqLDVMVMVMVMVMVMWWfHXmVMVMVMVMVMVMVMdKPnlaDMPnqnhXqnqnhuFrFrFrFrFrFrLTaEFrFrFrFrFrWQqnqnqnqnxOeeqnZbqnqnqntXqnqnqnqnqndsFrFrFrFrlPFrLTqndsFrFr
|
||||
FrFrFrFrFrFrgvFrFrLTqnqnqnqnqnqnqnqnqnqwqwhuFrFrWQhuFrFrWQqnjPaEFrFrFrLTjPqnqnqnqnqnqnqnqnqnqnqnirqnqnQtNxeNaPVMVMVMVMJiGqDoVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMJiGqDoVMVMVMVMtTJkdKztqnqnirqnqnqnqndsFrFrFrFrLTjPjPqnqnaEFrFrFrFrFrzCqnqnqnxOeeqnqnqnqnqnjxqnqnqnqnqndsFrFrLTaElPFrzCqnhuFrFr
|
||||
FrFrFrFrFrFrgvFrFrzCqnqnqnhXqnqnqnqnhuFrFrFrFrFrFrFrFrFrFrWQqnqnjPjPjPqnqnqnqnqnqnqnqntXqnqnqnqnqnqnqnqnPCPCPCPCPCTzgdgdgdgdgdzYPCPCPCwFVMVMVMnAPCPCPCTzgdgdgdgdgdzYPCPCPCPCPCqnqnqnqnqnqnqnqnhuFrFrFrFrWQqnqnYGqndsFrFrFrFrFrzCYGqnqnxOeeqnqnqnqnqntXtXqnqnqnqndsFrFrWQdslPLTqndsFrFrFr
|
||||
FrFrFrFrFrFrgvFrFrzCqnqnqnqnqnqnqndsFrFrFrFrFrFrFrFrFrFrFrFrzCqnqnqnqnqnqnqnqnqnqnqntXjxqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnPHVMVMVMmvqnqnqnqnqnqnZbqnqnqnqnqnqnqnqnqnqnqnqnqnqnqndsFrFrFrFrFrFrWQaNqnqndsFrFrFrFrFrzCqnqnqnxOeeqnqnaNqnqntXtXqnqnqnqndsFrFrFrzCVgqnqndsFrFrFr
|
||||
FrFrFrFrFrFrgvFrFrzCqnqnqnqnqnqnqndsFrFrFrFrFrFrFrFrFrFrFrFrzCqnqnqnqnqnqnqnqnqnqnqntXtXqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnYGqnqnqnqnqnqnPHVMVMVMVMVMmvqnqnqnqnqnqnqnqnqnqnqnqnqnhXqnqnqnZbqnqnqndsFrFrFrFrFrFrFrmMqwqwhuFrFrFrFrFrzCqnqnqnxOeeqnqnqnqnqntXjxqnqnqnqndsFrFrFrWQzUqwqwhuFrFrFr
|
||||
FrFrFrFrFrFrgvFrFrzCqnqnqnqnqnqnqndsFrFrFrFrFrFrFrFrFrFrFrFrzCqnqnqnqnqnqnqnaNqnqnqnjxjxFfKMqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMVMMhEmCwVMVMPnqnqnqnqnqnqnqnqnqwqwqwqnqnqnqnqnqnqnqnqnqnaEFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrzCqnqnqnxOeeqnqnqnqnqntXtXqnqnqnqnqnaEFrFrFrlPFrFrFrFrFrFr
|
||||
FrFrFrFrFrFrgvFrLTqnqnqnqnqnZbqnqnqnaEFrFrFrFrFrFrFrFrFrFrLTqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqwqwqwqnqnqwqwqnqnqngIlaFgxozYgITzgSciPngIaNqnqnqnqnqndsFrFrFrWQqnqnqnqnqnqnqnZbqnqnaEFrFrFrFrFrFrFrFrFrFrFrFrFrLTqnqnqnqnxOeeqnqnqnqnqntXtXqnqnqnqnqndsFrFrFrlPFrFrFrFrFrFr
|
||||
FrFrFrFrFrFrgvFrFrzCqnqnqnhXqnqnqnqnhuFrFrFrFrFrFrFrFrFrFrWQqnqnjPjPjPqnqnqnqnqnqnqnqntXqnqnqnqnqnqnqnqnPCPCPCPCPCTzgdgdgdgdgdzYPCPCPCuvVMVMVMMuPCPCPCTzgdgdgdgdgdzYPCPCPCPCPCqnqnqnqnqnqnqnqnhuFrFrFrFrWQqnqnYGqndsFrFrFrFrFrzCYGqnqnxOeeqnqnqnqnqntXtXqnqnqnqndsFrFrWQdslPLTqndsFrFrFr
|
||||
FrFrFrFrFrFrgvFrFrzCqnqnqnqnqnqnqndsFrFrFrFrFrFrLTaEFrFrFrFrzCqnqnqnqnqnqnqnqnqnqnqntXjxqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnPHVMVMVMmvqnqnqnqnqnqnZbqnqnqnqnqnqnqnqnqnqnqnqnqnqnqndsFrFrFrFrFrFrWQaNqnqndsFrFrFrFrFrzCqnqnqnxOeeqnqnaNqnqntXtXqnqnqnqndsFrFrFrzCVgqnqndsFrFrFr
|
||||
FrFrFrFrFrFrgvFrFrzCqnqnqnqnqnqnqndsFrFrFrFrLTjPqnqnaEFrFrFrzCqnqnqnqnqnqnqnqnqnqnqntXtXqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnYGqnqnqnqnqnqnPHVMVMVMVMVMmvqnqnqnqnqnqnqnqnqnqnqnqnqnhXqnqnqnZbqnqnqndsFrFrFrFrFrFrFrmMqwqwhuFrFrFrFrFrzCqnqnqnxOeeqnqnqnqnqntXjxqnqnqnqndsFrFrFrWQzUbGqwhuFrFrFr
|
||||
FrFrFrFrFrFrgvFrFrzCqnqnqnqnqnqnqndsFrFrFrFrWQqwhXqnhuFrFrFrzCqnqnqnqnqnqnqnaNqnqnqnjxjxFfKMqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMVMMhEmCwVMVMPnqnqnqnqnqnqnqnqnqwqwqwqnqnqnqnqnqnqnqnqnqnaEFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrzCqnqnqnxOeeqnqnqnqnqntXtXqnqnqnqnqnaEFrFrFrlPFrFrFrFrFrFr
|
||||
FrFrFrFrFrFrgvFrLTqnqnqnqnqnZbqnqnqnaEFrFrFrFrFrWQhuFrFrFrLTqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqwqwqwqnqnqwqwqnqnqngIlaFgxozYgITzgSciPngIaNqnqnqnqnqndsFrFrFrWQqnqnqnqnqnqnqnZbqnqnaEFrFrFrFrFrFrFrFrFrFrFrFrFrLTqnqnqnqnxOeeqnqnqnqnqntXtXqnqnqnqnqndsFrFrFrlPFrFrFrFrFrFr
|
||||
FrFrFrFrFrFrgvFrzCqnqnqnqnqnqnqnqnqnqnjPaEFrFrFrFrFrFrLTjPqnqntXqnqnqntXtXqnqnqnqnqnqnqnqnqnqnZbqnqnqnqnqnhuFrFrFrWQhuFrFrWQqnlaDMPndWqnlafHPnqndWlaDMPnqnqnqnqnqwhuFrFrFrFrzCqnqnqnqnqnqnqnqnqndsFrFrFrFrFrFrFrFrFrFrFrFrFrzCqnZbqnqnxOeeqnqnqnqnqnjxtXqnqnZbqnqnqnaEFrFrlPFrFrFrFrFrFr
|
||||
FrFxFrFrFrFrlPLTqnqnqnqnYGqnqnqnqnqnqnqnqnaEFrFrFrFrLTqnqnqntXjxtXtXtXtXtXtXqnqnqnqnqnqnqnqnqnqnqnqnqnqndsFrFrFrFrFrFrFrFrFrzCqnirlaGLmvgIirgIPHrKPnirqnqnqnighuFrFrFrFrFrFrzCYGqnqnqnqnqnqnqnqnqnjPjPjPaEFrFrFrFrFrFrLTjPjPqnqnqnqnqnxOeeqnqnqnqnqnqnjxqnqnqnqnqnqndsFrFrlPFrFrFrFrFrFr
|
||||
FrFxFrFrFxFrkoqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnaEFrFrLTqnqnqnqnjxqnjxjxjxjxjxjxqnqnqnhXqnqnqnqnqnqnqnqnqnqnqnaEFrFrFrFrFrFrFrFrzCqnqnlaGfvmCwfjKDiNDbPnqnqnWVdsFrFrFrFrFrFrLTjPqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnjPaEFrFrLTjPqnqnqnqnqnqnqnqnxOeeqnqnqnqnqnqnqnqnqnqnqnqnqnqnaEFrlPFrFrFrFrFrFr
|
||||
@@ -756,30 +762,30 @@ HiHiHiHiHiHiPNHiGoUrUrUrGoHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHi
|
||||
HiHiHiHiHiHiPNHiGoGoGoGoGoHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiUZUZUZGoGoHiHiHiHiHiHiHiHiuWuWdGXmaAuWuWHiHiHiHiHiHiHiHiGoGoUZUZUZHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiGoGoGoGoGoHiPNHiHiHiHiHiHi
|
||||
HiHiHiHiHiHiPNHiGoGoGoGoGoHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiCMCMCMUZUZHiHiHiHiHiHiHiHiWKWKNnXmGlWKWKHiHiHiHiHiHiHiHiUZUZCMCMCMHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiGoGoGoGoGoHiPNHiHiHiHiHiHi
|
||||
HiHiHiHiHiHiPNHiGoUZUZUZGoHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiZqQRfNdtCMCMHiHiHiHiHiHiHiHiBBBBBBUrBBBBBBHiHiHiHiHiHiHiHiCMCMfNdtpuXbHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiGoUZUZUZGoHiPNHiHiHiHiHiHi
|
||||
HiHiHiHiHiHiPNHiGoCMCMCMGoHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiZqdRhjGhDldtZCZCZCZCZCZCZCZChkhcDJGohkhchctutututututututufNDlhjGhmNXbHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiGoCMCMCMGoHiPNHiHiHiHiHiHi
|
||||
HiHiHiHiHiHiPNHiHnQRlQpuxdHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiZqXavmVMVMaJuDuDuDuDuDuDuDuDaWVMaJGoaWVMVMTMTMTMTMTMTMTMTMaWVMVMiNWSXbHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHnQRlQpuxdHiPNHiHiHiHiHiHi
|
||||
HiHiHiHiHiHiPNHiGoCMCMCMGoHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiZqdRhjGhDldtZCZCZCZCZCZCZCZChkhcDJGohkhcDJtutututututututufNDlhjGhmNXbHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiGoCMCMCMGoHiPNHiHiHiHiHiHi
|
||||
HiHiHiHiHiHiPNHiHnQRlQpuxdHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiZqXavmVMVMaJuDuDuDuDuDuDuDuDaWVMaJGoaWVMaJTMTMTMTMTMTMTMTMaWVMVMiNWSXbHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHnQRlQpuxdHiPNHiHiHiHiHiHi
|
||||
HiHiHiHiHiHiPNHiHnXmfHXmxdHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiZqGLGfjDjDDbDVCsCsCsCsCsCsCsuWuWuWGouWuWuWCsCsCsCsCsCsCsCrGfjDjDDbrKXbHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHnXmfHXmxdHiPNHiHiHiHiHiHi
|
||||
HiHiHiHiHiHiPNHiHnGLdyrKxdHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHioioioioioiHiHiHiHiHiHiHiHiuWuWuWGouWuWuWHiHiHiHiHiHiHiHioioioioioiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHnGLdyrKxdHiPNHiHiHiHiHiHi
|
||||
HiHiHiHiHiHiPNHiGooioioiGoHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiGoGoGoGoGoHiHiHiHiHiHiHiHiuWuWuWGouWuWuWHiHiHiHiHiHiHiHiGoGoGoGoGoHiHiHiHiHiHiHiHiHiHiHiHirgytrgHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiGooioioiGoHiPNHiHiHiHiHiHi
|
||||
HiHiHiHiHiHiPNHiUZGoGoGoUZHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiUZUZUZUZUZHiHiHiHiHiHiHiHiWKWKWKGoWKWKWKHiHiHiHiHiHiHiHiUZUZUZUZUZHiHiHiHiHiHiHiHiHiHiHiHikTxAkTHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiUZGoGoGoUZHiPNHiHiHiHiHiHi
|
||||
HiHiHiHiHiHiPNHiCMUZUZUZCMHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiCMCMCMCMCMHiHiHiHiHiHiHiHiBBBBBBGoBBBBBBHiHiHiHiHiHiHiHiCMCMCMCMCMHiHiHiHiHiHiHiHiHiHiHiHimWmWmWHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiCMUZUZUZCMHiPNHiHiHiHiHiHi
|
||||
mWmWmWuojKjKdkjMhcCMCMCMhcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLchchchchchcLcLcLcLcLcLcLcLcFBhcXMUZlHhcSLLcLcjMjMjMjMLcLchchchchchcLcLcLcLcLcLcLcLcLcLcLcLcmWmWmWLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcjMhcCMCMCMhcLcKTjKjKYCmWmWmW
|
||||
fufufuwrwrwrGEUsVMhchchcVMZaSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMPCPCPCPCPCSMSMSMSMSMSMSMADARVMAyCMgyVMeJZaSMSMSMSMSMSMSMPCPCPCPCPCSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMUsVMhchchcVMZaGEwrwrwrSMSMSM
|
||||
qwqwqnqnqwqwozqnPCPCPCPCPCqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaARVMAyFQgyVMeJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnPCPCPCPCPCqnozqwqwqwqwqwqw
|
||||
FrFrWQhuFrFrihqngIgIqnqnqnqnqnqnqngIqnqnqnqnqnqngIqnqnqnqnqnqngIqnqnqnqnqnqngIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnFflaARVMAyNzgyVMeJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqngIqnqnqnqnqnqngIqnqnqnqnqnqngIqnqnqnqnqnqngIqnqnqnqnqnqnqngIgIqnqwiiFrFrFrFrFrFr
|
||||
FrFrFrFrFrFrlPPUFgciPnqnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaARVMAyLsgyVMeJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnhXqnqnqnqnYGqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnZbqnlaFgciNUFrlPFrFrLTaEFrFr
|
||||
FrFrFrFrFrFrlPPUGLrKPnqnqnaNqnqnqnirqnqnqnqnqnqnirqnqnqnqnqnqnirqnqnqnqnqnqnirqngIEtgIqnqnqnqnqnqnqnqnqnqngIgIgIgIqnqnqnqnqnqnqnqnlaARVMMgAebqVMeJPnqnqnqnqnqnqnqnqngIgIgIgIYGqnqnqnqnqnqnqnqnqngIgIgIqnirqnqnqnaNqnqnirqnqnqnqnqnqnirqnqnqnqnqnqnirqnqnqnqnqnqnlaGLrKYLFrlPLTjPqndsFrFr
|
||||
mWmWmWuoTTTTdkjMhcCMCMCMhcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLchchchchchcLcLcLcLcLcLcLcLcFBhcXMUZlHhcSLLcLcjMjMjMjMLcLchchchchchcLcLcLcLcLcLcLcLcLcLcLcLcmWmWmWLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcjMhcCMCMCMhcLcKTTTTTYCmWmWmW
|
||||
fufufufcfcfcRfymVMhchchcVMoXSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMTzgdgdgdzYSMSMSMSMSMSMSMADARVMAyCMgyVMeJZaSMSMSMSMSMSMSMTzgdgdgdzYSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMUsVMhchchcVMZaRffcfcfcSMSMSM
|
||||
qwqwqnqnqwqwozqnTzgdgdgdzYqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaARVMAyFQgyVMeJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnTzgdgdgdzYqnozqwqwqwqwqwqw
|
||||
FrFrWQhuFrFrihqngIgIqnqnqnqnqnqnqngIqnqnqnqnqnqngIqnqnqnqnqnqngIqnqnqnqnqnqngIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqngIqnqnqnqnqnqnqngIFflaARVMAyNzgyVMeJPnqngIqnqnqnqnqnqnqngIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqngIqnqnqnqnqnqngIqnqnqnqnqnqngIqnqnqnqnqnqngIqnqnqnqnqnqnqngIgIqnqwiiFrFrFrFrFrFr
|
||||
FrFrFrFrFrFrlPPUFgciPnqnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaDMPnqnqnqnqnqnlaDMPnlaARVMAyLsgyVMeJPnlaDMPnqnqnqnqnqnlaDMPnqnqnqnqnqnqnqnhXqnqnqnqnYGqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnZbqnlaFgciNUFrlPFrFrLTaEFrFr
|
||||
FrFrFrFrFrFrlPPUGLrKPnqnqnaNqnqnqnirqnqnqnqnqnqnirqnqnqnqnqnqnirqnqnqnqnqnqnirqngIEtgIqnqnqnqnqnqnqnqnqnqngIgIlxgIqnqnqnqnqnqnirqnlaARVMMgAebqVMeJPnqnirqnqnqnqnqnqngIlxgIgIYGqnqnqnqnqnqnqnqnqngIgIgIqnirqnqnqnaNqnqnirqnqnqnqnqnqnirqnqnqnqnqnqnirqnqnqnqnqnqnlaGLrKYLFrlPLTjPqndsFrFr
|
||||
FrFrFrFrFrFrlPWQTzzYgIgIqnqnqnqnqnqnqnKMqnqnqnqnqnqnKMqnqnqnaNqnqnKMqnqnqnqngIPdcUvlnQiegIqnqnqnqnqnqnqnlaFgqyDuhpieqnqnqnqnqnqnqnPHVdApcfdTApdThwmvqnqnqnqnqnqnqnPHqyDuhpciPnqnqnqnqnqnqnqngIPHcUvlnQmvgIqnKMqnqnqnqnqnqnKMqnqnqnYGqnqnKMqnqnqnqnqnqnqnqnqnqngIgITzYyFrFrlPzCqnqnhuFrFr
|
||||
FrFrFrLTaEFrlPFrzCPdvlvlieqnqnqnqnqnqntXqnqnqnqnqnqntXqnqnqnqnqnqnqnqnqnqnlaqyDuDuDuDuDuhpPnqnqnqnqnqnqnqnQtaWVMGhhpPnqnqngIFfqnlaZEVMiNDbIkGfvmVMIJPnqnqngIqnqnlaqyhjVMaJwPqnqnqnqnqnqntXlaqyDuDuDuDuDuhpPnqnZbqnqnhXqnqnqntXtXtXqnqnqnqnqnZbqnqnhXqnqnaNqnPHqyhpmvdsFrFrkoqnqndsFrFrFr
|
||||
FrFrFrzCqnaElPFrPUVMQzwLgzPnqnqnqnqnqntXtXqnqnqntXqnjxqnqnqnqnqntXqnqnqnqnlaDyCwVMVMVMCwQpPntXqnqnqnqnqnqnHaorCwCweaPnqnlafHPnqnlaYvCwaJwPqnQtaWCwTRPnqnlafHPnqnlayWCwCwajPnqnqnqnqnqnZbjxlahdCwVMVMVMCwboPnqntXqntXqnqnqnqnjxtXjxaNqnqntXqnqntXqnqnqnqnqnlaPkPpSNDzNUFrFrihqnqndsFrFrFr
|
||||
FrFrFrzCqnhulPFrzCrjeNeNFwqnqnqnqnqnqnjxjxqnqnqntXqnYGqnqnqnqnqnjxqntXqnqnlaGfjDjDjDjDjDDbPnjxqnqnqnqnqnqnPHaWVMiNDbPnqnqnirqnqnlaZQvmaJmvqnPHaWiNoVPnqnqnirqnqnlaGfvmVMaJmvqnqnqnqnqnqnqnlaGfjDjDjDjDjDDbPnqntXtXjxqnqntXqnhXjxqntXqntXjxtXqnjxqnqnqnqnqnqncHGfDbCnqnaEFrlPWQqnqnaEFrFr
|
||||
FrFrFrWQhuFrlPLTgIgIIFPCqnqnKMqnqnqnqnqnqnZbqnqnjxqnqnqnqnqnqnqnqnqnjxqnqnqnTzuveAJkduMuzYqnqnqnKMqnqnqnlaGLGfjDDbnAqnqnqnqnqnqnqnSJaWGhoFfjdjhjaJztqnqnqnqnqnqnqnOIGfjDDbrKPnKMqnqnqnqnqnqnTzJOeAJkduaUzYqnqngPjxqnqnqnjxqnqnqnqnjxqnjxqnjxqnqnqnKMqnqnqnhXqnPCPCgIgIgIaEruFrzCqnqnaEFr
|
||||
FrFrFrFrFrFrlPPUVpdyYmPnqnqnqnqnqngIqnqnqnqnqnqngIqnqnqnqnqnqngIZbqnqnqnqnqngIqnPCPCPCqnqnqnqnqnqnqnqnqnqnTzgdgdzYqnqnqnqnqnqnqnqnlaaWVMGhDuhjVMaJPnqnqnqnqnqnqnqnqnTzgdgdzYqnqnqnqnqnqnqnqnqnZbPCPCPCqngIWVqnqnqnqnqngIqnqnqnqnZbqngIqnqnqnqnqnqngIqnqnqnqnqnqnlatTJkaPNUlPFrzCqnqnhuFr
|
||||
FrFrFrFrFrFrkolaWWXKXmPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnYGqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaaWtTJkVMJkaPaJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnhXqnqnqnqnqnqnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnqnlaWpDMCeNUlPFrWQqwhuFrFr
|
||||
FrFrFrFrFrFrihlaJiGqDoPnqnqnqnqnqnirqnqnqnqnqnqnirqnqnqnqnqnqnirqnqnqnqnqnqnirqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaaWWpoKQqoKCeaJPnqnWVqnqnqnqnqnqnqnqnqnqnqnqnqnYGqnqnqnqnqnqnqnqnqnqnirqnqnaNqnqnqnirqnqnqnqnqnqnirqnqnYGqnqnqnirqnqnqnqnqnqnlaRRQqLDYLlPFrFrFrFrFrFr
|
||||
FrFrLTaEFrFrlPzCTzgdzYqnqnqnqnqnqnqnqnKMqnqnqnqnqnqnKMqnqnqnqnqnqnKMqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaaWWpmvirPHCeaJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnaNqnqnqnTDqnqnqnqnqnqnKMqnaNqnqnqnqnKMqnqnqnqnqnqnqnqnqnhXqnqnTzgdKLFrlPFrFrFrFrFrFr
|
||||
FrFrWQqnaEFrlPzCqnqnqnqnqnhXqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaaWVMpbDFEWVMaJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnZbqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnaNqnqnqnqnqnqnqnqnhuFrFrlPFrFrFrFrFrFr
|
||||
FrFrFrWQhuFrlPzCqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnPdaWWpztgISJCeaJieqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnhXqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnhuFrFrFrlPFrFrFrFrFrFr
|
||||
FrFrFrWQhuFrlPLTgIgIIFPCqnqnKMqnqnqnqnqnqnZbqnqnjxqnqnqnqnqnqnqnqnqnjxqnqnqnTzuveAJkduMuzYqnqnqnKMqnqnqnlaGLGfjDDbnAqnqnqnqnqnqnqnSJaWGhoFfjdjhjaJztqnqnqnqnqnqnqnOIGfjDDbrKPnKMqnqnqnqnqnqnTzJOeAJkduaUzYqnqngPjxqnqnqnjxqnqnqnqnjxqnjxqnjxqnqnqnKMqnqnqnhXqnPCPCgIgIgIaEruFrzCZbqnaEFr
|
||||
FrFrFrFrFrFrlPPUVpdyYmPnqnqnqnqnqngIqnqnqnqnqnqngIqnqnqnqnqnqngIZbqnqnqnqnqngIqnPCPCPCqnqnqnqnqnqnqnqnqnqnTzgdUlzYqnqnqnqnqnqnqnqnlaaWVMGhDuhjVMaJPnqnqnqnqnqnqnqnqnTzUlgdzYqnqnqnqnqnqnqnqnqnZbPCPCPCqngIWVqnqnqnqnqngIqnqnqnqnZbqngIqnqnqnqnqnqngIqnqnqnqnqnqnlatTJkaPNUlPFrzCqnqnhuFr
|
||||
FrFrFrFrFrFrkolaWWXKXmPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnYGqnqnqnqnqnqnqnqnqnqnqnlaDMPnqnqnqnqnqnqnqnqnlaaWtTJkVMJkaPaJPnqnqnqnqnqnqnqnqnlaDMPnqnqnqnhXqnqnqnqnqnqnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnqnlaWpDMCeNUlPFrWQqwhuFrFr
|
||||
FrFrFrFrFrFrihlaJiGqDoPnqnqnqnqnqnirqnqnqnqnqnqnirqnqnqnqnqnqnirqnqnqnqnqnqnirqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnirqnqnqnqnqnqnqnqnqnlaaWWpoKQqoKCeaJPnqnWVqnqnqnqnqnqnqnirqnqnqnqnqnYGqnqnqnqnqnqnqnqnqnqnirqnqnaNqnqnqnirqnqnqnqnqnqnirqnqnYGqnqnqnirqnqnqnqnqnqnlaRRQqLDYLlPFrFrFrFrFrFr
|
||||
FrFrLTaEFrFrlPzCTzgdzYqnqnqnqnqnqnqnqnKMqnqnqnqnqnqnKMqnqnqnqnqnqnKMqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqngIqnlaaWWpmvirPHCeaJPnqngIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnaNqnqnqnTDqnqnqnqnqnqnKMqnaNqnqnqnqnKMqnqnqnqnqnqnqnqnqnhXqnqnTzgdKLFrlPFrFrFrFrFrFr
|
||||
FrFrWQqnaEFrlPzCqnqnqnqnqnhXqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaDMPnlaaWVMpbDFEWVMaJPnlaDMPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnZbqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnaNqnqnqnqnqnqnqnqnhuFrFrlPFrFrFrFrFrFr
|
||||
FrFrFrWQhuFrlPzCqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnirqnPdaWWpztgISJCeaJieqnirqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnhXqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnhuFrFrFrlPFrFrFrFrFrFr
|
||||
FrFrFrFrFrFrkoqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnPdMghjWpeyeNeyCeGhItieqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqndsFrFrFrFrlPFrFrFrFrFrFr
|
||||
jPjPjPjPjPjPozqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlabVVMVMRRQqVMQqLDVMVMWpPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnYGqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnjPjPjPjPVgjPjPjPjPjPjP
|
||||
wMwMwMwMwMwMGawMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwEJkGlNneNeNeNGlNnJkvKwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMGawMwMwMwMwMwM
|
||||
@@ -801,24 +807,24 @@ FrFrFrFrFrLTPAFrLTaEFrFrFrFrFrzCdsFrFrFrFrFrFrEKFrFrFrFrFrzCqnjxqnqndsFrFrzCqnaE
|
||||
FrFrFrFrFrWQozryqndsFrFrFrFrFrWQdsFrFrFrFrFrFrEKFrFrFrFrFrzCqnqntXqndsFrFrzCqndsFrFrFrFrWQqnqndsFrFrFrLTjPjPqnsrqnqnqnEqCeaJfHaWVMaJPnqnlaDMPnqnlaaWVMaJfHaWQzWPsrqnqnqnqnjxtXqnUiFrFrFruUeoFrFrFrFrzCtXaEFrFrFrFrFrFrFrFrFrFrFrFrLTgAVxVMMtqnVsqngAWWgWrHjXWWMtqnVsqngAVMVxMtjPqndsFrFx
|
||||
FrFrFrFrFrhzEbqbPnqnhWaEFrFrriFrEKFrFrFrLTNsNshuFrFrFrLTjPgIPdbVjxqndsFrFrWQqndsFrFrFrFrFrWQjphuFrFrFrWQqnqnqnqnqnqwqwEqCeGhDuoRvmaJPnqnqntDqnqnlaaWiNwxDuhjQzVeJqqwqwRcqntXtXqndsFrFrFrRSeoFrFrFrFrWQjxtXjPjPjPjPaEFrFrFrFrFrFrLTqnqnAGVMMtaNjxqngAGLGqGqGqrKMtqnjxqngAVMRdqnqnqwqnaEFr
|
||||
FrFrFrFrFrLTozOiqndsFrzCjPaEFrLTdsFrFrFrVQFrFrFrFrFrFrWQlaZEQqsEjEqnqnaEFrFrzCdsFrFrFrFrFrFrFrFrFrFrFrFrzCqnqnqndsFrFrWQFbgCJuuvaWaJPnqnqnqnqnqnlaaWaJaUgdYaTFhuFrFrFrzCqnjxtXqndsFrFrFrUcMkFrFrFrFrFrzCtXtXtXtXqndsFrFrFrFrFrFrWQqngAVxVMMtqnqnqnqnREuWuWuWREqnqnqnqngAVMVxMtdsFrzCdsFr
|
||||
FrFrFrFrFrWQiiFrWQhuFrWQqwqwdaqwhuFrFrFrEKFrFrFrFrFrFrFrOatteNtXMDsrtXqnrRrRqndsFrFrFrFrFrFrFrFrFrFrFrFrWQjZqnqndsFrFrFrFrFrFrOaaWaJPnqnqnqnqnqnlaaWaJPndsFrFrFrFrFrFrWQqnqwaOqndsFrFrFrFrzCjPjPaEFrFrWQaOaOaOlWqndsFrFrFrFrFrFrFrFrXXVxMbqnqnqnqnqnVsuWuWuWVsqnqnqnqnqnAAVxMtqnjPqndsFr
|
||||
FrFrFrFrFrWQiiFrWQhuFrWQqwqwdaqwhuFrFrFrEKFrFrFrFrFrFrFrOatteNtXMDsrtXqnrRrRqndsFrFrFrFrFrFrFrFrFrFrFrFrWQjZqnqndsFrFrFrFrFrFrOaaWaJPnqnqnqnqnqnlaaWaJPndsFrFrFrFrFrFrWQqnigaOqndsFrFrFrFrzCjPjPaEFrFrWQaOaOaOlWqndsFrFrFrFrFrFrFrFrXXVxMbqnqnqnqnqnVsuWuWuWVsqnqnqnqnqnAAVxMtqnjPqndsFr
|
||||
FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrFrFrFrrbEKFrFrFrFrFrFrFrWQgCgdtXtXtXjxdsUcUczCdsFrFrFrFrFrFrFrFrFrFrFrFrFrFrzCqndsFrFrLTaEFrFrOaaWaJPnqnqngIqnqnlaaWaJPnhuFrFrFrFrFrFrFrEKFrFrzCqnNsrRrRrRqnqnqnqnaEFrFrFrFrFrUcWQqnjPjPjPjPjPjPjPjPgAVxDeqnqnqnqnqnplhVApRFjOqnqnqnqnqnNLVxMtqnqnqnhuFr
|
||||
FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrFrFrFrrbWQhWaEFrFrFrFrFrFrFrqWjxjxtXqnqnaEFrzCdsFrFrFrFrFrFrFrFrFrFrFrFrFrFrzCqnqnjPjPqndsFrFrOaaWaJPnqnlaDMPnqnlaaWaJNUFrFrFrFrFrFrFrFrEKFrFrzCdsFrUcUcUczCqnRcqnqnaEFrFrFrFrFrFrzCqnqnqntXtXqnqntXgAVxVMMtKMqnqnqnlaeJfHgyPnKMqnqnqngAVMVxMtqnqnhuFrFr
|
||||
FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrFrFrFrhzFrriEKFrFrFrFrFrFrFrFrWQqnjxqwqwhuFrzCdsFrFrLTaEFrFrFrFrFrFrFrFrFrFrzCqnqnqnqnjphuFrLTlaaWaJmvqnqntDqnqnPHaWaJNUFrFrFrFrFrFrFrFrEKFrFrWQdsFrFrFrFrWQqnjEqnqndsFrFrFrFrFrLTqnqnqnqnjxlWlWlWaOqnAGVMMtqnqnqnqnRGPBBFHmPnqnqnqnqngAVMRdqnqnhuFrFrFx
|
||||
FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrEKFrFrFrFrFrFrFrFrFrzCdsFrFrFrFrzCdsFrLTqndsFrFrFrFrFrFrFrFrFrFrWQqwtXqndsFrFrFrWQlayJaJcimvgIgIgIPHFgaWJgNUFrFrFrFrFrFrLTjPdsFrFrFrzCaEFrFrFrFryuqnqnqwhuFrFrFrFrFrzCsrqnqwqwhuUcUcUcFrXXVxVMMtqngIqnqnlaGBsaNDPnqnqngIqngAVMVxMthuFrFrFrFr
|
||||
FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrFrFrFrFrLTNshuFrFrFrFrFrFrFrFrFrzCdsFrFrLTjPqnqnJztXqnqnjPjPjPjPjPJzaEFrFrFrFrFrKYtXeoFrFrFrFrOaaWGhDuDuhpfHqyDuDuhjaJPnaEFrFrFrFrFrzCqnhuFrFrFrzCqnaEFrFrFrWQlWhuFrFrFrFrFrLTjPqnRcUJFrFrFrFrFrFrLTgAVxMbqnlaDMPnqnlanWSRLzPnqnlaDMPnqnAAVxmCFrFrFrFrFr
|
||||
FrFrFrFrFrFrlPFrFrFrFrFrLTjPaEFrFrFrFrrbWQhWaEFrFrFrFrFrFrFrqWjxjxtXqnqnaEFrzCdsFrFrFrFrFrFrFrFrFrFrFrFrFrFrzCqnqnjPjPqndsFrFrOaaWaJPnqnlaDMPnqnlaaWaJNUFrFrFrFrFrFrFrFrEKFrFrzCdsFrUcUcUczCqnRcqnqnaEFrFrFrFrFrFrzCqnqnqntXtXqnqntXgAVxVMMtKMqnqnqnlaeJfHgyPnKMqnqnqngAVMVxMtqnqnhuFrFr
|
||||
FrFrFrFrFrFrlPFrFrLTaEFrzCqnqwjPjPaEFrhzFrriEKFrFrFrFrFrFrFrFrWQqnjxqwqwhuFrzCdsFrFrLTaEFrFrFrFrFrFrFrFrFrFrzCqnqnqnqnjphuFrLTlaaWaJmvqnqntDqnqnPHaWaJNUFrFrFrFrFrFrFrFrEKFrFrWQdsFrFrFrFrWQqnjEqnqndsFrFrFrFrFrLTqnqnqnqnjxlWlWlWaOqnAGVMMtqnqnqnqnRGPBBFHmPnqnqnqnqngAVMRdqnqnhuFrFrFx
|
||||
FrFrFrFrFrFrlPFrFrWQhuFrWQhuFrWQqndsFrFrFrFrEKFrFrFrFrFrFrFrFrFrzCdsFrFrFrFrzCdsFrLTqndsFrFrFrFrFrFrFrFrFrFrWQqwtXqndsFrFrFrWQlayJaJcimvgIgIgIPHFgaWJgNUFrFrFrFrFrFrLTjPdsFrFrFrzCaEFrFrFrFryuqnqnqwhuFrFrFrFrFrzCsrqnqwqwhuUcUcUcFrXXVxVMMtqngIqnqnlaGBsaNDPnqnqngIqngAVMVxMthuFrFrFrFr
|
||||
FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrWQhuFrFrLTNshuFrFrFrFrFrFrFrFrFrzCdsFrFrLTjPqnqnJztXqnqnjPjPjPjPjPJzaEFrFrFrFrFrKYtXeoFrFrFrFrOaaWGhDuDuhpfHqyDuDuhjaJPnaEFrFrFrFrFrzCqnhuFrFrFrzCqnaEFrFrFrWQlWhuFrFrFrFrFrLTjPqnRcUJFrFrFrFrFrFrLTgAVxMbqnlaDMPnqnlanWSRLzPnqnlaDMPnqnAAVxmCFrFrFrFrFr
|
||||
WjWjWjWjWjWjNuWjOHeXeXIRWjWjWjWjWjWjWjWjzhWjWjWjWjWjWjWjWjWjFrFrgxqnhWhWqwqwqwqwldtXqnqwqwlWchqwqwjxdsFrFrFrFrFrzCjxUiFrFrFrLTlaGfjDjDjDdwGqvnjDjDjDDbPndsFrFrFrFrFrzCdsFrFrFrFrWQqnqnaEFrFrFrUcFrFrFrFrFrFrzCqnqnqwhuFrFrFrFrFrLTqngAVxDeTvTvtDTvTvTvAWKGbKTvOxTvtDTvTvNLVxmCFrFrFrFrFr
|
||||
nXnXGvnXnXnXEYnXMisXsXVZnXnXnXGvnXnXnXnXzuGvnXnXnXnXnXnXGvnXEzFrmodsFrFrFrFrFrFrUcKYdsFrFrUcFrFrFrzCdsFrFrFrFrFrzCqndsFrFrFrWQqnPCPCPCPCPCPCPCPCPCPCPCqnhuFrFrFrFrFresdsFrFrFrFrFrzCqnqnjPjPjPaEFrFrFrLTjPjPqnqndsFrFrFrFrFrFrFrqnqnuAVxVxVxVxxRVxVxVxVxxRVxVxVxVxxRVxVxVxVxmCFrFrFrFrFr
|
||||
FrFrcSFrFrFrlPFrFKaNdsFrLTClClxKClClaEFrEKiJFrFrFrLTClaEiJFrRnKxjEdsFrFrFrFrFrFrFrzCdsFrFrFrFrFrFrzCqnaEFrFrLTjPqnqndsFrFrFrFrzCqnqwqwqnqnWVqnqwqwqwqwhuFrFrFrFrFrFrXzdsFrFrFrFrFrWQqntXtXtXjEqnJzJzJzqngIgIqwqwhuFrFrFrFrFrFrLTqnqwtXUrUrUrPJTvPJUrUrPJTvPJUrUrPJTvPJUrUrIeqnaEFrFrFrFr
|
||||
FrLTICaEFrFrlPLTzNqnhuFrOaugVMzOVMAPbbFrzCDfFrFrFrOafHNUiJFrKZeeqnqnaEFrFrLTjPjPjPqnhuFrFrLTjPjPjPqnqntXjPjPqnqnqnqndsFrFrLTjPqnhuFrFrWQqnqndsFrFrFrFrFrFrFrFrFrFrFrFrEKFrLTjPaEFrFrWQaOaOlWHXlWlWlWaOlujTtJsVFrFrFrFrLTaEFrLTqnhuFrqlUZUZfTVxVxVxCjfTVxVxVxCjfTVxVxVxCjUZHUqnqnaEFrFrFr
|
||||
FrzCKuhuFrFrlPWQKudsFrFrOabVVMMvVMWpPnNsqnKujPNsNschSnqnZNFrmSeeqnqnqnjPjPqnqnqnqndsFrFrLTqnqwqwqwqwqwaOlWqwqwqwqwqwhuFrFrzCqnhuFrFrFrOfzCqnqnjPjPjPjPjPjPjPJzCPFrFrFrEKFrgxqndsFrFrFrFrFrUcUcUcUcUcFrFrgovQFrLTaEFrFrWQqnjPtXdsFrFrqlCMCMCMUrUrUrCMCMUrUrUrCMCMUrUrUrCMCMLbqnqnqnaEFrFr
|
||||
FrWQlKFrFrFrlPFrwidsFrFrWQartPYHnYilhuFrWQFVhuFrFrFrFrbBlKyqLjzDqwqwlWlWlIqwjpqwqwhuFrFrWQEpFrFrFrFrFrFrUcFrFrFrFrFrFrFrFrzChuFrFryqFrFrWQqwKMqnqwqnqnqnqnqwaOlWrRrRrRlWrRkQqwhuFrFrFrFrFrFrFrLTjPaEFrFrFrFrLTqnqnaEFrFrWQqnjxdsFrFrKYVsVsVsGoGoGoVsVsGoGoGoVsVsGoGoGoVsVsnsqnqnqnqnaEFr
|
||||
FrFrFrFrFrFrlPLTqnqnaEFrFrFrgoFOvQFrFrLTaEFrFrFrFrFrFrFrFrFrLjhhFrFrUcUcFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrLTdsFrFrFrFrFrFrFrFrWQhuFrWQlIqwhuFrFrUcUcUcUcUcUcFrFrFrFrFrFrFrFrFrFrWQqwqwjPaEFrFrWQlIqwqnaEFrFrWQqwhuFrFrWQSiSiSijujujuSiSijujujuSiSijujujuSiSiqCqwqwqwqwhuFr
|
||||
FrFrFrFrFrFrlPihmLzUiilPlPlPlPlPlPkoVgoziilPlPlPlPlPlPlPlPlPAilvlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPihiilPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPihozlPlPrulPlPihJalPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPFrFrFrFrFrFr
|
||||
FrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrWQqwhuFrFrFrFrFrFrFrFrFrFrLjhhFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrLTjPaEFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrtMFrFrFrFrFrFrzCjPjPjPaEFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFr
|
||||
FrFrFrFrFrFrlPLTqnqnaEFrFrFrgoFOvQFrFrLTaEFrFrFrFrFrFrFrFrFrLjhhFrFrUcUcFrFrFrFrFrFrFrFrFrFrFrFrFrLTaEFrFrFrFrFrFrFrFrFrLTdsFrFrFrFrFrFrFrFrWQhuFrWQgFqwhuFrFrUcUcUcUcUcUcFrFrFrFrFrFrFrFrFrFrWQqwqwjPaEFrFrWQlIqwqnaEFrFrWQqwhuFrFrWQSiSiSijujujuSiSijujujuSiSijujujuSiSiqCqwqwqwqwhuFr
|
||||
FrFrFrFrFrFrlPihmLzUiilPlPlPlPlPlPkoVgoziilPlPlPlPlPlPlPlPlPAilvlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPihozPAlPlPlPlPlPlPlPlPihiilPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPihozlPlPrulPlPihJalPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPFrFrFrFrFrFr
|
||||
FrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrWQqwhuFrFrFrFrFrFrFrFrFrFrLjhhFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrWQhuFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrLTjPaEFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrtMFrFrFrFrFrFrzCjPjPjPaEFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFr
|
||||
FrFrFrFrFrFrLTjPaEFrFrLTjPjPaEFrFrFrFrFrFrLTjPjPjPjPjPaEFrFrLjUjjPjPjPaEFrFrFrFrLTjPjPjPjPjPjPjPjPjPjPaEFrFrFrFrFrFrFrFrLTaEFrFrFrLTjPaEFrFrFrFrLTqnqnqnjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPqnjPjPjPjPjPjPqnqnqnqnqnjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjPjP
|
||||
EQEQEQEQEQEQwMwMwMEQEQwMwMwMwMEQEQEQEQEQEQwMwMwMwMwMwMwMEQEQTiRwwMwMwMwMEQEQEQEQwMwMwMwMwMwMwMwMwMwMwMwMEQEQEQEQEQEQEQEQwMwMEQEQEQwMwMwMEQEQEQEQwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwM
|
||||
HiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHixpYwHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHi
|
||||
HiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHixpYwHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHi
|
||||
HiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHixpYwHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHi
|
||||
ddHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHixpYwHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHidd
|
||||
"}
|
||||
|
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 996 B After Width: | Height: | Size: 996 B |
|
Before Width: | Height: | Size: 878 B After Width: | Height: | Size: 878 B |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 421 B After Width: | Height: | Size: 421 B |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 7.0 KiB After Width: | Height: | Size: 7.0 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 1022 B After Width: | Height: | Size: 1022 B |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
@@ -179,7 +179,8 @@
|
||||
list("Redgate - Islands Underwater","Redgate - Islands"),
|
||||
list("Redgate - Moving Train", "Redgate - Moving Train Upper Level"),
|
||||
list("Redgate - Fantasy Dungeon", "Redgate - Fantasy Town"),
|
||||
list("Redgate - Laserdome")
|
||||
list("Redgate - Laserdome"),
|
||||
list("Redgate - Cascading Falls")
|
||||
)
|
||||
|
||||
ai_shell_restricted = TRUE
|
||||
|
||||
@@ -209,7 +209,8 @@
|
||||
list("Redgate - Islands Underwater","Redgate - Islands"),
|
||||
list("Redgate - Moving Train", "Redgate - Moving Train Upper Level"),
|
||||
list("Redgate - Fantasy Dungeon", "Redgate - Fantasy Town"),
|
||||
list("Redgate - Laserdome")
|
||||
list("Redgate - Laserdome"),
|
||||
list("Redgate - Cascading Falls")
|
||||
)
|
||||
|
||||
ai_shell_restricted = TRUE
|
||||
|
||||
@@ -80,12 +80,14 @@ export const Panel = (props, context) => {
|
||||
<ChatPanel lineHeight={settings.lineHeight} />
|
||||
</Pane.Content>
|
||||
<Notifications>
|
||||
{settings.showReconnectWarning && game.connectionLostAt && (
|
||||
<Notifications.Item rightSlot={<ReconnectButton />}>
|
||||
You are either AFK, experiencing lag or the connection has
|
||||
closed.
|
||||
</Notifications.Item>
|
||||
)}
|
||||
{settings.showReconnectWarning &&
|
||||
game.connectionLostAt &&
|
||||
!game.dismissedConnectionWarning && (
|
||||
<Notifications.Item rightSlot={<ReconnectButton />}>
|
||||
You are either AFK, experiencing lag or the connection has
|
||||
closed.
|
||||
</Notifications.Item>
|
||||
)}
|
||||
{settings.showReconnectWarning && game.roundRestartedAt && (
|
||||
<Notifications.Item>
|
||||
The connection has been closed because the server is
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
import { useDispatch, useSelector } from 'common/redux';
|
||||
import { Button, Collapsible, Divider, Input, Section, Stack } from 'tgui/components';
|
||||
import { removeChatPage, toggleAcceptedType, updateChatPage } from './actions';
|
||||
import { moveChatPageLeft, moveChatPageRight, removeChatPage, toggleAcceptedType, updateChatPage } from './actions';
|
||||
import { MESSAGE_TYPES } from './constants';
|
||||
import { selectCurrentChatPage } from './selectors';
|
||||
|
||||
@@ -30,20 +30,56 @@ export const ChatPageSettings = (props, context) => {
|
||||
}
|
||||
/>
|
||||
</Stack.Item>
|
||||
<Stack.Item>
|
||||
<Button
|
||||
icon="times"
|
||||
color="red"
|
||||
onClick={() =>
|
||||
dispatch(
|
||||
removeChatPage({
|
||||
pageId: page.id,
|
||||
})
|
||||
)
|
||||
}>
|
||||
Remove
|
||||
</Button>
|
||||
</Stack.Item>
|
||||
{!page.isMain ? (
|
||||
<Stack.Item>
|
||||
<Button
|
||||
icon="times"
|
||||
color="red"
|
||||
onClick={() =>
|
||||
dispatch(
|
||||
removeChatPage({
|
||||
pageId: page.id,
|
||||
})
|
||||
)
|
||||
}>
|
||||
Remove
|
||||
</Button>
|
||||
</Stack.Item>
|
||||
) : (
|
||||
''
|
||||
)}
|
||||
</Stack>
|
||||
<Divider />
|
||||
<Stack align="center">
|
||||
{!page.isMain ? (
|
||||
<Stack.Item>
|
||||
Reorder Chat: 
|
||||
<Button
|
||||
color="blue"
|
||||
onClick={() =>
|
||||
dispatch(
|
||||
moveChatPageLeft({
|
||||
pageId: page.id,
|
||||
})
|
||||
)
|
||||
}>
|
||||
«
|
||||
</Button>
|
||||
<Button
|
||||
color="blue"
|
||||
onClick={() =>
|
||||
dispatch(
|
||||
moveChatPageRight({
|
||||
pageId: page.id,
|
||||
})
|
||||
)
|
||||
}>
|
||||
»
|
||||
</Button>
|
||||
</Stack.Item>
|
||||
) : (
|
||||
''
|
||||
)}
|
||||
</Stack>
|
||||
<Divider />
|
||||
<Section title="Messages to display" level={2}>
|
||||
|
||||
@@ -20,3 +20,5 @@ export const removeChatPage = createAction('chat/removePage');
|
||||
export const changeScrollTracking = createAction('chat/changeScrollTracking');
|
||||
export const saveChatToDisk = createAction('chat/saveToDisk');
|
||||
export const purgeChatMessageArchive = createAction('chat/purgeMessageArchive');
|
||||
export const moveChatPageLeft = createAction('chat/movePageLeft');
|
||||
export const moveChatPageRight = createAction('chat/movePageRight');
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
* @license MIT
|
||||
*/
|
||||
|
||||
export const MAX_VISIBLE_MESSAGES = 2500;
|
||||
export const MAX_PERSISTED_MESSAGES = 1000;
|
||||
// export const MAX_VISIBLE_MESSAGES = 2500; No longer a constant
|
||||
// export const MAX_PERSISTED_MESSAGES = 1000; No longer a constant
|
||||
export const MESSAGE_SAVE_INTERVAL = 10000;
|
||||
export const MESSAGE_PRUNE_INTERVAL = 60000;
|
||||
export const COMBINE_MAX_MESSAGES = 5;
|
||||
export const COMBINE_MAX_TIME_WINDOW = 5000;
|
||||
// export const COMBINE_MAX_MESSAGES = 5; No longer a constant
|
||||
// export const COMBINE_MAX_TIME_WINDOW = 5000; No longer a constant
|
||||
export const IMAGE_RETRY_DELAY = 250;
|
||||
export const IMAGE_RETRY_LIMIT = 10;
|
||||
export const IMAGE_RETRY_MESSAGE_AGE = 60000;
|
||||
|
||||
@@ -8,8 +8,8 @@ import DOMPurify from 'dompurify';
|
||||
import { storage } from 'common/storage';
|
||||
import { loadSettings, updateSettings, addHighlightSetting, removeHighlightSetting, updateHighlightSetting } from '../settings/actions';
|
||||
import { selectSettings } from '../settings/selectors';
|
||||
import { addChatPage, changeChatPage, changeScrollTracking, loadChat, rebuildChat, removeChatPage, saveChatToDisk, purgeChatMessageArchive, toggleAcceptedType, updateMessageCount } from './actions';
|
||||
import { MAX_PERSISTED_MESSAGES, MESSAGE_SAVE_INTERVAL } from './constants';
|
||||
import { addChatPage, changeChatPage, changeScrollTracking, loadChat, rebuildChat, moveChatPageLeft, moveChatPageRight, removeChatPage, saveChatToDisk, purgeChatMessageArchive, toggleAcceptedType, updateMessageCount } from './actions';
|
||||
import { MESSAGE_SAVE_INTERVAL } from './constants';
|
||||
import { createMessage, serializeMessage } from './model';
|
||||
import { chatRenderer } from './renderer';
|
||||
import { selectChat, selectCurrentChatPage } from './selectors';
|
||||
@@ -19,9 +19,10 @@ const FORBID_TAGS = ['a', 'iframe', 'link', 'video'];
|
||||
|
||||
const saveChatToStorage = async (store) => {
|
||||
const state = selectChat(store.getState());
|
||||
const settings = selectSettings(store.getState());
|
||||
const fromIndex = Math.max(
|
||||
0,
|
||||
chatRenderer.messages.length - MAX_PERSISTED_MESSAGES
|
||||
chatRenderer.messages.length - settings.persistentMessageLimit
|
||||
);
|
||||
const messages = chatRenderer.messages
|
||||
.slice(fromIndex)
|
||||
@@ -61,7 +62,6 @@ const loadChatFromStorage = async (store) => {
|
||||
];
|
||||
chatRenderer.processBatch(batch, {
|
||||
prepend: true,
|
||||
noarchive: true,
|
||||
});
|
||||
}
|
||||
if (archivedMessages) {
|
||||
@@ -116,6 +116,14 @@ export const chatMiddleware = (store) => {
|
||||
}, MESSAGE_SAVE_INTERVAL);
|
||||
return (next) => (action) => {
|
||||
const { type, payload } = action;
|
||||
const settings = selectSettings(store.getState());
|
||||
settings.totalStoredMessages = chatRenderer.getStoredMessages();
|
||||
chatRenderer.setVisualChatLimits(
|
||||
settings.visibleMessageLimit,
|
||||
settings.combineMessageLimit,
|
||||
settings.combineIntervalLimit,
|
||||
settings.logLineCount
|
||||
);
|
||||
if (!initialized) {
|
||||
initialized = true;
|
||||
loadChatFromStorage(store);
|
||||
@@ -155,7 +163,9 @@ export const chatMiddleware = (store) => {
|
||||
}
|
||||
}
|
||||
|
||||
chatRenderer.processBatch([payload_obj.content]);
|
||||
chatRenderer.processBatch([payload_obj.content], {
|
||||
doArchive: true,
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (type === loadChat.type) {
|
||||
@@ -170,7 +180,9 @@ export const chatMiddleware = (store) => {
|
||||
type === changeChatPage.type ||
|
||||
type === addChatPage.type ||
|
||||
type === removeChatPage.type ||
|
||||
type === toggleAcceptedType.type
|
||||
type === toggleAcceptedType.type ||
|
||||
type === moveChatPageLeft.type ||
|
||||
type === moveChatPageRight.type
|
||||
) {
|
||||
next(action);
|
||||
const page = selectCurrentChatPage(store.getState());
|
||||
@@ -178,7 +190,7 @@ export const chatMiddleware = (store) => {
|
||||
return;
|
||||
}
|
||||
if (type === rebuildChat.type) {
|
||||
chatRenderer.rebuildChat();
|
||||
chatRenderer.rebuildChat(settings.visibleMessages);
|
||||
return next(action);
|
||||
}
|
||||
|
||||
@@ -190,7 +202,6 @@ export const chatMiddleware = (store) => {
|
||||
type === updateHighlightSetting.type
|
||||
) {
|
||||
next(action);
|
||||
const settings = selectSettings(store.getState());
|
||||
chatRenderer.setHighlight(
|
||||
settings.highlightSettings,
|
||||
settings.highlightSettingById
|
||||
@@ -204,7 +215,6 @@ export const chatMiddleware = (store) => {
|
||||
return next(action);
|
||||
}
|
||||
if (type === saveChatToDisk.type) {
|
||||
const settings = selectSettings(store.getState());
|
||||
chatRenderer.saveToDisk(settings.logLineCount);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ export const createPage = (obj) => {
|
||||
}
|
||||
|
||||
return {
|
||||
isMain: false,
|
||||
id: createUuid(),
|
||||
name: 'New Tab',
|
||||
acceptedTypes: acceptedTypes,
|
||||
@@ -33,6 +34,7 @@ export const createMainPage = () => {
|
||||
acceptedTypes[typeDef.type] = true;
|
||||
}
|
||||
return createPage({
|
||||
isMain: true,
|
||||
name: 'Main',
|
||||
acceptedTypes,
|
||||
});
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* @license MIT
|
||||
*/
|
||||
|
||||
import { addChatPage, changeChatPage, loadChat, removeChatPage, toggleAcceptedType, updateChatPage, updateMessageCount, changeScrollTracking } from './actions';
|
||||
import { addChatPage, changeChatPage, loadChat, removeChatPage, moveChatPageLeft, moveChatPageRight, toggleAcceptedType, updateChatPage, updateMessageCount, changeScrollTracking } from './actions';
|
||||
import { canPageAcceptType, createMainPage } from './model';
|
||||
|
||||
const mainPage = createMainPage();
|
||||
@@ -179,5 +179,52 @@ export const chatReducer = (state = initialState, action) => {
|
||||
}
|
||||
return nextState;
|
||||
}
|
||||
if (type === moveChatPageLeft.type) {
|
||||
const { pageId } = payload;
|
||||
const nextState = {
|
||||
...state,
|
||||
pages: [...state.pages],
|
||||
pageById: {
|
||||
...state.pageById,
|
||||
},
|
||||
};
|
||||
const tmpPage = nextState.pageById[pageId];
|
||||
const fromIndex = nextState.pages.indexOf(tmpPage.id);
|
||||
const toIndex = fromIndex - 1;
|
||||
// don't ever move leftmost page
|
||||
if (fromIndex > 0) {
|
||||
// don't ever move anything to the leftmost page
|
||||
if (toIndex > 0) {
|
||||
const tmp = nextState.pages[fromIndex];
|
||||
nextState.pages[fromIndex] = nextState.pages[toIndex];
|
||||
nextState.pages[toIndex] = tmp;
|
||||
}
|
||||
}
|
||||
return nextState;
|
||||
}
|
||||
|
||||
if (type === moveChatPageRight.type) {
|
||||
const { pageId } = payload;
|
||||
const nextState = {
|
||||
...state,
|
||||
pages: [...state.pages],
|
||||
pageById: {
|
||||
...state.pageById,
|
||||
},
|
||||
};
|
||||
const tmpPage = nextState.pageById[pageId];
|
||||
const fromIndex = nextState.pages.indexOf(tmpPage.id);
|
||||
const toIndex = fromIndex + 1;
|
||||
// don't ever move leftmost page
|
||||
if (fromIndex > 0) {
|
||||
// don't ever move anything out of the array
|
||||
if (toIndex < nextState.pages.length) {
|
||||
const tmp = nextState.pages[fromIndex];
|
||||
nextState.pages[fromIndex] = nextState.pages[toIndex];
|
||||
nextState.pages[toIndex] = tmp;
|
||||
}
|
||||
}
|
||||
return nextState;
|
||||
}
|
||||
return state;
|
||||
};
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
import { EventEmitter } from 'common/events';
|
||||
import { classes } from 'common/react';
|
||||
import { createLogger } from 'tgui/logging';
|
||||
import { COMBINE_MAX_MESSAGES, COMBINE_MAX_TIME_WINDOW, IMAGE_RETRY_DELAY, IMAGE_RETRY_LIMIT, IMAGE_RETRY_MESSAGE_AGE, MAX_PERSISTED_MESSAGES, MAX_VISIBLE_MESSAGES, MESSAGE_PRUNE_INTERVAL, MESSAGE_TYPES, MESSAGE_TYPE_INTERNAL, MESSAGE_TYPE_UNKNOWN } from './constants';
|
||||
import { IMAGE_RETRY_DELAY, IMAGE_RETRY_LIMIT, IMAGE_RETRY_MESSAGE_AGE, MESSAGE_PRUNE_INTERVAL, MESSAGE_TYPES, MESSAGE_TYPE_INTERNAL, MESSAGE_TYPE_UNKNOWN } from './constants';
|
||||
import { render } from 'inferno';
|
||||
import { canPageAcceptType, createMessage, isSameMessage, serializeMessage } from './model';
|
||||
import { highlightNode, linkifyNode } from './replaceInTextNode';
|
||||
@@ -115,6 +115,11 @@ class ChatRenderer {
|
||||
this.visibleMessages = [];
|
||||
this.page = null;
|
||||
this.events = new EventEmitter();
|
||||
// Adjustables
|
||||
this.visibleMessageLimit = 2500;
|
||||
this.combineMessageLimit = 5;
|
||||
this.combineIntervalLimit = 5;
|
||||
this.exportLimit = -1;
|
||||
// Scroll handler
|
||||
/** @type {HTMLElement} */
|
||||
this.scrollNode = null;
|
||||
@@ -160,7 +165,7 @@ class ChatRenderer {
|
||||
this.scrollToBottom();
|
||||
});
|
||||
// Flush the queue
|
||||
this.tryFlushQueue();
|
||||
this.tryFlushQueue(true);
|
||||
}
|
||||
|
||||
onStateLoaded() {
|
||||
@@ -168,9 +173,9 @@ class ChatRenderer {
|
||||
this.tryFlushQueue();
|
||||
}
|
||||
|
||||
tryFlushQueue() {
|
||||
tryFlushQueue(doArchive = false) {
|
||||
if (this.isReady() && this.queue.length > 0) {
|
||||
this.processBatch(this.queue);
|
||||
this.processBatch(this.queue, { doArchive: doArchive });
|
||||
this.queue = [];
|
||||
}
|
||||
}
|
||||
@@ -352,11 +357,23 @@ class ChatRenderer {
|
||||
}
|
||||
}
|
||||
|
||||
setVisualChatLimits(
|
||||
visibleMessageLimit,
|
||||
combineMessageLimit,
|
||||
combineIntervalLimit,
|
||||
exportLimit
|
||||
) {
|
||||
this.visibleMessageLimit = visibleMessageLimit;
|
||||
this.combineMessageLimit = combineMessageLimit;
|
||||
this.combineIntervalLimit = combineIntervalLimit;
|
||||
this.exportLimit = exportLimit;
|
||||
}
|
||||
|
||||
getCombinableMessage(predicate) {
|
||||
const now = Date.now();
|
||||
const len = this.visibleMessages.length;
|
||||
const from = len - 1;
|
||||
const to = Math.max(0, len - COMBINE_MAX_MESSAGES);
|
||||
const to = Math.max(0, len - this.combineMessageLimit);
|
||||
for (let i = from; i >= to; i--) {
|
||||
const message = this.visibleMessages[i];
|
||||
|
||||
@@ -366,7 +383,7 @@ class ChatRenderer {
|
||||
// Text payload must fully match
|
||||
isSameMessage(message, predicate) &&
|
||||
// Must land within the specified time window
|
||||
now < message.createdAt + COMBINE_MAX_TIME_WINDOW;
|
||||
now < message.createdAt + this.combineIntervalLimit * 1000;
|
||||
if (matches) {
|
||||
return message;
|
||||
}
|
||||
@@ -375,7 +392,7 @@ class ChatRenderer {
|
||||
}
|
||||
|
||||
processBatch(batch, options = {}) {
|
||||
const { prepend, notifyListeners = true, noArchive = false } = options;
|
||||
const { prepend, notifyListeners = true, doArchive = false } = options;
|
||||
const now = Date.now();
|
||||
// Queue up messages until chat is ready
|
||||
if (!this.isReady()) {
|
||||
@@ -420,6 +437,15 @@ class ChatRenderer {
|
||||
} else {
|
||||
logger.error('Error: message is missing text payload', message);
|
||||
}
|
||||
// Get our commands we might want to send to chat
|
||||
const commands = node.querySelectorAll('[data-command]');
|
||||
if (commands.length) {
|
||||
const command = commands[0].getAttribute('data-command');
|
||||
if (command === '$do_export') {
|
||||
this.saveToDisk(this.exportLimit);
|
||||
}
|
||||
return; // We do not want those logged or shown!
|
||||
}
|
||||
// Get all nodes in this message that want to be rendered like jsx
|
||||
const nodes = node.querySelectorAll('[data-component]');
|
||||
for (let i = 0; i < nodes.length; i++) {
|
||||
@@ -522,7 +548,7 @@ class ChatRenderer {
|
||||
countByType[message.type] += 1;
|
||||
// TODO: Detect duplicates
|
||||
this.messages.push(message);
|
||||
if (!noArchive) {
|
||||
if (doArchive) {
|
||||
this.archivedMessages.push(serializeMessage(message, true)); // TODO: Actually having a better message archiving maybe for exports?
|
||||
}
|
||||
if (canPageAcceptType(this.page, message.type)) {
|
||||
@@ -560,7 +586,7 @@ class ChatRenderer {
|
||||
// Visible messages
|
||||
{
|
||||
const messages = this.visibleMessages;
|
||||
const fromIndex = Math.max(0, messages.length - MAX_VISIBLE_MESSAGES);
|
||||
const fromIndex = Math.max(0, messages.length - this.visibleMessageLimit);
|
||||
if (fromIndex > 0) {
|
||||
this.visibleMessages = messages.slice(fromIndex);
|
||||
for (let i = 0; i < fromIndex; i++) {
|
||||
@@ -581,7 +607,7 @@ class ChatRenderer {
|
||||
{
|
||||
const fromIndex = Math.max(
|
||||
0,
|
||||
this.messages.length - MAX_PERSISTED_MESSAGES
|
||||
this.messages.length - this.persistentMessageLimit
|
||||
);
|
||||
if (fromIndex > 0) {
|
||||
this.messages = this.messages.slice(fromIndex);
|
||||
@@ -590,15 +616,12 @@ class ChatRenderer {
|
||||
}
|
||||
}
|
||||
|
||||
rebuildChat() {
|
||||
rebuildChat(rebuildLimit) {
|
||||
if (!this.isReady()) {
|
||||
return;
|
||||
}
|
||||
// Make a copy of messages
|
||||
const fromIndex = Math.max(
|
||||
0,
|
||||
this.messages.length - MAX_PERSISTED_MESSAGES
|
||||
);
|
||||
const fromIndex = Math.max(0, this.messages.length - rebuildLimit);
|
||||
const messages = this.messages.slice(fromIndex);
|
||||
// Remove existing nodes
|
||||
for (let message of messages) {
|
||||
@@ -644,10 +667,13 @@ class ChatRenderer {
|
||||
|
||||
// for (let message of this.visibleMessages) { // TODO: Actually having a better message archiving maybe for exports?
|
||||
for (let message of tmpMsgArray) {
|
||||
// Filter messages according to active tab for export
|
||||
if (canPageAcceptType(this.page, message.type)) {
|
||||
messagesHtml += message.html + '\n';
|
||||
}
|
||||
// if (message.node) {
|
||||
// messagesHtml += message.node.outerHTML + '\n';
|
||||
// }
|
||||
messagesHtml += message.html + '\n';
|
||||
}
|
||||
// Create a page
|
||||
|
||||
@@ -679,6 +705,10 @@ class ChatRenderer {
|
||||
purgeMessageArchive() {
|
||||
this.archivedMessages = [];
|
||||
}
|
||||
|
||||
getStoredMessages() {
|
||||
return this.archivedMessages.length;
|
||||
}
|
||||
}
|
||||
|
||||
// Make chat renderer global so that we can continue using the same
|
||||
|
||||
@@ -9,3 +9,4 @@ import { createAction } from 'common/redux';
|
||||
export const roundRestarted = createAction('roundrestart');
|
||||
export const connectionLost = createAction('game/connectionLost');
|
||||
export const connectionRestored = createAction('game/connectionRestored');
|
||||
export const dismissWarning = createAction('game/dismissWarning');
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*/
|
||||
|
||||
import { connectionLost } from './actions';
|
||||
import { connectionRestored } from './actions';
|
||||
import { connectionRestored, dismissWarning } from './actions';
|
||||
|
||||
const initialState = {
|
||||
// TODO: This is where round info should be.
|
||||
@@ -13,6 +13,7 @@ const initialState = {
|
||||
roundTime: null,
|
||||
roundRestartedAt: null,
|
||||
connectionLostAt: null,
|
||||
dismissedConnectionWarning: false,
|
||||
};
|
||||
|
||||
export const gameReducer = (state = initialState, action) => {
|
||||
@@ -33,6 +34,13 @@ export const gameReducer = (state = initialState, action) => {
|
||||
return {
|
||||
...state,
|
||||
connectionLostAt: null,
|
||||
dismissedConnectionWarning: false,
|
||||
};
|
||||
}
|
||||
if (type === dismissWarning.type) {
|
||||
return {
|
||||
...state,
|
||||
dismissedConnectionWarning: true,
|
||||
};
|
||||
}
|
||||
return state;
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
import { Button } from 'tgui/components';
|
||||
import { useDispatch } from 'common/redux';
|
||||
import { dismissWarning } from './game/actions';
|
||||
|
||||
let url: string | null = null;
|
||||
|
||||
@@ -11,10 +13,11 @@ setInterval(() => {
|
||||
});
|
||||
}, 5000);
|
||||
|
||||
export const ReconnectButton = () => {
|
||||
export const ReconnectButton = (props, context) => {
|
||||
if (!url) {
|
||||
return null;
|
||||
}
|
||||
const dispatch = useDispatch(context);
|
||||
return (
|
||||
<>
|
||||
<Button
|
||||
@@ -32,6 +35,13 @@ export const ReconnectButton = () => {
|
||||
}}>
|
||||
Relaunch game
|
||||
</Button>
|
||||
<Button
|
||||
color="white"
|
||||
onClick={() => {
|
||||
dispatch(dismissWarning());
|
||||
}}>
|
||||
Dismiss
|
||||
</Button>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -42,6 +42,7 @@ export const SettingsPanel = (props, context) => {
|
||||
</Stack.Item>
|
||||
<Stack.Item grow={1} basis={0}>
|
||||
{activeTab === 'general' && <SettingsGeneral />}
|
||||
{activeTab === 'limits' && <MessageLimits />}
|
||||
{activeTab === 'export' && <ExportTab />}
|
||||
{activeTab === 'chatPage' && <ChatPageSettings />}
|
||||
{activeTab === 'textHighlight' && <TextHighlightSettings />}
|
||||
@@ -169,9 +170,101 @@ export const SettingsGeneral = (props, context) => {
|
||||
);
|
||||
};
|
||||
|
||||
export const MessageLimits = (props, context) => {
|
||||
const dispatch = useDispatch(context);
|
||||
const {
|
||||
visibleMessageLimit,
|
||||
persistentMessageLimit,
|
||||
combineMessageLimit,
|
||||
combineIntervalLimit,
|
||||
} = useSelector(context, selectSettings);
|
||||
return (
|
||||
<Section>
|
||||
<LabeledList>
|
||||
<LabeledList.Item label="Amount of lines to display 500-10000 (Default: 2500)">
|
||||
<NumberInput
|
||||
width="5em"
|
||||
step={100}
|
||||
stepPixelSize={2}
|
||||
minValue={500}
|
||||
maxValue={10000}
|
||||
value={visibleMessageLimit}
|
||||
format={(value) => toFixed(value)}
|
||||
onDrag={(e, value) =>
|
||||
dispatch(
|
||||
updateSettings({
|
||||
visibleMessageLimit: value,
|
||||
})
|
||||
)
|
||||
}
|
||||
/>
|
||||
</LabeledList.Item>
|
||||
<LabeledList.Item label="Amount of visually persistent lines 500-10000 (Default: 1000)">
|
||||
<NumberInput
|
||||
width="5em"
|
||||
step={100}
|
||||
stepPixelSize={2}
|
||||
minValue={500}
|
||||
maxValue={10000}
|
||||
value={persistentMessageLimit}
|
||||
format={(value) => toFixed(value)}
|
||||
onDrag={(e, value) =>
|
||||
dispatch(
|
||||
updateSettings({
|
||||
persistentMessageLimit: value,
|
||||
})
|
||||
)
|
||||
}
|
||||
/>
|
||||
</LabeledList.Item>
|
||||
<LabeledList.Item label="Amount of different lines in between to combine 0-10 (Default: 5)">
|
||||
<NumberInput
|
||||
width="5em"
|
||||
step={1}
|
||||
stepPixelSize={10}
|
||||
minValue={0}
|
||||
maxValue={10}
|
||||
value={combineMessageLimit}
|
||||
format={(value) => toFixed(value)}
|
||||
onDrag={(e, value) =>
|
||||
dispatch(
|
||||
updateSettings({
|
||||
combineMessageLimit: value,
|
||||
})
|
||||
)
|
||||
}
|
||||
/>
|
||||
</LabeledList.Item>
|
||||
<LabeledList.Item label="Time to combine messages 0-10 (Default: 5 Seconds)">
|
||||
<NumberInput
|
||||
width="5em"
|
||||
step={1}
|
||||
stepPixelSize={10}
|
||||
minValue={0}
|
||||
maxValue={10}
|
||||
value={combineIntervalLimit}
|
||||
unit="s"
|
||||
format={(value) => toFixed(value)}
|
||||
onDrag={(e, value) =>
|
||||
dispatch(
|
||||
updateSettings({
|
||||
combineIntervalLimit: value,
|
||||
})
|
||||
)
|
||||
}
|
||||
/>
|
||||
</LabeledList.Item>
|
||||
</LabeledList>
|
||||
</Section>
|
||||
);
|
||||
};
|
||||
|
||||
export const ExportTab = (props, context) => {
|
||||
const dispatch = useDispatch(context);
|
||||
const { logRetainDays, logLineCount } = useSelector(context, selectSettings);
|
||||
const { logRetainDays, logLineCount, totalStoredMessages } = useSelector(
|
||||
context,
|
||||
selectSettings
|
||||
);
|
||||
const [purgeConfirm, setPurgeConfirm] = useLocalState(
|
||||
context,
|
||||
'purgeConfirm',
|
||||
@@ -197,11 +290,15 @@ export const ExportTab = (props, context) => {
|
||||
</LabeledList.Item>
|
||||
*/}
|
||||
<LabeledList.Item label="Amount of lines to export (-1 = inf.)">
|
||||
<Input
|
||||
<NumberInput
|
||||
width="5em"
|
||||
monospace
|
||||
step={100}
|
||||
stepPixelSize={2}
|
||||
minValue={-1}
|
||||
maxValue={50000}
|
||||
value={logLineCount}
|
||||
onInput={(e, value) =>
|
||||
format={(value) => toFixed(value)}
|
||||
onDrag={(e, value) =>
|
||||
dispatch(
|
||||
updateSettings({
|
||||
logLineCount: value,
|
||||
@@ -210,6 +307,9 @@ export const ExportTab = (props, context) => {
|
||||
}
|
||||
/>
|
||||
</LabeledList.Item>
|
||||
<LabeledList.Item label="Totally stored messages">
|
||||
<Box>{totalStoredMessages}</Box>
|
||||
</LabeledList.Item>
|
||||
</LabeledList>
|
||||
<Divider />
|
||||
<Button icon="save" onClick={() => dispatch(saveChatToDisk())}>
|
||||
|
||||
@@ -9,6 +9,10 @@ export const SETTINGS_TABS = [
|
||||
id: 'general',
|
||||
name: 'General',
|
||||
},
|
||||
{
|
||||
id: 'limits',
|
||||
name: 'Visual Limits',
|
||||
},
|
||||
{
|
||||
id: 'export',
|
||||
name: 'Export',
|
||||
|
||||