mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-22 19:47:47 +01:00
Merge pull request #9295 from Zuhayr/dev
"Fixes" #5413 and fixes others.
This commit is contained in:
@@ -1545,8 +1545,6 @@
|
||||
#include "code\modules\research\xenoarchaeology\finds\finds_misc.dm"
|
||||
#include "code\modules\research\xenoarchaeology\finds\finds_special.dm"
|
||||
#include "code\modules\research\xenoarchaeology\finds\finds_talkingitem.dm"
|
||||
#include "code\modules\research\xenoarchaeology\genetics\prehistoric_animals.dm"
|
||||
#include "code\modules\research\xenoarchaeology\genetics\reconstitutor.dm"
|
||||
#include "code\modules\research\xenoarchaeology\machinery\artifact_analyser.dm"
|
||||
#include "code\modules\research\xenoarchaeology\machinery\artifact_harvester.dm"
|
||||
#include "code\modules\research\xenoarchaeology\machinery\artifact_scanner.dm"
|
||||
|
||||
@@ -192,10 +192,12 @@ REAGENT SCANNER
|
||||
|
||||
for(var/name in H.organs_by_name)
|
||||
var/obj/item/organ/external/e = H.organs_by_name[name]
|
||||
if(e.status & ORGAN_BROKEN)
|
||||
if(e && e.status & ORGAN_BROKEN)
|
||||
user.show_message(text("\red Bone fractures detected. Advanced scanner required for location."), 1)
|
||||
break
|
||||
for(var/obj/item/organ/external/e in H.organs)
|
||||
if(!e)
|
||||
continue
|
||||
for(var/datum/wound/W in e.wounds) if(W.internal)
|
||||
user.show_message(text("\red Internal bleeding detected. Advanced scanner required for location."), 1)
|
||||
break
|
||||
|
||||
@@ -25,6 +25,7 @@ var/list/mechtoys = list(
|
||||
|
||||
/obj/item/weapon/paper/manifest
|
||||
name = "supply manifest"
|
||||
var/is_copy = 1
|
||||
|
||||
/area/supply/station
|
||||
name = "Supply Shuttle"
|
||||
@@ -197,8 +198,8 @@ var/list/mechtoys = list(
|
||||
// Sell manifests
|
||||
var/atom/A = atom
|
||||
if(find_slip && istype(A,/obj/item/weapon/paper/manifest))
|
||||
var/obj/item/weapon/paper/slip = A
|
||||
if(slip.stamped && slip.stamped.len) //yes, the clown stamp will work. clown is the highest authority on the station, it makes sense
|
||||
var/obj/item/weapon/paper/manifest/slip = A
|
||||
if(!slip.is_copy && slip.stamped && slip.stamped.len) //yes, the clown stamp will work. clown is the highest authority on the station, it makes sense
|
||||
points += points_per_slip
|
||||
find_slip = 0
|
||||
continue
|
||||
@@ -256,6 +257,7 @@ var/list/mechtoys = list(
|
||||
//supply manifest generation begin
|
||||
|
||||
var/obj/item/weapon/paper/manifest/slip = new /obj/item/weapon/paper/manifest(A)
|
||||
slip.is_copy = 0
|
||||
slip.info = "<h3>[command_name()] Shipping Manifest</h3><hr><br>"
|
||||
slip.info +="Order #[SO.ordernum]<br>"
|
||||
slip.info +="Destination: [station_name]<br>"
|
||||
|
||||
@@ -1,16 +1,7 @@
|
||||
/mob/living/carbon/alien/diona/attack_hand(mob/living/carbon/human/M as mob)
|
||||
|
||||
if(istype(M))
|
||||
//Let people pick the little buggers up.
|
||||
if(M.a_intent == I_HELP)
|
||||
if(M.species && M.species.name == "Diona")
|
||||
M << "You feel your being twine with that of [src] as it merges with your biomass."
|
||||
src << "You feel your being twine with that of [M] as you merge with its biomass."
|
||||
src.verbs += /mob/living/carbon/alien/diona/proc/split
|
||||
src.verbs -= /mob/living/carbon/alien/diona/proc/merge
|
||||
src.loc = M
|
||||
else
|
||||
get_scooped(M)
|
||||
if(istype(M) && M.a_intent == I_HELP)
|
||||
if(M.species && M.species.name == "Diona" && do_merge(M))
|
||||
return
|
||||
|
||||
get_scooped(M)
|
||||
return
|
||||
..()
|
||||
@@ -24,18 +24,21 @@
|
||||
|
||||
var/mob/living/M = input(src,"Who do you wish to merge with?") in null|choices
|
||||
|
||||
if(!M || !src || !(src.Adjacent(M))) return
|
||||
if(!M)
|
||||
src << "There is nothing nearby to merge with."
|
||||
else if(!do_merge(M))
|
||||
src << "You fail to merge with \the [M]..."
|
||||
|
||||
if(istype(M,/mob/living/carbon/human))
|
||||
M << "You feel your being twine with that of [src] as it merges with your biomass."
|
||||
M.status_flags |= PASSEMOTES
|
||||
|
||||
src << "You feel your being twine with that of [M] as you merge with its biomass."
|
||||
src.loc = M
|
||||
src.verbs += /mob/living/carbon/alien/diona/proc/split
|
||||
src.verbs -= /mob/living/carbon/alien/diona/proc/merge
|
||||
else
|
||||
return
|
||||
/mob/living/carbon/alien/diona/proc/do_merge(var/mob/living/carbon/human/H)
|
||||
if(!istype(H) || !src || !(src.Adjacent(H)))
|
||||
return 0
|
||||
H << "You feel your being twine with that of \the [src] as it merges with your biomass."
|
||||
H.status_flags |= PASSEMOTES
|
||||
src << "You feel your being twine with that of \the [H] as you merge with its biomass."
|
||||
loc = H
|
||||
verbs += /mob/living/carbon/alien/diona/proc/split
|
||||
verbs -= /mob/living/carbon/alien/diona/proc/merge
|
||||
return 1
|
||||
|
||||
/mob/living/carbon/alien/diona/proc/split()
|
||||
|
||||
|
||||
@@ -330,7 +330,7 @@ var/global/list/damage_icon_parts = list()
|
||||
overlays_standing[HAIR_LAYER] = null
|
||||
|
||||
var/obj/item/organ/external/head/head_organ = get_organ("head")
|
||||
if( !head_organ || (head_organ.status & ORGAN_DESTROYED) )
|
||||
if(!head_organ || head_organ.is_stump() || (head_organ.status & ORGAN_DESTROYED) )
|
||||
if(update_icons) update_icons()
|
||||
return
|
||||
|
||||
|
||||
@@ -91,3 +91,82 @@
|
||||
..()
|
||||
visible_message("[src] lets out a waning guttural screech, green blood bubbling from its maw...")
|
||||
playsound(src, 'sound/voice/hiss6.ogg', 100, 1)
|
||||
|
||||
// Xenoarch aliens.
|
||||
/mob/living/simple_animal/hostile/samak
|
||||
name = "samak"
|
||||
desc = "A fast, armoured predator accustomed to hiding and ambushing in cold terrain."
|
||||
faction = "samak"
|
||||
icon_state = "samak"
|
||||
icon_living = "samak"
|
||||
icon_dead = "samak_dead"
|
||||
icon = 'icons/jungle.dmi'
|
||||
move_to_delay = 2
|
||||
maxHealth = 125
|
||||
health = 125
|
||||
speed = 2
|
||||
melee_damage_lower = 5
|
||||
melee_damage_upper = 15
|
||||
attacktext = "mauled"
|
||||
cold_damage_per_tick = 0
|
||||
speak_chance = 5
|
||||
speak = list("Hruuugh!","Hrunnph")
|
||||
emote_see = list("paws the ground","shakes its mane","stomps")
|
||||
emote_hear = list("snuffles")
|
||||
|
||||
/mob/living/simple_animal/hostile/diyaab
|
||||
name = "diyaab"
|
||||
desc = "A small pack animal. Although omnivorous, it will hunt meat on occasion."
|
||||
faction = "diyaab"
|
||||
icon_state = "diyaab"
|
||||
icon_living = "diyaab"
|
||||
icon_dead = "diyaab_dead"
|
||||
icon = 'icons/jungle.dmi'
|
||||
move_to_delay = 1
|
||||
maxHealth = 25
|
||||
health = 25
|
||||
speed = 1
|
||||
melee_damage_lower = 1
|
||||
melee_damage_upper = 8
|
||||
attacktext = "gouged"
|
||||
cold_damage_per_tick = 0
|
||||
speak_chance = 5
|
||||
speak = list("Awrr?","Aowrl!","Worrl")
|
||||
emote_see = list("sniffs the air cautiously","looks around")
|
||||
emote_hear = list("snuffles")
|
||||
|
||||
/mob/living/simple_animal/hostile/shantak
|
||||
name = "shantak"
|
||||
desc = "A piglike creature with a bright iridiscent mane that sparkles as though lit by an inner light. Don't be fooled by its beauty though."
|
||||
faction = "shantak"
|
||||
icon_state = "shantak"
|
||||
icon_living = "shantak"
|
||||
icon_dead = "shantak_dead"
|
||||
icon = 'icons/jungle.dmi'
|
||||
move_to_delay = 1
|
||||
maxHealth = 75
|
||||
health = 75
|
||||
speed = 1
|
||||
melee_damage_lower = 3
|
||||
melee_damage_upper = 12
|
||||
attacktext = "gouged"
|
||||
cold_damage_per_tick = 0
|
||||
speak_chance = 5
|
||||
speak = list("Shuhn","Shrunnph?","Shunpf")
|
||||
emote_see = list("scratches the ground","shakes out it's mane","tinkles gently")
|
||||
|
||||
/mob/living/simple_animal/yithian
|
||||
name = "yithian"
|
||||
desc = "A friendly creature vaguely resembling an oversized snail without a shell."
|
||||
icon_state = "yithian"
|
||||
icon_living = "yithian"
|
||||
icon_dead = "yithian_dead"
|
||||
icon = 'icons/jungle.dmi'
|
||||
|
||||
/mob/living/simple_animal/tindalos
|
||||
name = "tindalos"
|
||||
desc = "It looks like a large, flightless grasshopper."
|
||||
icon_state = "tindalos"
|
||||
icon_living = "tindalos"
|
||||
icon_dead = "tindalos_dead"
|
||||
icon = 'icons/jungle.dmi'
|
||||
|
||||
@@ -226,7 +226,7 @@
|
||||
var/obj/item/W = used_weapon
|
||||
if(W.w_class >= 3)
|
||||
edge_eligible = 1
|
||||
|
||||
|
||||
if(brute >= threshold || (edge_eligible && brute >= threshold/3))
|
||||
if((sharp || edge))
|
||||
droplimb(0,DROPLIMB_EDGE)
|
||||
@@ -917,14 +917,15 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
/obj/item/organ/external/proc/disfigure(var/type = "brute")
|
||||
if (disfigured)
|
||||
return
|
||||
if(type == "brute")
|
||||
owner.visible_message("\red You hear a sickening cracking sound coming from \the [owner]'s [name].", \
|
||||
"\red <b>Your [name] becomes a mangled mess!</b>", \
|
||||
"\red You hear a sickening crack.")
|
||||
else
|
||||
owner.visible_message("\red \The [owner]'s [name] melts away, turning into mangled mess!", \
|
||||
"\red <b>Your [name] melts away!</b>", \
|
||||
"\red You hear a sickening sizzle.")
|
||||
if(owner)
|
||||
if(type == "brute")
|
||||
owner.visible_message("\red You hear a sickening cracking sound coming from \the [owner]'s [name].", \
|
||||
"\red <b>Your [name] becomes a mangled mess!</b>", \
|
||||
"\red You hear a sickening crack.")
|
||||
else
|
||||
owner.visible_message("\red \The [owner]'s [name] melts away, turning into mangled mess!", \
|
||||
"\red <b>Your [name] melts away!</b>", \
|
||||
"\red You hear a sickening sizzle.")
|
||||
disfigured = 1
|
||||
|
||||
/****************************************************
|
||||
@@ -1077,6 +1078,8 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
owner.u_equip(owner.l_ear)
|
||||
owner.u_equip(owner.r_ear)
|
||||
owner.u_equip(owner.wear_mask)
|
||||
spawn(1)
|
||||
owner.update_hair()
|
||||
..()
|
||||
|
||||
/obj/item/organ/external/head/take_damage(brute, burn, sharp, edge, used_weapon = null, list/forbidden_limbs = list())
|
||||
|
||||
@@ -34,6 +34,7 @@ var/global/list/limb_icon_cache = list()
|
||||
/obj/item/organ/external/head/get_icon()
|
||||
|
||||
..()
|
||||
overlays.Cut()
|
||||
if(owner.species.has_organ["eyes"])
|
||||
var/obj/item/organ/eyes/eyes = owner.internal_organs_by_name["eyes"]
|
||||
if(owner.species.eyes)
|
||||
@@ -43,9 +44,12 @@ var/global/list/limb_icon_cache = list()
|
||||
else
|
||||
eyes_icon.Blend(rgb(128,0,0), ICON_ADD)
|
||||
mob_icon.Blend(eyes_icon, ICON_OVERLAY)
|
||||
overlays |= eyes_icon
|
||||
|
||||
if(owner.lip_style && (owner.species && (owner.species.flags & HAS_LIPS)))
|
||||
mob_icon.Blend(new/icon('icons/mob/human_face.dmi', "lips_[owner.lip_style]_s"), ICON_OVERLAY)
|
||||
var/icon/lip_icon = new/icon('icons/mob/human_face.dmi', "lips_[owner.lip_style]_s")
|
||||
overlays |= lip_icon
|
||||
mob_icon.Blend(lip_icon, ICON_OVERLAY)
|
||||
|
||||
if(owner.f_style)
|
||||
var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[owner.f_style]
|
||||
|
||||
@@ -1,77 +0,0 @@
|
||||
/mob/living/simple_animal/hostile/samak
|
||||
name = "samak"
|
||||
desc = "A fast, armoured predator accustomed to hiding and ambushing in cold terrain."
|
||||
faction = "samak"
|
||||
icon_state = "samak"
|
||||
icon_living = "samak"
|
||||
icon_dead = "samak_dead"
|
||||
icon = 'icons/jungle.dmi'
|
||||
move_to_delay = 2
|
||||
maxHealth = 125
|
||||
health = 125
|
||||
speed = 2
|
||||
melee_damage_lower = 5
|
||||
melee_damage_upper = 15
|
||||
attacktext = "mauled"
|
||||
cold_damage_per_tick = 0
|
||||
speak_chance = 5
|
||||
speak = list("Hruuugh!","Hrunnph")
|
||||
emote_see = list("paws the ground","shakes its mane","stomps")
|
||||
emote_hear = list("snuffles")
|
||||
|
||||
/mob/living/simple_animal/hostile/diyaab
|
||||
name = "diyaab"
|
||||
desc = "A small pack animal. Although omnivorous, it will hunt meat on occasion."
|
||||
faction = "diyaab"
|
||||
icon_state = "diyaab"
|
||||
icon_living = "diyaab"
|
||||
icon_dead = "diyaab_dead"
|
||||
icon = 'icons/jungle.dmi'
|
||||
move_to_delay = 1
|
||||
maxHealth = 25
|
||||
health = 25
|
||||
speed = 1
|
||||
melee_damage_lower = 1
|
||||
melee_damage_upper = 8
|
||||
attacktext = "gouged"
|
||||
cold_damage_per_tick = 0
|
||||
speak_chance = 5
|
||||
speak = list("Awrr?","Aowrl!","Worrl")
|
||||
emote_see = list("sniffs the air cautiously","looks around")
|
||||
emote_hear = list("snuffles")
|
||||
|
||||
/mob/living/simple_animal/hostile/shantak
|
||||
name = "shantak"
|
||||
desc = "A piglike creature with a bright iridiscent mane that sparkles as though lit by an inner light. Don't be fooled by its beauty though."
|
||||
faction = "shantak"
|
||||
icon_state = "shantak"
|
||||
icon_living = "shantak"
|
||||
icon_dead = "shantak_dead"
|
||||
icon = 'icons/jungle.dmi'
|
||||
move_to_delay = 1
|
||||
maxHealth = 75
|
||||
health = 75
|
||||
speed = 1
|
||||
melee_damage_lower = 3
|
||||
melee_damage_upper = 12
|
||||
attacktext = "gouged"
|
||||
cold_damage_per_tick = 0
|
||||
speak_chance = 5
|
||||
speak = list("Shuhn","Shrunnph?","Shunpf")
|
||||
emote_see = list("scratches the ground","shakes out it's mane","tinkles gently")
|
||||
|
||||
/mob/living/simple_animal/yithian
|
||||
name = "yithian"
|
||||
desc = "A friendly creature vaguely resembling an oversized snail without a shell."
|
||||
icon_state = "yithian"
|
||||
icon_living = "yithian"
|
||||
icon_dead = "yithian_dead"
|
||||
icon = 'icons/jungle.dmi'
|
||||
|
||||
/mob/living/simple_animal/tindalos
|
||||
name = "tindalos"
|
||||
desc = "It looks like a large, flightless grasshopper."
|
||||
icon_state = "tindalos"
|
||||
icon_living = "tindalos"
|
||||
icon_dead = "tindalos_dead"
|
||||
icon = 'icons/jungle.dmi'
|
||||
@@ -1,319 +0,0 @@
|
||||
//gene sequence datum
|
||||
datum/genesequence
|
||||
var/spawned_type
|
||||
var/spawned_type_text
|
||||
var/list/full_genome_sequence = list()
|
||||
|
||||
|
||||
|
||||
#define SCANFOSSIL_RETVAL_WRONGTYPE 1
|
||||
#define SCANFOSSIL_RETVAL_NOMOREGENESEQ 2
|
||||
#define SCANFOSSIL_RETVAL_SUCCESS 4
|
||||
|
||||
/obj/machinery/computer/reconstitutor
|
||||
name = "Flora reconstitution console"
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "dna"
|
||||
circuit = "/obj/item/weapon/circuitboard/reconstitutor"
|
||||
req_access = list(access_heads) //Only used for record deletion right now.
|
||||
var/obj/machinery/clonepod/pod1 = 1 //Linked cloning pod.
|
||||
var/temp = ""
|
||||
var/menu = 1 //Which menu screen to display
|
||||
var/list/records = list()
|
||||
var/datum/dna2/record/active_record = null
|
||||
var/obj/item/weapon/disk/data/diskette = null //Mostly so the geneticist can steal everything.
|
||||
var/loading = 0 // Nice loading text
|
||||
var/list/undiscovered_genesequences = null
|
||||
var/list/discovered_genesequences = list()
|
||||
var/list/completed_genesequences = list()
|
||||
var/list/undiscovered_genomes = list()
|
||||
var/list/manually_placed_genomes = list()
|
||||
var/list/discovered_genomes = list("! Clear !")
|
||||
var/list/accepted_fossil_types = list(/obj/item/weapon/fossil/plant)
|
||||
|
||||
|
||||
/obj/machinery/computer/reconstitutor/initialize()
|
||||
spawn(50)
|
||||
if(!undiscovered_genesequences)
|
||||
undiscovered_genesequences = master_controller.all_plant_genesequences.Copy()
|
||||
..()
|
||||
|
||||
/obj/machinery/computer/reconstitutor/animal
|
||||
name = "Fauna reconstitution console"
|
||||
accepted_fossil_types = list(/obj/item/weapon/fossil/bone,/obj/item/weapon/fossil/shell,/obj/item/weapon/fossil/skull)
|
||||
pod1 = null
|
||||
circuit = "/obj/item/weapon/circuitboard/reconstitutor/animal"
|
||||
|
||||
/obj/machinery/computer/reconstitutor/animal/initialize()
|
||||
spawn(50)
|
||||
undiscovered_genesequences = master_controller.all_animal_genesequences.Copy()
|
||||
..()
|
||||
|
||||
/obj/machinery/computer/reconstitutor/attackby(obj/item/W, mob/user)
|
||||
if(istype(W,/obj/item/weapon/fossil))
|
||||
user.drop_item()
|
||||
W.loc = src.loc
|
||||
switch(scan_fossil(W))
|
||||
if(1)
|
||||
src.visible_message("\red \icon[src] [src] scans the fossil and rejects it.")
|
||||
if(2)
|
||||
visible_message("\red \icon[src] [src] can not extract any more genetic data from new fossils.")
|
||||
if(4)
|
||||
src.visible_message("\blue \icon[src] [user] inserts [W] into [src], the fossil is consumed as [src] extracts genetic data from it.")
|
||||
qdel(W)
|
||||
updateDialog()
|
||||
else if (istype(W, /obj/item/weapon/storage))
|
||||
var/obj/item/weapon/storage/S = W
|
||||
S.hide_from(usr)
|
||||
var/numaccepted = 0
|
||||
var/numrejected = 0
|
||||
var/full = 0
|
||||
for(var/obj/item/weapon/fossil/F in S.contents)
|
||||
switch(scan_fossil(F))
|
||||
if(SCANFOSSIL_RETVAL_WRONGTYPE)
|
||||
numrejected += 1
|
||||
if(SCANFOSSIL_RETVAL_NOMOREGENESEQ)
|
||||
full = 1
|
||||
if(SCANFOSSIL_RETVAL_SUCCESS)
|
||||
numaccepted += 1
|
||||
S.remove_from_storage(F, src) //This will move the item to this item's contents
|
||||
qdel(F)
|
||||
updateDialog()
|
||||
|
||||
user.visible_message("[user] empties all the fossils from [S] into [src].", "\blue You empty all the fossils from [S] into [src].", "You hear the sound of rocks being poured into a container")
|
||||
|
||||
var/outmsg = ""
|
||||
if(numaccepted)
|
||||
outmsg += " \blue[numaccepted] fossils were accepted and consumed as [src] extracts genetic data from them."
|
||||
if(numrejected)
|
||||
outmsg += " \red[numrejected] fossils were rejected."
|
||||
if(full)
|
||||
outmsg += " \red[src] can not extract any more genetic data from new fossils."
|
||||
user << outmsg
|
||||
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/machinery/computer/reconstitutor/attack_hand(var/mob/user as mob)
|
||||
src.add_fingerprint(user)
|
||||
interact(user)
|
||||
|
||||
/obj/machinery/computer/reconstitutor/interact(mob/user)
|
||||
if(stat & (NOPOWER|BROKEN) || get_dist(src, user) > 1)
|
||||
user.unset_machine(src)
|
||||
return
|
||||
|
||||
var/dat = "<B>Garland Corp genetic reconstitutor</B><BR>"
|
||||
dat += "<HR>"
|
||||
if(!pod1)
|
||||
pod1 = locate() in orange(1, src)
|
||||
|
||||
if(!pod1)
|
||||
dat += "<b><font color=red>Unable to locate cloning pod.</font></b><br>"
|
||||
else if(istype(pod1))
|
||||
dat += "<b><font color=green>Cloning pod connected.</font></b><br>"
|
||||
|
||||
dat += "<table border=1>"
|
||||
dat += "<tr>"
|
||||
dat += "<td><b>GENE1</b></td>"
|
||||
dat += "<td><b>GENE2</b></td>"
|
||||
dat += "<td><b>GENE3</b></td>"
|
||||
dat += "<td><b>GENE4</b></td>"
|
||||
dat += "<td><b>GENE5</b></td>"
|
||||
dat += "<td><b>GENE6</b></td>"
|
||||
dat += "<td><b>GENE7</b></td>"
|
||||
dat += "<td></td>"
|
||||
dat += "<td></td>"
|
||||
dat += "</tr>"
|
||||
|
||||
//WIP gene sequences
|
||||
for(var/sequence_num = 1, sequence_num <= discovered_genesequences.len, sequence_num += 1)
|
||||
var/datum/genesequence/cur_genesequence = discovered_genesequences[sequence_num]
|
||||
dat += "<tr>"
|
||||
var/num_correct = 0
|
||||
for(var/curindex = 1, curindex <= 7, curindex++)
|
||||
var/bgcolour = "#ffffff"//white ffffff, red ff0000
|
||||
|
||||
//background colour hints at correct positioning
|
||||
if(manually_placed_genomes[sequence_num][curindex])
|
||||
//green background if slot is correctly filled
|
||||
if(manually_placed_genomes[sequence_num][curindex] == cur_genesequence.full_genome_sequence[curindex])
|
||||
bgcolour = "#008000"
|
||||
num_correct += 1
|
||||
if(num_correct == 7)
|
||||
discovered_genesequences -= cur_genesequence
|
||||
completed_genesequences += cur_genesequence
|
||||
manually_placed_genomes[sequence_num] = new/list(7)
|
||||
interact(user)
|
||||
return
|
||||
//yellow background if adjacent to correct slot
|
||||
if(curindex > 1 && manually_placed_genomes[sequence_num][curindex] == cur_genesequence.full_genome_sequence[curindex - 1])
|
||||
bgcolour = "#ffff00"
|
||||
else if(curindex < 7 && manually_placed_genomes[sequence_num][curindex] == cur_genesequence.full_genome_sequence[curindex + 1])
|
||||
bgcolour = "#ffff00"
|
||||
|
||||
var/this_genome_slot = manually_placed_genomes[sequence_num][curindex]
|
||||
if(!this_genome_slot)
|
||||
this_genome_slot = "- - - - -"
|
||||
dat += "<td><a href='?src=\ref[src];sequence_num=[sequence_num];insertpos=[curindex]' style='background-color:[bgcolour]'>[this_genome_slot]</a></td>"
|
||||
dat += "<td><a href='?src=\ref[src];reset=1;sequence_num=[sequence_num]'>Reset</a></td>"
|
||||
//dat += "<td><a href='?src=\ref[src];clone=1;sequence_num=[sequence_num]'>Clone</a></td>"
|
||||
dat += "</tr>"
|
||||
|
||||
//completed gene sequences
|
||||
for(var/sequence_num = 1, sequence_num <= completed_genesequences.len, sequence_num += 1)
|
||||
var/datum/genesequence/cur_genesequence = completed_genesequences[sequence_num]
|
||||
dat += "<tr>"
|
||||
for(var/curindex = 1, curindex <= 7, curindex++)
|
||||
var/this_genome_slot = cur_genesequence.full_genome_sequence[curindex]
|
||||
dat += "<td style='background-color:#008000'>[this_genome_slot]</td>"
|
||||
dat += "<td><a href='?src=\ref[src];wipe=1;sequence_num=[sequence_num]'>Wipe</a></td>"
|
||||
dat += "<td><a href='?src=\ref[src];clone=1;sequence_num=[sequence_num]'>Clone</a></td>"
|
||||
dat += "</tr>"
|
||||
|
||||
dat += "</table>"
|
||||
|
||||
dat += "<br>"
|
||||
dat += "<hr>"
|
||||
dat += "<a href='?src=\ref[src];close=1'>Close</a>"
|
||||
user << browse(dat, "window=reconstitutor;size=600x500")
|
||||
user.set_machine(src)
|
||||
onclose(user, "reconstitutor")
|
||||
|
||||
/obj/machinery/computer/reconstitutor/animal/Topic(href, href_list)
|
||||
if(..()) return 1
|
||||
if(href_list["clone"])
|
||||
var/sequence_num = text2num(href_list["sequence_num"])
|
||||
var/datum/genesequence/cloned_genesequence = completed_genesequences[sequence_num]
|
||||
if(pod1)
|
||||
if(pod1.occupant)
|
||||
visible_message("\red \icon[src] The cloning pod is currently occupied.")
|
||||
else if(pod1.biomass < CLONE_BIOMASS)
|
||||
visible_message("\red \icon[src] Not enough biomass in the cloning pod.")
|
||||
else if(pod1.mess)
|
||||
visible_message("\red \icon[src] Error: clonepod malfunction.")
|
||||
else
|
||||
visible_message("\blue \icon[src] [src] clones something from a reconstituted gene sequence!")
|
||||
playsound(src.loc, 'sound/effects/screech.ogg', 50, 1, -3)
|
||||
pod1.occupant = new cloned_genesequence.spawned_type(pod1)
|
||||
pod1.locked = 1
|
||||
pod1.icon_state = "pod_1"
|
||||
//pod1.occupant.name = "[pod1.occupant.name] ([rand(0,999)])"
|
||||
pod1.biomass -= CLONE_BIOMASS
|
||||
else
|
||||
usr << "\red \icon[src] Unable to locate cloning pod!"
|
||||
|
||||
/obj/machinery/computer/reconstitutor/Topic(href, href_list)
|
||||
if(..()) return 1
|
||||
if(href_list["insertpos"])
|
||||
//world << "inserting gene for genesequence [href_list["insertgenome"]] at pos [text2num(href_list["insertpos"])]"
|
||||
var/sequence_num = text2num(href_list["sequence_num"])
|
||||
var/insertpos = text2num(href_list["insertpos"])
|
||||
|
||||
var/old_genome = manually_placed_genomes[sequence_num][insertpos]
|
||||
discovered_genomes = sortList(discovered_genomes)
|
||||
var/new_genome = input(usr, "Which genome do you want to insert here?") as null|anything in discovered_genomes
|
||||
if(new_genome == "! Clear !")
|
||||
manually_placed_genomes[sequence_num][insertpos] = null
|
||||
else if(new_genome)
|
||||
manually_placed_genomes[sequence_num][insertpos] = new_genome
|
||||
discovered_genomes.Remove(new_genome)
|
||||
if(old_genome)
|
||||
discovered_genomes.Add(old_genome)
|
||||
updateDialog()
|
||||
|
||||
else if(href_list["reset"])
|
||||
var/sequence_num = text2num(href_list["sequence_num"])
|
||||
for(var/curindex = 1, curindex <= 7, curindex++)
|
||||
var/old_genome = manually_placed_genomes[sequence_num][curindex]
|
||||
manually_placed_genomes[sequence_num][curindex] = null
|
||||
if(old_genome)
|
||||
discovered_genomes.Add(old_genome)
|
||||
updateDialog()
|
||||
|
||||
else if(href_list["wipe"])
|
||||
var/sequence_num = text2num(href_list["sequence_num"])
|
||||
var/datum/genesequence/wiped_genesequence = completed_genesequences[sequence_num]
|
||||
completed_genesequences.Remove(wiped_genesequence)
|
||||
discovered_genesequences.Add(wiped_genesequence)
|
||||
|
||||
discovered_genomes.Add(wiped_genesequence.full_genome_sequence)
|
||||
discovered_genomes = sortList(discovered_genomes)
|
||||
updateDialog()
|
||||
|
||||
else if(href_list["clone"])
|
||||
var/sequence_num = text2num(href_list["sequence_num"])
|
||||
var/datum/genesequence/cloned_genesequence = completed_genesequences[sequence_num]
|
||||
visible_message("\blue \icon[src] [src] clones a packet of seeds from a reconstituted gene sequence!")
|
||||
playsound(src.loc, 'sound/effects/screech.ogg', 50, 1, -3)
|
||||
new cloned_genesequence.spawned_type(src.loc)
|
||||
|
||||
else if(href_list["close"])
|
||||
usr.unset_machine(src)
|
||||
usr << browse(null, "window=reconstitutor")
|
||||
|
||||
/obj/machinery/computer/reconstitutor/proc/scan_fossil(var/obj/item/weapon/fossil/scan_fossil)
|
||||
//see whether we accept these kind of fossils
|
||||
if(accepted_fossil_types.len && !accepted_fossil_types.Find(scan_fossil.type))
|
||||
return SCANFOSSIL_RETVAL_WRONGTYPE
|
||||
|
||||
//see whether we are going to discover a new sequence, new genome for existing sequence or nothing
|
||||
var/new_genome_prob = discovered_genesequences.len * 50
|
||||
|
||||
if( (new_genome_prob >= 100 || prob(new_genome_prob)) && undiscovered_genomes.len)
|
||||
//create a new genome for an existing gene sequence
|
||||
var/newly_discovered_genome = pick(undiscovered_genomes)
|
||||
undiscovered_genomes -= newly_discovered_genome
|
||||
discovered_genomes.Add(newly_discovered_genome)
|
||||
|
||||
//chance to discover a second genome
|
||||
if(prob(75))
|
||||
newly_discovered_genome = pick(undiscovered_genomes)
|
||||
undiscovered_genomes -= newly_discovered_genome
|
||||
discovered_genomes.Add(newly_discovered_genome)
|
||||
//chance to discover a third genome
|
||||
if(prob(50))
|
||||
newly_discovered_genome = pick(undiscovered_genomes)
|
||||
undiscovered_genomes -= newly_discovered_genome
|
||||
discovered_genomes.Add(newly_discovered_genome)
|
||||
|
||||
else if(undiscovered_genesequences.len)
|
||||
//discover new gene sequence
|
||||
var/datum/genesequence/newly_discovered_genesequence = pick(undiscovered_genesequences)
|
||||
undiscovered_genesequences -= newly_discovered_genesequence
|
||||
discovered_genesequences += newly_discovered_genesequence
|
||||
//add genomes for new gene sequence to pool of discoverable genomes
|
||||
undiscovered_genomes.Add(newly_discovered_genesequence.full_genome_sequence)
|
||||
manually_placed_genomes.Add(null)
|
||||
manually_placed_genomes[manually_placed_genomes.len] = new/list(7)
|
||||
|
||||
else
|
||||
//there's no point scanning any more fossils, we've already discovered everything
|
||||
return SCANFOSSIL_RETVAL_NOMOREGENESEQ
|
||||
|
||||
return SCANFOSSIL_RETVAL_SUCCESS
|
||||
|
||||
#undef SCANFOSSIL_RETVAL_WRONGTYPE
|
||||
#undef SCANFOSSIL_RETVAL_NOMOREGENESEQ
|
||||
#undef SCANFOSSIL_RETVAL_SUCCESS
|
||||
|
||||
|
||||
/obj/item/weapon/circuitboard/reconstitutor
|
||||
name = "Circuit board (Flora Reconstitution Console)"
|
||||
build_path = "/obj/machinery/computer/reconstitutor"
|
||||
origin_tech = "programming=2;biotech=4;materials=6"
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/scanning_module/adv" = 2,
|
||||
"/obj/item/weapon/stock_parts/manipulator/nano" = 1,
|
||||
"/obj/item/weapon/stock_parts/matter_bin" = 1,
|
||||
"/obj/item/weapon/stock_parts/capacitor/adv" = 1)
|
||||
|
||||
/obj/item/weapon/circuitboard/reconstitutor/animal
|
||||
name = "Circuit board (Fauna Reconstitution Console)"
|
||||
build_path = "/obj/machinery/computer/reconstitutor/animal"
|
||||
origin_tech = "programming=2;biotech=4;materials=6"
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/scanning_module/adv" = 2,
|
||||
"/obj/item/weapon/stock_parts/manipulator/nano" = 1,
|
||||
"/obj/item/weapon/stock_parts/matter_bin" = 1,
|
||||
"/obj/item/weapon/stock_parts/capacitor/adv" = 1)
|
||||
@@ -1,37 +1,8 @@
|
||||
|
||||
/datum/controller/game_controller
|
||||
var/list/all_animal_genesequences = list()
|
||||
var/list/all_plant_genesequences = list()
|
||||
var/list/genome_prefixes = null
|
||||
var/list/artifact_spawning_turfs = list()
|
||||
var/list/digsite_spawning_turfs = list()
|
||||
|
||||
var/list/spawn_types_animal = list("/mob/living/carbon/slime",\
|
||||
"/mob/living/simple_animal/hostile/alien",\
|
||||
"/mob/living/simple_animal/hostile/alien/drone",\
|
||||
"/mob/living/simple_animal/hostile/alien/sentinel",\
|
||||
"/mob/living/simple_animal/hostile/giant_spider",\
|
||||
"/mob/living/simple_animal/hostile/giant_spider/hunter",\
|
||||
"/mob/living/simple_animal/hostile/giant_spider/nurse",\
|
||||
"/mob/living/simple_animal/hostile/creature",\
|
||||
"/mob/living/simple_animal/hostile/samak",\
|
||||
"/mob/living/simple_animal/hostile/diyaab",\
|
||||
"/mob/living/simple_animal/hostile/shantak",\
|
||||
"/mob/living/simple_animal/tindalos",\
|
||||
"/mob/living/simple_animal/yithian")
|
||||
|
||||
var/list/spawn_types_plant = list("/obj/item/seeds/walkingmushroommycelium",\
|
||||
"/obj/item/seeds/killertomatoseed",\
|
||||
"/obj/item/seeds/shandseed",
|
||||
"/obj/item/seeds/mtearseed",
|
||||
"/obj/item/seeds/thaadra",\
|
||||
"/obj/item/seeds/telriis",\
|
||||
"/obj/item/seeds/jurlmah",\
|
||||
"/obj/item/seeds/amauri",\
|
||||
"/obj/item/seeds/gelthi",\
|
||||
"/obj/item/seeds/vale",\
|
||||
"/obj/item/seeds/surik")
|
||||
|
||||
#define XENOARCH_SPAWN_CHANCE 0.5
|
||||
#define DIGSITESIZE_LOWER 4
|
||||
#define DIGSITESIZE_UPPER 12
|
||||
@@ -104,40 +75,6 @@ datum/controller/game_controller/proc/SetupXenoarch()
|
||||
var/turf/simulated/mineral/artifact_turf = pop(artifacts_spawnturf_temp)
|
||||
artifact_turf.artifact_find = new()
|
||||
|
||||
//make sure we have some prefixes for the gene sequences
|
||||
if(!genome_prefixes)
|
||||
genome_prefixes = alphabet_uppercase.Copy()
|
||||
if(!genome_prefixes.len)
|
||||
qdel(genome_prefixes)
|
||||
genome_prefixes = alphabet_uppercase.Copy()
|
||||
|
||||
//create animal gene sequences
|
||||
while(spawn_types_animal.len && genome_prefixes.len)
|
||||
var/datum/genesequence/new_sequence = new/datum/genesequence()
|
||||
new_sequence.spawned_type_text = pick(spawn_types_animal)
|
||||
new_sequence.spawned_type = text2path(new_sequence.spawned_type_text)
|
||||
spawn_types_animal -= new_sequence.spawned_type_text
|
||||
|
||||
var/prefixletter = pick(genome_prefixes)
|
||||
genome_prefixes -= prefixletter
|
||||
while(new_sequence.full_genome_sequence.len < 7)
|
||||
new_sequence.full_genome_sequence.Add("[prefixletter][pick(alphabet_uppercase)][pick(alphabet_uppercase)][pick(1,2,3,4,5,6,7,8,9,0)][pick(1,2,3,4,5,6,7,8,9,0)]")
|
||||
|
||||
all_animal_genesequences.Add(new_sequence)
|
||||
|
||||
//create plant gene sequences
|
||||
while(spawn_types_plant.len && genome_prefixes.len)
|
||||
var/datum/genesequence/new_sequence = new/datum/genesequence()
|
||||
new_sequence.spawned_type = pick(spawn_types_plant)
|
||||
spawn_types_plant -= new_sequence.spawned_type_text
|
||||
|
||||
var/prefixletter = pick(genome_prefixes)
|
||||
genome_prefixes -= prefixletter
|
||||
while(new_sequence.full_genome_sequence.len < 7)
|
||||
new_sequence.full_genome_sequence.Add("[prefixletter][pick(1,2,3,4,5,6,7,8,9,0)][pick(1,2,3,4,5,6,7,8,9,0)][pick(alphabet_uppercase)][pick(alphabet_uppercase)]")
|
||||
|
||||
all_plant_genesequences.Add(new_sequence)
|
||||
|
||||
#undef XENOARCH_SPAWN_CHANCE
|
||||
#undef DIGSITESIZE_LOWER
|
||||
#undef DIGSITESIZE_UPPER
|
||||
|
||||
+4
-4
@@ -5801,7 +5801,7 @@
|
||||
"chC" = (/obj/machinery/door/airlock/medical{autoclose = 0; icon_state = "door_open"; id_tag = "cubicle1"; name = "Cubicle 1"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/patient_wing)
|
||||
"chD" = (/obj/machinery/door/airlock/medical{autoclose = 0; icon_state = "door_open"; id_tag = "cubicle2"; name = "Cubicle 2"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/patient_wing)
|
||||
"chE" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "hydrofloor"},/area/rnd/xenobiology/xenoflora)
|
||||
"chF" = (/obj/machinery/computer/reconstitutor,/obj/machinery/light_switch{pixel_x = 26; pixel_y = -6},/turf/simulated/floor{icon_state = "hydrofloor"},/area/rnd/xenobiology/xenoflora)
|
||||
"chF" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor{icon_state = "hydrofloor"},/area/rnd/xenobiology)
|
||||
"chG" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes/buildable{charge = 0; RCon_tag = "Solar - Aft Starboard"},/turf/simulated/floor/plating,/area/maintenance/starboardsolar)
|
||||
"chH" = (/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/engineering/atmos)
|
||||
"chI" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{dir = 8; icon_state = "whitegreen"},/area/rnd/xenobiology/xenoflora_storage)
|
||||
@@ -6878,7 +6878,7 @@
|
||||
"cCn" = (/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "virology_sensor"; pixel_x = 25; pixel_y = 12},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "virology_pump"; tag_exterior_door = "virology_outer"; frequency = 1379; id_tag = "virology_airlock"; tag_interior_door = "virology_inner"; pixel_x = 25; req_access = list(13); tag_chamber_sensor = "virology_sensor"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1379; id_tag = "virology_pump"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 5},/area/maintenance/medbay)
|
||||
"cCo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/medical/virology)
|
||||
"cCp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/engineering)
|
||||
"cCq" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/computer/reconstitutor/animal,/turf/simulated/floor{icon_state = "hydrofloor"},/area/rnd/xenobiology)
|
||||
"cCq" = (/obj/machinery/light_switch{pixel_x = 26; pixel_y = -6},/turf/simulated/floor{icon_state = "hydrofloor"},/area/rnd/xenobiology/xenoflora)
|
||||
"cCr" = (/obj/structure/sign/securearea,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/wall/r_wall,/area/engineering)
|
||||
"cCs" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating/airless,/area/space)
|
||||
"cCt" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plating/airless,/area/space)
|
||||
@@ -7539,7 +7539,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafccRccRcebccTcfZceiccUccWccVbYIcgeccHccIcgfccKccLcgmccNccOcgoccXcdaccZcdecdbbqTcdycdQcdFcekceecembsccdccddaJEcdfcaqbTFcbIcdgcdhcdicgOcdkcdlcgRcdncdocgWcdqcdrcdsbqtcaEcducdvcdwcaIbZxbWQcenbZycdxbqbbZAcdzcdAbqabZAcaPbYfbYfcaQbYccbYcbXcbZbYcchBccacjfcdLcdLbyFbBucdLcdOcdPceqcdRcdOcdSbBpbyebydcdScdScdScdScgXbyebydcdScdSbXjcdXbpZbpAceachabpybpsbycbycbycbycbycbycbycbycbycbycbycbycbycbycbycbycchicegcegcehbKtbKtbLTbLTchnbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacejcejcejcejcejcejcejcetcesbYIbYIbYIbYIbYIchpchuchqchqchqchzcewbXzbXybYeceybYjceEceTceSceWceUceXbSUcezaJFceYaJFcaqbTFcbIceDcfacfacfaceFceGbTJchPchLbTJcbKcbNceJceHcaEchSceLceMcaIbZxbWQceNbZyceOcePbZAbZAbZAbZAbZAccbceRbYfcaQbYcccdbszbYcbYcchBcifcjfcdLbsycfbcfbcfccdOcfdciycffcdOcfgcfhcfhcfhciCciLciKbsxciPcfnbsecfpcdScfqcfrciQbUnbUnbUnbUnaaaaafaaaaaaaaaaahaahaahaafaaaaaaaafaaaaaaaafaafaafcftcfBcfvbNebKsbKtbKtbLTbLUbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafcejcfwcfxcvbcvccwfcejcfDcfCcfFcfEcfHciVcjacjacfKcfJcfJcjlcjpcbqbXzbXybYecfNcaicfOcfQcfPcvtcwecggbSUaJFaJFcaqceBcaqbTFcbIcfVcfWcfWcfWcfXcbIcfYcjtcgacfYcgbcgccgdcjvcaEcjCceLcgicaIcghccfcwEbZycgkcglbZycjIbLvbVicgnccgcchbYfccjcciccicckcclcclcclcclccmcdLckncgycgycgzcgActscgrcgpcgucgtcgGcgGcgGcgxcgIcgIcgJckocgLcgDcgMcdScgNcwDcgPcgNaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafcgQbKqbKqbKrbKsbKsbKtbKtbKtbKtbKuaafaafaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaafaafaafcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEaaaaaacgScgTcgTcgTcgUcsdcejcgHcgFckFcgKckQckNclgclfcluclpclCchcchfchechhchgchjclGbSUbSUbSUbSUbSUbSUbSUbSUcmgclVcaqcmkcaqbTFcbIcbIctpctqctrcbIcbIcsnchschtcfYcaEcaEcaEcaEcaEcaIchkchlcaIchwcsZchwbZyctGctbbZychAchBbVichCbVichDbYfccobYfbYfccpcdCcdCcdCcdDbYfcdLchIchJchJchKcmschMchochOcmwchQckLckLckLckLcuOctUckLcmGckLchEchFcdSchZciachGcgNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaafaafaafcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEaaaaaacgScgTcgTcgTcgUcsdcejcgHcgFckFcgKckQckNclgclfcluclpclCchcchfchechhchgchjclGbSUbSUbSUbSUbSUbSUbSUbSUcmgclVcaqcmkcaqbTFcbIcbIctpctqctrcbIcbIcsnchschtcfYcaEcaEcaEcaEcaEcaIchkchlcaIchwcsZchwbZyctGctbbZychAchBbVichCbVichDbYfccobYfbYfccpcdCcdCcdCcdDbYfcdLchIchJchJchKcmschMchochOcmwchQckLckLckLckLcuOctUckLcmGckLchEcCqcdSchZciachGcgNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacgEchHcmPchHcgEchNcmQchNcgEchRcmRchRcgEaaaaaaciicgTcgTcgUcgUcyScejchUchTchWchVcmXchXcidciccnecieciecigciecbqbXzcihbYecikcimcilciocinciocipcirciqciqciAciAciAciAbTFciGciHciIciIciJcnfcngciMciXciOcnucnhciRciSciSciTciUcaIcaIcaIcnwcdEckqbZybZybZybZychBchBbViciYbViciZbYfccobYfaaaaaaaaaaaaaaaaaaaaacdLcjgcisciucitcjjcjkcivcjmcjncjociwcjocjocixcyVcyUcgIcnEcgIciWcyTcdScnFcjwcjxcgNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacgEchHcjbchHcgEchNcjcchNcgEchRcjdchRcgEaaaaaaciicgTcgUcgUcgUcjBcnIcjhcjechWcjicnLcnKcnPcnNcjzcjycjDcjAcjEcbqbXzcjFchjcjGcnQcjHcjJcjJcjJcjKcjMcjLcjNcolcjOceAciAbTFciGcxnciIckbckccxecubcxJckgckhctQcxwckkcklciScywciUconcoqcxYcjQcjPcdHcyLcdIcdIcdJcdIcdKbVibVibVibVibYfccobYfaaaaaaaaaaaaaaaaaaaaacdLcorcjRcjTcjSckEcdOcotcdOckGckHcjXcjUcjUcjYcgIcgIckecjZcjUckickOcdSckPcwGckRcgNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacgEckrckuckscgEckzckBckAcgEckDckJckIcgEaaaaafciiclbcgTcgUcgUcgUcejckMckKchWchWcoAchWchWchWchWckTcieckWckYcbqclackZcldclccoBcleclhclhclhclicljcljclkciAcllcgqclwclxciGcDdciIclzclAclBcoCclDclEclFcoFclHclIclJciScDcciUcoJcoLclNclnclmclQclNclRclSclTbYfceQcdIcdIcdIcdIcdIcltbYfaaaaaaaaaaaaaaaaaaaaacdLcmacmbcmccmdcdOcmecmfcpdcdScmhcmicmicmiclvcpfcmlclPclOcmicmicmncdScmocDFcmqcmraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
@@ -7557,7 +7557,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaaaaaaaaacptcpFczmcrWcrWczpcxGcrWczpcrWcxIcBucuEcuEcBzcuEcBAcuEcuEcuYcBDczncpFcpFcyjcylcykcyncBEcyocpFcBHcyqcyscyscBIcytcoTcxucyvcnOchbcpacyxcpacBKcyycpjcpjcpjcpjcpjcpjcpjbPxcvMcvNcyMcyNcxLcyOcxLcxNcyPcvNcyQcBLcrGaaaaaaaaaaaaaaaaaacqvcuVcBOctFctFchdcyAchmcyWctMctDctNcyBctMcvhcyYcqvaaaaaaaaaaaacdOcplcplcplckXcBRczacrNcrNcrNcyfcrNczbcrNczccrNczdaafaafcrPaafckVckSckSckSckSckyckxckwckvckvckvckvckUaafcrPaaacBscBscBscBsaaaaaaaaacBscBscBscBscBscBscBsaaaaaaaaacBscBscBscBsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaaaaaaaaacptcpFcqXcpFcpFcpFczMcpFcpFcpFczMcpFcpFcpFcyCcpFcvWcpFcpFcpFcyDczncpFcpFcBScAtctfcyGcwgcCccwgcwgcyqcCecyIcCfcytcoTcxucoTcnOcijchYchychvczfcpacnOczgchrchrczhcCicjqczNczOcvNcxNczPczQcxNczRczSczTcvNczUcCncrGaaaaaaaaaaaaaaaaaacqvczWcuMcCBcuVczYczZcAactFcAbcAccsPcyBczWczjcAecqvaaaaaaaaaaaackEcdOcAfcAgcAgczkcAicAjcAkcAlcAmcAncAocApcAqcokcAraaaaaacrPaafcwjcwjcwjcwjcwjaaackxaafcwjcwjcwjcwjcwjaaacrPaaacBscBscBscBsaaaaaacBscBscBscBscBscBscBscBscBsaaaaaacBscBscBscBsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaIaaaaaaczlcpFcqXcpFcCFcxacufcxacCJcxacufcxacCJcxacxccxacxbcCKctectdcCNctfczsczucztczwczvczxcwgczzczycwgcwgcwgcwgcwgczAcjscjrcjscnOcnOcnOcnOcnOcnOcnOcnOczDchrchrczEcANcAObPxcAPcvNcAQcARcCQcATcCYcAVcAWcvNcAXcAYcrGaaaaaaaaaaaaaaaaaacqvcuQcAZcAectFcBacBbcBcctFcBdcBeczHczGczIcBeczKcqvaafaafaaaaaaaaaaaabquaaacdOcBlcDmcDacBocBpcDmcDpcBrcBpcDmcDtcdOaaaaaaccMaaaaafaaaaafaaaaafaaackxaaaaafaaaaafaafaafaafcrPaaacBscBscBscBsaaaaaacBscBscBscBscBscBscBscBscBsaaaaaacBscBscBscBsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccMaaaaaaaaaaaIaaaaaacAdcpFcqXcpFcDxcylcqXcpFcDNcylcqXcpFcAucylcpFcpFcDOcpFcDUcylcEccAzcAycABcEicErcACcAEcwgcEycAFcjucAIcAKcumcAMcALcumcAScumcBfcuocBgcBicBhcBhcBjckacBVcBWcBWcBXcBYcAObPxcBZcvNcvNcCacCbcFecCbcCacCdcvNcrGcFgcrGaaaaaaaaaaaaaaaaaacqvctFcFrcuVctFckdcChcFCctFcCjcCkcqycgvcBtcCkcCocrHaaaaaaaaaaaaaaaaaacgwaafcdOcCqcFEclUcomclscFFclqcomclocFKclWcdOaaaaaacrPaaactXctXctXctXctXaafckxaafctXctXctXctXctXaafcrPaaacBscBscBscBscBscBscBscBscBscBscBscBscBscBscBscBscBscBscBscBscBsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccMaaaaaaaaaaaIaaaaaacAdcpFcqXcpFcDxcylcqXcpFcDNcylcqXcpFcAucylcpFcpFcDOcpFcDUcylcEccAzcAycABcEicErcACcAEcwgcEycAFcjucAIcAKcumcAMcALcumcAScumcBfcuocBgcBicBhcBhcBjckacBVcBWcBWcBXcBYcAObPxcBZcvNcvNcCacCbcFecCbcCacCdcvNcrGcFgcrGaaaaaaaaaaaaaaaaaacqvctFcFrcuVctFckdcChcFCctFcCjcCkcqycgvcBtcCkcCocrHaaaaaaaaaaaaaaaaaacgwaafcdOchFcFEclUcomclscFFclqcomclocFKclWcdOaaaaaacrPaaactXctXctXctXctXaafckxaafctXctXctXctXctXaafcrPaaacBscBscBscBscBscBscBscBscBscBscBscBscBscBscBscBscBscBscBscBscBsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrPaafaafaafaaIaafaafcAdcpFcFLcBycBxcFVcFUcBCcBBcGgcFWcBGcBFcGhcpFcBvcGocGucBJcBMcGvcnycnycnycnycnycnycnycnycGAcBNczAcBPcBQcoTcGEcoTcoTcxucoTcoTcGMcoTcBQcBTcCpcBUcCrcGOcHjcHacCPcHCcAObPwcCRcCScCTcCacAGcAVcBwcCacCtcCscCucHVcCXaaaaaaaaaaaaaaaaaacqvcCvctDcuQcIAcDbcuQckfckjcDeaafaaachxcCxcCwcCyaaaaaaaaaaacaaaaaaaaaaaaaaacdOcDhcplcplcomcDicplcplcomcDicplcplcdOaafaafcrPaafckVckSckSckSckSckyckxckwckvckvckvckvckUaafcrPaaacBscBscBscBscBscBscBscBscBscBscBscBscBscBscBscBscBscBscBscBscBsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrPcCzaaaaaaaaIaaaaaacCAcCCcIMcCEcCDcCGcIRcCHcCDcCGcIRcCHcCDcCGcCIcCIcITcCHcCDcCGcIZcnyaaacCMcCLcCVcCUcCZcCWcDjcDgcDkcDkcJhcDlcDocDncDqcJlcDncDqcDocDrckmcDscDrczAczAcAOcJAcJzcDPcDQcAObNUcDRcDScDTcCacCbcJBcCbcCacDvcDucDfaafaaaaaaaaaaaaaaaaaaaaacqvcCvcDVcDwckpckpcDwcsPcDYcqvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacdOcDZcplcplcomcEacplcplcomcEacplcplcdOaaaaaacrPaafcwjcwjcwjcwjcwjaaackxaaacwjcwjcwjcwjcwjaaacrPaaacBscBscBscBscBscBscBscBscBscBscBscBscBscBscBscBscBscBscBscBscBsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrPcJCcJFcJFcJUcJFcJFcJFcJFcJVcJFcKdcJFcJVcJFcKdcJFcJVcJFcKdcJFcJFcJFcKdcJFcKdcJFcKoaafaaacDzcDycDBcDAcDDcDCcDjcDEcDkclrcDHcDGcDJclyckCcDKcDWcDMcDJcEbcEdcKpcDraaaaafcAOcKqcECcEDaafaaabNUbPxbPxbSkcCaclZcEFclYcCaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqvcEecuXcEfcgjcgjcEfcuQcEKcqvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacdOcplcplcplcomcELcplcplcomcELcplcplcdOaacaaacrPaaaaaaaafaafaafaaaaaacmTaafaaaaaaaafaafaaaaaacrPaaacBscBscBscBscBscBscBscBscBscBscBscBscBscBscBscBscBscBscBscBscBsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
|
||||
+1
-2
@@ -266,7 +266,6 @@
|
||||
"ff" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/outpost/abandoned)
|
||||
"fg" = (/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = -27},/turf/simulated/floor/wood,/area/outpost/research/hallway)
|
||||
"fh" = (/obj/structure/bookcase/manuals/xenoarchaeology,/turf/simulated/floor/wood,/area/outpost/research/hallway)
|
||||
"fi" = (/obj/machinery/computer/reconstitutor,/turf/simulated/floor/wood,/area/outpost/research/hallway)
|
||||
"fj" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/reagent_dispensers/water_cooler,/turf/simulated/floor/wood,/area/outpost/research/hallway)
|
||||
"fk" = (/obj/structure/extinguisher_cabinet{pixel_x = -25; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/outpost/research/hallway)
|
||||
"fl" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "white"},/area/outpost/research/hallway)
|
||||
@@ -1682,7 +1681,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaecocqcpcrabababababababababababababababababababababababababababababababababababababababababababababababababababababalaaaaaaexexexexexexexcscwcxcyctctcucvctcycFcEcDcCcBcAczcMcMcLcKcJcIcHcGcOdDddazazalalalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaefxemelekcrababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaexexexexexexexejcwdAdBdCeifFdFdGdYaGeadZaGebedecehdNjQaGdVdUaidWdWdWdWeeefegalalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaedLdKdMcrdJdIcrcrcrcrabababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaexexexexexexexdHcwdAdBdCdOdPdFdGdyaGdxdwaGkaaGaGaGaGcCaGkoduaidtdodpdmdndqdrdqdqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaacacacacacaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaegzfefEfHgVfGafbCeYcrfbfacrabababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaexexexexexexexaifkflfjdCfhfidFfgfvaGfzfwfsfrfuftfoaGeLeKfmeRaifnfAfBfCfDdqalalalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaacacacacacaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaegzfefEfHgVfGafbCeYcrfbfacrabababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaexexexexexexexaifkflfjdCfhdGdFfgfvaGfzfwfsfrfuftfoaGeLeKfmeRaifnfAfBfCfDdqalalalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaacacacacacaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaefcfdfeffeUeTeWeVeYeXfaeZfbcrabababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaeAereseyezeresevewepeqeneneneoeoeoeoeoeSeReQePeOeNeMaGfqfpeJeIaieHeFeGeDeEeCaGaGeBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahSfchbfcfEfEdJheeUcrekhdcrfahccrabababababababababababababababababababababababababababababababababababababababababababababababdXaaaaaaaaaagMgPgQgNgOgTgQgRgSgWgXgUhahfeogYgZgweoloeRgBgAgDgCgEaGgGgFgIgHaiaigJaiaiaieReRgKeBeBeBeBgLeBeBeBeBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaegugvfEgsgtfEcpgqeTgrgpgocrcrcrcrcrcrababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaagngbgcgcgcgcgdgegfggghgigjgkeoglgmfVfUfTeIfXfWeReRfYfweReReJeIgafZfKfLfIlyeReRfMeBfOfPeBfNfRfSfQeBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
|
||||
+2
-1
@@ -1,5 +1,5 @@
|
||||
"a" = (/turf/space,/area/space)
|
||||
|
||||
|
||||
(1,1,1) = {"
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
@@ -257,3 +257,4 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
"}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user