Merge branch 'master' of github.com:Baystation12/Baystation12
@@ -127,6 +127,7 @@
|
||||
#define FILE_DIR "code/modules/projectiles/projectile"
|
||||
#define FILE_DIR "code/modules/recycling"
|
||||
#define FILE_DIR "code/modules/research"
|
||||
#define FILE_DIR "code/modules/security levels"
|
||||
#define FILE_DIR "code/unused"
|
||||
#define FILE_DIR "code/unused/beast"
|
||||
#define FILE_DIR "code/unused/computer2"
|
||||
@@ -170,7 +171,6 @@
|
||||
#define FILE_DIR "sound/mecha"
|
||||
#define FILE_DIR "sound/misc"
|
||||
#define FILE_DIR "sound/piano"
|
||||
#define FILE_DIR "sound/spells"
|
||||
#define FILE_DIR "sound/voice"
|
||||
#define FILE_DIR "sound/weapons"
|
||||
// END_FILE_DIR
|
||||
@@ -790,6 +790,7 @@
|
||||
#include "code\modules\mob\living\say.dm"
|
||||
#include "code\modules\mob\living\blob\blob.dm"
|
||||
#include "code\modules\mob\living\carbon\carbon.dm"
|
||||
#include "code\modules\mob\living\carbon\alien\alien.dm"
|
||||
#include "code\modules\mob\living\carbon\alien\say.dm"
|
||||
#include "code\modules\mob\living\carbon\alien\humanoid\alien_powers.dm"
|
||||
#include "code\modules\mob\living\carbon\alien\humanoid\death.dm"
|
||||
@@ -966,6 +967,7 @@
|
||||
#include "code\modules\research\rdmachines.dm"
|
||||
#include "code\modules\research\research.dm"
|
||||
#include "code\modules\research\server.dm"
|
||||
#include "code\modules\security levels\security levels.dm"
|
||||
#include "code\WorkInProgress\AI_Visibility.dm"
|
||||
#include "code\WorkInProgress\buildmode.dm"
|
||||
#include "code\WorkInProgress\detective_work.dm"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
icon = 'alien.dmi'
|
||||
gender = NEUTER
|
||||
|
||||
toxloss = 250
|
||||
var/storedPlasma = 250
|
||||
var/alien_invis = 0.0
|
||||
var/max_plasma = 500
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
name = "alien hunter"
|
||||
|
||||
health = 150
|
||||
toxloss = 100
|
||||
storedPlasma = 100
|
||||
max_plasma = 150
|
||||
icon_state = "alien_s"
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
name = "alien sentinel"
|
||||
|
||||
health = 125
|
||||
toxloss = 100
|
||||
storedPlasma = 100
|
||||
max_plasma = 250
|
||||
icon_state = "alien_s"
|
||||
|
||||
|
||||
@@ -1068,9 +1068,9 @@
|
||||
flags = FPRINT | TABLEPASS | CONDUCT
|
||||
|
||||
/obj/item/stack/sheet/r_metal
|
||||
name = "reinforced metal"
|
||||
singular_name = "reinforced metal sheet"
|
||||
desc = "A very heavy sheet of metal."
|
||||
name = "steel"
|
||||
singular_name = "steel sheet"
|
||||
desc = "This sheet is an alloy of iron and plasma."
|
||||
icon_state = "sheet-r_metal"
|
||||
item_state = "sheet-metal"
|
||||
m_amt = 7500
|
||||
@@ -1079,8 +1079,8 @@
|
||||
origin_tech = "materials=2"
|
||||
|
||||
/obj/item/stack/tile/steel
|
||||
name = "Steel floor tile"
|
||||
singular_name = "S teel floor tile"
|
||||
name = "Metal floor tile"
|
||||
singular_name = "Steel floor tile"
|
||||
desc = "Those could work as a pretty decent throwing weapon"
|
||||
icon_state = "tile"
|
||||
w_class = 3.0
|
||||
|
||||
@@ -1093,6 +1093,7 @@
|
||||
reagents.add_reagent("coco", 4+round((potency / 5), 1))
|
||||
bitesize = 1+round(reagents.total_volume / 2, 1)
|
||||
|
||||
//This object is just a transition object. All it does is make a grass tile and delete itself.
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/grass
|
||||
seed = "/obj/item/seeds/grassseed"
|
||||
name = "Grass"
|
||||
@@ -1100,8 +1101,8 @@
|
||||
icon_state = "grass"
|
||||
potency = 20
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("nutriment", round((potency / 20), 1))
|
||||
new/obj/item/stack/tile/grass(src.loc)
|
||||
del(src)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/sugarcane
|
||||
seed = "/obj/item/seeds/sugarcaneseed"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
/datum/supply_packs/charge
|
||||
cost = 10
|
||||
containertype = "/obj/structure/crate"
|
||||
containertype = "/obj/structure/closet/crate"
|
||||
|
||||
/datum/supply_packs/charge/medical
|
||||
name = "Medical Charge"
|
||||
|
||||
@@ -185,6 +185,8 @@
|
||||
product_slogans = "THIS'S WHERE TH' SEEDS LIVE! GIT YOU SOME!;Hands down the best seed selection on the station!;Also certain mushroom varieties available, more for experts! Get certified today!"
|
||||
product_hidden = "/obj/item/seeds/amanitamycelium;/obj/item/seeds/glowshroom;/obj/item/seeds/libertymycelium;/obj/item/seeds/nettleseed;/obj/item/seeds/plumpmycelium"
|
||||
product_hideamt = "2;2;2;2;2"
|
||||
product_coin = "/obj/item/toy/waterflower"
|
||||
product_coin_amt = "1"
|
||||
charge_type = "hydroponics"
|
||||
|
||||
/obj/machinery/vending/magivend
|
||||
|
||||
@@ -524,6 +524,18 @@
|
||||
throw_range = 10
|
||||
origin_tech = "combat=3;materials=3;engineering=3"
|
||||
|
||||
/obj/item/weapon/pepperspray
|
||||
desc = "Manufactred by UhangInc., used to blind and down an opponent quickly."
|
||||
icon = 'weapons.dmi'
|
||||
name = "pepperspray"
|
||||
icon_state = "pepperspray"
|
||||
item_state = "pepperspray"
|
||||
flags = ONBELT|TABLEPASS|OPENCONTAINER|FPRINT|USEDELAY
|
||||
throwforce = 3
|
||||
w_class = 2.0
|
||||
throw_speed = 2
|
||||
throw_range = 10
|
||||
|
||||
/obj/item/weapon/clipboard
|
||||
name = "clipboard"
|
||||
desc = "Apply paper to this to write better. Can also hold pens."
|
||||
|
||||
@@ -102,6 +102,10 @@
|
||||
name = "floor"
|
||||
icon_state = "floor"
|
||||
|
||||
/turf/simulated/shuttle/floor4 // Added this floor tile so that I have a seperate turf to check in the shuttle -- Polymorph
|
||||
name = "Brig floor" // Also added it into the 2x3 brig area of the shuttle.
|
||||
icon_state = "floor4"
|
||||
|
||||
/turf/unsimulated
|
||||
intact = 1
|
||||
name = "command"
|
||||
|
||||
@@ -19,9 +19,13 @@
|
||||
|
||||
src.icon = 'alert.dmi'
|
||||
src.layer = 10
|
||||
// update_lights()
|
||||
// update_lights()
|
||||
if(name == "Space") // override defaults for space
|
||||
requires_power = 0
|
||||
requires_power = 1
|
||||
sd_SetLuminosity(1)
|
||||
power_light = 0
|
||||
power_equip = 0
|
||||
power_environ = 0
|
||||
|
||||
if(!requires_power)
|
||||
power_light = 0//rastaf0
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
if ((O.client && !( O.blinded )))
|
||||
O << text("\red [src] has been scanned by [user] with the [W]")
|
||||
else
|
||||
if (!( istype(W, /obj/item/weapon/grab) ) && !(istype(W, /obj/item/weapon/plastique)) &&!(istype(W, /obj/item/weapon/cleaner)) &&!(istype(W, /obj/item/weapon/chemsprayer)) && !(istype(W, /obj/item/weapon/plantbgone)) )
|
||||
if (!( istype(W, /obj/item/weapon/grab) ) && !(istype(W, /obj/item/weapon/plastique)) &&!(istype(W, /obj/item/weapon/cleaner)) &&!(istype(W, /obj/item/weapon/chemsprayer)) &&!(istype(W, /obj/item/weapon/pepperspray)) && !(istype(W, /obj/item/weapon/plantbgone)) )
|
||||
for(var/mob/O in viewers(src, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O << text("\red <B>[] has been hit by [] with []</B>", src, user, W)
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
var/style = styles.Find(character.hair_style.type)
|
||||
if(style)
|
||||
hair = style * hrange + hrange - rand(1,hrange-1)
|
||||
hair = style * hrange - rand(1,hrange-1)
|
||||
else
|
||||
hair = 0
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
|
||||
var/f_style = face_styles.Find(character.facial_hair_style.type)
|
||||
if(f_style)
|
||||
beard = f_style * f_hrange + f_hrange - rand(1,f_hrange-1)
|
||||
beard = f_style * f_hrange - rand(1,f_hrange-1)
|
||||
else
|
||||
beard = 0
|
||||
|
||||
|
||||
@@ -190,6 +190,7 @@
|
||||
|
||||
// command_alert("Summary downloaded and printed out at all communications consoles.", "Enemy communication intercept. Security Level Elevated.")
|
||||
// world << sound('intercept.ogg')
|
||||
// set_security_level(1)
|
||||
/datum/game_mode/blob/proc/check_quarantine()
|
||||
var/numDead = 0
|
||||
var/numAlive = 0
|
||||
|
||||
@@ -401,7 +401,7 @@
|
||||
/client/proc/changeling_boost_range()
|
||||
set category = "Changeling"
|
||||
set name = "Ranged Sting (10)"
|
||||
set desc="Your next sting ability can be used against targets 3 squares away."
|
||||
set desc="Your next sting ability can be used against targets 2 squares away."
|
||||
|
||||
if(!usr.changeling)
|
||||
usr << "\red You're not a changeling, something's wrong!"
|
||||
@@ -418,7 +418,7 @@
|
||||
usr.changeling.chem_charges -= 10
|
||||
|
||||
usr << "\blue Your throat adjusts to launch the sting."
|
||||
usr.changeling.sting_range = 3
|
||||
usr.changeling.sting_range = 2
|
||||
|
||||
usr.verbs -= /client/proc/changeling_boost_range
|
||||
|
||||
@@ -440,7 +440,7 @@
|
||||
for(var/mob/living/carbon/C in oview(usr.changeling.sting_range))
|
||||
victims += C
|
||||
var/mob/T = input(usr, "Who do you wish to sting?") as null | anything in victims
|
||||
if(T)
|
||||
if(T && T in view(usr.changeling.sting_range))
|
||||
|
||||
if(usr.stat)
|
||||
usr << "\red Not when we are incapacitated."
|
||||
@@ -481,7 +481,7 @@
|
||||
for(var/mob/living/carbon/C in oview(usr.changeling.sting_range))
|
||||
victims += C
|
||||
var/mob/T = input(usr, "Who do you wish to sting?") as null | anything in victims
|
||||
if(T)
|
||||
if(T && T in view(usr.changeling.sting_range))
|
||||
if(usr.stat)
|
||||
usr << "\red Not when we are incapacitated."
|
||||
return
|
||||
@@ -536,7 +536,7 @@
|
||||
victims += C
|
||||
var/mob/T = input(usr, "Who do you wish to sting?") as null | anything in victims
|
||||
|
||||
if(T)
|
||||
if(T && T in view(usr.changeling.sting_range))
|
||||
if(usr.stat)
|
||||
usr << "\red Not when we are incapacitated."
|
||||
return
|
||||
@@ -576,7 +576,7 @@
|
||||
victims += C
|
||||
var/mob/T = input(usr, "Who do you wish to sting?") as null | anything in victims
|
||||
|
||||
if(T)
|
||||
if(T && T in view(usr.changeling.sting_range))
|
||||
|
||||
if(usr.stat)
|
||||
usr << "\red Not when we are incapacitated."
|
||||
@@ -620,7 +620,7 @@
|
||||
victims += C
|
||||
var/mob/T = input(usr, "Who do you wish to sting?") as null | anything in victims
|
||||
|
||||
if(T)
|
||||
if(T && T in view(usr.changeling.sting_range))
|
||||
if(usr.stat)
|
||||
usr << "\red Not when we are incapacitated."
|
||||
return
|
||||
@@ -672,7 +672,7 @@
|
||||
victims += C
|
||||
var/mob/T = input(usr, "Who do you wish to sting?") as null | anything in victims
|
||||
|
||||
if(T)
|
||||
if(T && T in view(usr.changeling.sting_range))
|
||||
if(usr.stat)
|
||||
usr << "\red Not when we are incapacitated."
|
||||
return
|
||||
|
||||
@@ -113,6 +113,7 @@
|
||||
|
||||
command_alert("Summary downloaded and printed out at all communications consoles.", "Enemy communication intercept. Security Level Elevated.")
|
||||
world << sound('intercept.ogg')
|
||||
set_security_level(1)
|
||||
|
||||
|
||||
/datum/game_mode/proc/get_players_for_role(var/role, override_jobbans=1)
|
||||
|
||||
@@ -219,6 +219,10 @@ datum/objective/escape
|
||||
var/turf/location = get_turf(owner.current.loc)
|
||||
if(!location)
|
||||
return 0
|
||||
|
||||
if(istype(location, /turf/simulated/shuttle/floor4)) // Fails tratiors if they are in the shuttle brig -- Polymorph
|
||||
return 0
|
||||
|
||||
var/area/check_area = location.loc
|
||||
if(istype(check_area, /area/shuttle/escape/centcom))
|
||||
return 1
|
||||
|
||||
@@ -166,16 +166,26 @@
|
||||
update_rev_icons_added(rev_mind)
|
||||
return 1
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
//Deals with players being converted from the revolution (Not a rev anymore)//
|
||||
//Deals with players being converted from the revolution (Not a rev anymore)// // Modified to handle borged MMIs. Accepts another var if the target is being borged at the time -- Polymorph.
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
/datum/game_mode/proc/remove_revolutionary(datum/mind/rev_mind)
|
||||
/datum/game_mode/proc/remove_revolutionary(datum/mind/rev_mind , beingborged)
|
||||
if(rev_mind in revolutionaries)
|
||||
revolutionaries -= rev_mind
|
||||
rev_mind.special_role = null
|
||||
rev_mind.current << "\red <FONT size = 3><B>You have been brainwashed! You are no longer a revolutionary! Your memory is hazy from the time you were a rebel...the only thing you remember is the name of the one who brainwashed you...</B></FONT>"
|
||||
|
||||
if(beingborged)
|
||||
rev_mind.current << "\red <FONT size = 3><B>The frame's firmware detects and deletes your neural reprogramming! You remember nothing from the moment you were flashed until now.</B></FONT>"
|
||||
|
||||
else
|
||||
rev_mind.current << "\red <FONT size = 3><B>You have been brainwashed! You are no longer a revolutionary! Your memory is hazy from the time you were a rebel...the only thing you remember is the name of the one who brainwashed you...</B></FONT>"
|
||||
|
||||
update_rev_icons_removed(rev_mind)
|
||||
for(var/mob/living/M in view(rev_mind.current))
|
||||
M << "[rev_mind.current] looks like they just remembered their real allegiance!"
|
||||
if(beingborged)
|
||||
M << "The frame beeps contentedly, purging the hostile memory engram from the MMI before initalizing it."
|
||||
|
||||
else
|
||||
M << "[rev_mind.current] looks like they just remembered their real allegiance!"
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
var/direction_out = 0 //0 = siphoning, 1 = releasing
|
||||
var/target_pressure = 100
|
||||
|
||||
volume = 750
|
||||
volume = 2500
|
||||
|
||||
/obj/machinery/portable_atmospherics/pump/update_icon()
|
||||
src.overlays = 0
|
||||
|
||||
@@ -238,7 +238,6 @@ var/global/list/autolathe_recipes = list( \
|
||||
new /obj/item/weapon/airlock_electronics(), \
|
||||
new /obj/item/stack/sheet/metal(), \
|
||||
new /obj/item/stack/sheet/glass(), \
|
||||
new /obj/item/stack/sheet/r_metal(), \
|
||||
new /obj/item/stack/sheet/rglass(), \
|
||||
new /obj/item/stack/rods(), \
|
||||
new /obj/item/weapon/rcd_ammo(), \
|
||||
|
||||
@@ -122,6 +122,11 @@
|
||||
if(P:brainmob.stat == 2)
|
||||
user << "\red Sticking a dead brain into the frame would sort of defeat the purpose."
|
||||
return
|
||||
|
||||
if(P:brainmob.mind in ticker.mode.head_revolutionaries)
|
||||
user << "\red The frame's firmware lets out a shrill sound, and flashes 'Abnormal Memory Engram'. It refuses to accept the MMI."
|
||||
return
|
||||
|
||||
if(jobban_isbanned(P:brainmob, "AI"))
|
||||
user << "\red This MMI does not seem to fit."
|
||||
return
|
||||
@@ -153,6 +158,9 @@
|
||||
playsound(loc, 'Screwdriver.ogg', 50, 1)
|
||||
user << "\blue You connect the monitor."
|
||||
|
||||
if(P:brainmob.mind in ticker.mode:revolutionaries)
|
||||
ticker.mode:remove_revolutionary(P:brainmob.mind , 1)
|
||||
|
||||
new /mob/living/silicon/ai ( loc, laws, brain )
|
||||
del(src)
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
var/state = STATE_DEFAULT
|
||||
var/aistate = STATE_DEFAULT
|
||||
var/message_cooldown = 0
|
||||
var/tmp_alertlevel = 0
|
||||
var/const
|
||||
STATE_DEFAULT = 1
|
||||
STATE_CALLSHUTTLE = 2
|
||||
@@ -22,6 +23,8 @@
|
||||
STATE_VIEWMESSAGE = 5
|
||||
STATE_DELMESSAGE = 6
|
||||
STATE_STATUSDISPLAY = 7
|
||||
STATE_ALERT_LEVEL = 8
|
||||
STATE_CONFIRM_LEVEL = 9
|
||||
|
||||
var/status_display_freq = "1435"
|
||||
var/stat_msg1
|
||||
@@ -59,6 +62,31 @@
|
||||
if("logout")
|
||||
authenticated = 0
|
||||
|
||||
if("swipeidseclevel")
|
||||
var/mob/M = usr
|
||||
var/obj/item/weapon/card/id/I = M.equipped()
|
||||
if (istype(I, /obj/item/device/pda))
|
||||
var/obj/item/device/pda/pda = I
|
||||
I = pda.id
|
||||
if (I && istype(I))
|
||||
if(access_captain in I.access)
|
||||
var/old_level = security_level
|
||||
if(!tmp_alertlevel) tmp_alertlevel = SEC_LEVEL_GREEN
|
||||
if(tmp_alertlevel < SEC_LEVEL_GREEN) tmp_alertlevel = SEC_LEVEL_GREEN
|
||||
if(tmp_alertlevel > SEC_LEVEL_BLUE) tmp_alertlevel = SEC_LEVEL_BLUE //Cannot engage delta with this
|
||||
set_security_level(tmp_alertlevel)
|
||||
if(security_level != old_level)
|
||||
//Only notify the admins if an actual change happened
|
||||
log_game("[key_name(usr)] has changed the security level to [get_security_level()].")
|
||||
message_admins("[key_name_admin(usr)] has changed the security level to [get_security_level()].", 1)
|
||||
tmp_alertlevel = 0
|
||||
else:
|
||||
usr << "You are not authorized to do this."
|
||||
tmp_alertlevel = 0
|
||||
state = STATE_DEFAULT
|
||||
else
|
||||
usr << "You need to swipe your ID."
|
||||
|
||||
if("announce")
|
||||
if(src.authenticated==2)
|
||||
if(message_cooldown) return
|
||||
@@ -168,6 +196,17 @@
|
||||
src.aistate = STATE_MESSAGELIST
|
||||
if("ai-status")
|
||||
src.aistate = STATE_STATUSDISPLAY
|
||||
|
||||
if("securitylevel")
|
||||
src.tmp_alertlevel = text2num( href_list["newalertlevel"] )
|
||||
if(!tmp_alertlevel) tmp_alertlevel = 0
|
||||
state = STATE_CONFIRM_LEVEL
|
||||
|
||||
if("changeseclevel")
|
||||
state = STATE_ALERT_LEVEL
|
||||
|
||||
|
||||
|
||||
src.updateUsrDialog()
|
||||
|
||||
|
||||
@@ -203,6 +242,7 @@
|
||||
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=logout'>Log Out</A> \]"
|
||||
if (src.authenticated==2)
|
||||
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=announce'>Make An Announcement</A> \]"
|
||||
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=changeseclevel'>Change alert level</A> \]"
|
||||
if(emergency_shuttle.location==0)
|
||||
if (emergency_shuttle.online)
|
||||
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=cancelshuttle'>Cancel Shuttle Call</A> \]"
|
||||
@@ -248,7 +288,17 @@
|
||||
dat += " <A HREF='?src=\ref[src];operation=setstat;statdisp=alert;alert=redalert'>Red Alert</A> |"
|
||||
dat += " <A HREF='?src=\ref[src];operation=setstat;statdisp=alert;alert=lockdown'>Lockdown</A> |"
|
||||
dat += " <A HREF='?src=\ref[src];operation=setstat;statdisp=alert;alert=biohazard'>Biohazard</A> \]<BR><HR>"
|
||||
|
||||
if(STATE_ALERT_LEVEL)
|
||||
dat += "Current alert level: [get_security_level()]<BR>"
|
||||
if(security_level == SEC_LEVEL_DELTA)
|
||||
dat += "<font color='red'><b>The self-destruct mechanism is active. Find a way to deactivate the mechanism to lower the alert level or evacuate.</b></font>"
|
||||
else
|
||||
dat += "<A HREF='?src=\ref[src];operation=securitylevel;newalertlevel=[SEC_LEVEL_BLUE]'>Blue</A><BR>"
|
||||
dat += "<A HREF='?src=\ref[src];operation=securitylevel;newalertlevel=[SEC_LEVEL_GREEN]'>Green</A>"
|
||||
if(STATE_CONFIRM_LEVEL)
|
||||
dat += "Current alert level: [get_security_level()]<BR>"
|
||||
dat += "Confirm the change to: [num2seclevel(tmp_alertlevel)]<BR>"
|
||||
dat += "<A HREF='?src=\ref[src];operation=swipeidseclevel>Swipt ID</A> to confirm change.<BR>"
|
||||
|
||||
dat += "<BR>\[ [(src.state != STATE_DEFAULT) ? "<A HREF='?src=\ref[src];operation=main'>Main Menu</A> | " : ""]<A HREF='?src=\ref[user];mach_close=communications'>Close</A> \]"
|
||||
user << browse(dat, "window=communications;size=400x500")
|
||||
|
||||
@@ -243,7 +243,7 @@ obj/machinery/hydroponics/proc/mutate() // Mutates the current seed
|
||||
src.myseed.yield = 1 // Mushrooms always have a minimum yield of 1.
|
||||
|
||||
if(src.myseed.potency != -1) //Not all plants have a potency
|
||||
src.myseed.potency += rand(-10,10)
|
||||
src.myseed.potency += rand(-25,25)
|
||||
if(src.myseed.potency < 0)
|
||||
src.myseed.potency = 0
|
||||
else if(src.myseed.potency > 100)
|
||||
@@ -282,7 +282,7 @@ obj/machinery/hydroponics/proc/hardmutate() // Strongly mutates the current seed
|
||||
src.myseed.yield = 1 // Mushrooms always have a minimum yield of 1.
|
||||
|
||||
if(src.myseed.potency != -1) //Not all plants have a potency
|
||||
src.myseed.potency += rand(-20,20)
|
||||
src.myseed.potency += rand(-50,50)
|
||||
if(src.myseed.potency < 0)
|
||||
src.myseed.potency = 0
|
||||
else if(src.myseed.potency > 100)
|
||||
|
||||
@@ -77,7 +77,6 @@
|
||||
var/datum/data/vending_product/R = new /datum/data/vending_product( )
|
||||
R.product_name = capitalize(temp.name)
|
||||
R.product_path = path_list[p]
|
||||
R.display_color = pick("red","blue","green")
|
||||
R.amount = text2num(amt_list[p])
|
||||
R.charge_amount = R.amount
|
||||
|
||||
@@ -102,6 +101,10 @@
|
||||
winset(user, "vendingslot[i].buy", "command=\"skincmd vending;buy[i-1]\"")
|
||||
winset(user, "vendingwindow.title", "text=\"[src.name]\"")
|
||||
var/list/products = src.product_records
|
||||
if(extended_inventory)
|
||||
products |= src.hidden_records
|
||||
if(coin)
|
||||
products |= src.coin_records
|
||||
var/pages = -round(-products.len / 6)
|
||||
if (page > pages)
|
||||
page = pages
|
||||
@@ -128,6 +131,10 @@
|
||||
if (get_dist(user, src) > 1)
|
||||
return
|
||||
var/list/products = src.product_records
|
||||
if(extended_inventory)
|
||||
products |= src.hidden_records
|
||||
if(coin)
|
||||
products |= src.coin_records
|
||||
var/pages = -round(-products.len / 6)
|
||||
switch(data)
|
||||
if ("pagen")
|
||||
@@ -151,6 +158,24 @@
|
||||
if (!src.vend_ready)
|
||||
return
|
||||
|
||||
if ((!src.allowed(usr)) && (!src.emagged) && (src.wires & WIRE_SCANID)) //For SECURE VENDING MACHINES YEAH
|
||||
usr << "\red Access denied." //Unless emagged of course
|
||||
flick(src.icon_deny,src)
|
||||
return
|
||||
|
||||
if (R in coin_records)
|
||||
if(!coin)
|
||||
usr << "\blue You need to insert a coin to get this item."
|
||||
return
|
||||
if(coin.string_attached)
|
||||
if(prob(50))
|
||||
usr << "\blue You successfully pull the coin out before the [src] could swallow it."
|
||||
else
|
||||
usr << "\blue You weren't able to pull the coin out fast enough, the machine ate it, string and all."
|
||||
del(coin)
|
||||
else
|
||||
del(coin)
|
||||
|
||||
R.amount--
|
||||
src.vend_ready = 0
|
||||
|
||||
@@ -172,7 +197,7 @@
|
||||
/obj/machinery/vending/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if (istype(W, /obj/item/weapon/card/emag))
|
||||
src.emagged = 1
|
||||
user << "You short out the product lock on [src]"
|
||||
user << "You short out the ID lock on [src]"
|
||||
return
|
||||
else if(istype(W, /obj/item/weapon/screwdriver))
|
||||
src.panel_open = !src.panel_open
|
||||
@@ -191,6 +216,7 @@
|
||||
W.loc = src
|
||||
coin = W
|
||||
user << "\blue You insert the [W] into the [src]"
|
||||
updateWindow(user)
|
||||
return
|
||||
else if(istype(W,/obj/item/weapon/vending_charge/))
|
||||
DoCharge(W,user)
|
||||
@@ -226,6 +252,13 @@
|
||||
winshow(user, "vendingwindow", 1)
|
||||
user.skincmds["vending"] = src
|
||||
|
||||
var/dat = "<B>[src.name]</B>"
|
||||
|
||||
if(coin)
|
||||
dat += "<br>There is a <a href='?src=\ref[src];remove_coin=1'>[coin.name]</a> in the slot!"
|
||||
else
|
||||
dat += "<br>The coin slot is empty."
|
||||
|
||||
if(panel_open)
|
||||
var/list/vendwires = list(
|
||||
"Violet" = 1,
|
||||
@@ -233,7 +266,7 @@
|
||||
"Goldenrod" = 3,
|
||||
"Green" = 4,
|
||||
)
|
||||
var/dat = "<br><hr><br><B>Access Panel</B><br>"
|
||||
dat += "<hr><B>Access Panel</B><br>"
|
||||
for(var/wiredesc in vendwires)
|
||||
var/is_uncut = src.wires & APCWireColorToFlag[vendwires[wiredesc]]
|
||||
dat += "[wiredesc] wire: "
|
||||
@@ -250,12 +283,11 @@
|
||||
dat += "The green light is [src.extended_inventory ? "on" : "off"].<BR>"
|
||||
dat += "The [(src.wires & WIRE_SCANID) ? "purple" : "yellow"] light is on.<BR>"
|
||||
|
||||
if (product_slogans != "")
|
||||
if(product_slogans != "")
|
||||
dat += "The speaker switch is [src.shut_up ? "off" : "on"]. <a href='?src=\ref[src];togglevoice=[1]'>Toggle</a>"
|
||||
user << browse(dat, "")
|
||||
onclose(user, "")
|
||||
|
||||
return
|
||||
user << browse(dat, "")
|
||||
onclose(user, "")
|
||||
|
||||
/obj/machinery/vending/Topic(href, href_list)
|
||||
if(stat & (BROKEN|NOPOWER))
|
||||
@@ -283,6 +315,8 @@
|
||||
usr.put_in_hand(coin)
|
||||
usr << "\blue You remove the [coin] from the [src]"
|
||||
coin = null
|
||||
updateWindow(usr)
|
||||
usr.skincmds["vending"] = src
|
||||
|
||||
|
||||
if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))))
|
||||
@@ -349,6 +383,8 @@
|
||||
src.mend(twire)
|
||||
else
|
||||
src.cut(twire)
|
||||
updateWindow(usr)
|
||||
usr.skincmds["vending"] = src
|
||||
|
||||
else if ((href_list["pulsewire"]) && (src.panel_open))
|
||||
var/twire = text2num(href_list["pulsewire"])
|
||||
@@ -360,6 +396,8 @@
|
||||
return
|
||||
else
|
||||
src.pulse(twire)
|
||||
updateWindow(usr)
|
||||
usr.skincmds["vending"] = src
|
||||
|
||||
else if ((href_list["togglevoice"]) && (src.panel_open))
|
||||
src.shut_up = !src.shut_up
|
||||
|
||||
@@ -2,8 +2,8 @@ var/const
|
||||
MIN_IMPREGNATION_TIME = 100 //time it takes to impregnate someone
|
||||
MAX_IMPREGNATION_TIME = 150
|
||||
|
||||
MIN_ACTIVE_TIME = 30 //time between being dropped and going idle
|
||||
MAX_ACTIVE_TIME = 50
|
||||
MIN_ACTIVE_TIME = 300 //time between being dropped and going idle
|
||||
MAX_ACTIVE_TIME = 600
|
||||
|
||||
/obj/item/clothing/mask/facehugger
|
||||
name = "alien"
|
||||
@@ -13,7 +13,7 @@ var/const
|
||||
w_class = 1 //note: can be picked up by aliens unlike most other items of w_class below 4
|
||||
flags = FPRINT|TABLEPASS|MASKCOVERSMOUTH|MASKCOVERSEYES
|
||||
|
||||
var/stat = CONSCIOUS //UNCONSCIOUS is the idle state in this case
|
||||
var/stat = UNCONSCIOUS //UNCONSCIOUS is the idle state in this case
|
||||
|
||||
var/sterile = 0
|
||||
|
||||
@@ -177,6 +177,11 @@ var/const
|
||||
|
||||
stat = CONSCIOUS
|
||||
|
||||
for(var/mob/living/carbon/alien/alien in world)
|
||||
var/image/activeIndicator = image('alien.dmi', loc = src, icon_state = "facehugger_active")
|
||||
activeIndicator.override = 1
|
||||
alien.client.images += activeIndicator
|
||||
|
||||
spawn(rand(MIN_ACTIVE_TIME,MAX_ACTIVE_TIME))
|
||||
GoIdle()
|
||||
|
||||
@@ -186,6 +191,8 @@ var/const
|
||||
if(stat == DEAD || stat == UNCONSCIOUS)
|
||||
return
|
||||
|
||||
RemoveActiveIndicators()
|
||||
|
||||
stat = UNCONSCIOUS
|
||||
|
||||
return
|
||||
@@ -194,6 +201,8 @@ var/const
|
||||
if(stat == DEAD)
|
||||
return
|
||||
|
||||
RemoveActiveIndicators()
|
||||
|
||||
icon_state = "facehugger_dead"
|
||||
stat = DEAD
|
||||
|
||||
@@ -202,7 +211,13 @@ var/const
|
||||
|
||||
return
|
||||
|
||||
proc/RemoveActiveIndicators() //removes the "active" facehugger indicator from all aliens in the world for this hugger
|
||||
for(var/mob/living/carbon/alien/alien in world)
|
||||
for(var/image/image in alien.client.images)
|
||||
if(image.icon_state == "facehugger_active" && image.loc == src)
|
||||
del(image)
|
||||
|
||||
return
|
||||
|
||||
/* NOPE.png -- Urist
|
||||
|
||||
|
||||
@@ -4,6 +4,12 @@
|
||||
return 0
|
||||
return 1
|
||||
|
||||
/obj/structure/closet/secure_closet/close()
|
||||
..()
|
||||
if(broken)
|
||||
icon_state = src.icon_off
|
||||
return 1
|
||||
|
||||
/obj/structure/closet/secure_closet/emp_act(severity)
|
||||
for(var/obj/O in src)
|
||||
O.emp_act(severity)
|
||||
@@ -35,7 +41,8 @@
|
||||
broken = 1
|
||||
locked = 0
|
||||
desc = "It appears to be broken."
|
||||
icon_state = src.icon_broken
|
||||
icon_state = icon_off
|
||||
flick(icon_broken, src)
|
||||
if(istype(W, /obj/item/weapon/melee/energy/blade))
|
||||
var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
|
||||
spark_system.set_up(5, 0, src.loc)
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
new /obj/item/device/radio/headset/headset_sec(src)
|
||||
new /obj/item/weapon/storage/belt/security(src)
|
||||
new /obj/item/weapon/flashbang(src)
|
||||
new /obj/item/weapon/pepperspray(src)
|
||||
new /obj/item/device/flash(src)
|
||||
new /obj/item/weapon/melee/baton(src)
|
||||
new /obj/item/weapon/gun/energy/taser(src)
|
||||
|
||||
@@ -162,6 +162,10 @@
|
||||
user << "\red Sticking a dead brain into the frame would sort of defeat the purpose."
|
||||
return
|
||||
|
||||
if(M.brainmob.mind in ticker.mode.head_revolutionaries)
|
||||
user << "\red The frame's firmware lets out a shrill sound, and flashes 'Abnormal Memory Engram'. It refuses to accept the MMI."
|
||||
return
|
||||
|
||||
if(jobban_isbanned(M.brainmob, "Cyborg"))
|
||||
user << "\red This MMI does not seem to fit."
|
||||
return
|
||||
@@ -183,6 +187,10 @@
|
||||
G.corpse.mind.transfer_to(O)
|
||||
del(G)
|
||||
break
|
||||
|
||||
if(O.mind in ticker.mode:revolutionaries)
|
||||
ticker.mode:remove_revolutionary(O.mind , 1)
|
||||
|
||||
if(O.mind && O.mind.special_role)
|
||||
O.mind.store_memory("In case you look at this after being borged, the objectives are only here until I find a way to make them not show up for you, as I can't simply delete them without screwing up round-end reporting. --NeoFite")
|
||||
|
||||
|
||||
@@ -130,18 +130,7 @@ RCD
|
||||
user << "The RCD now holds [matter]/30 matter-units."
|
||||
desc = "A RCD. It currently holds [matter]/30 matter-units."
|
||||
return
|
||||
if(istype(A, /turf/simulated/wall/r_wall) && matter >= 8)
|
||||
user << "Deconstructing RWall (8)..."
|
||||
playsound(src.loc, 'click.ogg', 50, 1)
|
||||
if(do_after(user, 60))
|
||||
if(!disabled && matter >= 8)
|
||||
spark_system.set_up(5, 0, src)
|
||||
src.spark_system.start()
|
||||
A:ReplaceWithWall()
|
||||
playsound(src.loc, 'Deconstruct.ogg', 50, 1)
|
||||
matter -= 8
|
||||
user << "The RCD now holds [matter]/30 matter-units."
|
||||
desc = "A RCD. It currently holds [matter]/30 matter-units."
|
||||
if(istype(A, /turf/simulated/wall/r_wall))
|
||||
return
|
||||
if(istype(A, /turf/simulated/floor) && matter >= 5)
|
||||
user << "Deconstructing Floor (5)..."
|
||||
|
||||
@@ -26,6 +26,7 @@ FLASHBANG
|
||||
|
||||
afterattack(atom/target as mob|obj|turf|area, mob/user as mob)
|
||||
if (istype(target, /obj/item/weapon/storage)) return ..() // Trying to put it in a full container
|
||||
if (istype(target, /obj/item/weapon/gun/grenadelauncher)) return ..()
|
||||
if((user.equipped() == src)&&(!active)&&(clown_check(user)))
|
||||
user << "\red You prime the emp grenade! [det_time/10] seconds!"
|
||||
src.active = 1
|
||||
@@ -93,6 +94,7 @@ FLASHBANG
|
||||
active = 0
|
||||
det_time = 30
|
||||
proc
|
||||
bang(var/turf/T , var/mob/living/carbon/M)
|
||||
prime()
|
||||
clown_check(var/mob/living/user)
|
||||
|
||||
@@ -119,6 +121,7 @@ FLASHBANG
|
||||
|
||||
afterattack(atom/target as mob|obj|turf|area, mob/user as mob)
|
||||
if (istype(target, /obj/item/weapon/storage)) return ..() // Trying to put it in a full container
|
||||
if (istype(target, /obj/item/weapon/gun/grenadelauncher)) return ..()
|
||||
if((user.equipped() == src)&&(!active)&&(clown_check(user)))
|
||||
user << "\red You prime the flashbang! [det_time/10] seconds!"
|
||||
src.active = 1
|
||||
@@ -143,81 +146,92 @@ FLASHBANG
|
||||
..()
|
||||
return
|
||||
|
||||
bang(var/turf/T , var/mob/living/carbon/M) // Added a new proc called 'bang' that takes a location and a person to be banged.
|
||||
if (locate(/obj/item/weapon/cloaking_device, M)) // Called during the loop that bangs people in lockers/containers and when banging
|
||||
for(var/obj/item/weapon/cloaking_device/S in M) // people in normal view. Could theroetically be called during other explosions.
|
||||
S.active = 0 // -- Polymorph
|
||||
S.icon_state = "shield0"
|
||||
|
||||
prime()
|
||||
M << "\red <B>BANG</B>"
|
||||
playsound(src.loc, 'bang.ogg', 25, 1)
|
||||
|
||||
//Checking for protections
|
||||
var/eye_safety = 0
|
||||
var/ear_safety = 0
|
||||
if(iscarbon(M))
|
||||
eye_safety = M.eyecheck()
|
||||
if(ishuman(M))
|
||||
if(istype(M:ears, /obj/item/clothing/ears/earmuffs))
|
||||
ear_safety += 2
|
||||
if(M.mutations & HULK)
|
||||
ear_safety += 1
|
||||
if(istype(M:head, /obj/item/clothing/head/helmet))
|
||||
ear_safety += 1
|
||||
|
||||
//Flashing everyone
|
||||
if(eye_safety < 1)
|
||||
flick("e_flash", M.flash)
|
||||
M.eye_stat += rand(1, 3)
|
||||
M.stunned = max(M.stunned,2)
|
||||
M.weakened = max(M.weakened,10)
|
||||
|
||||
|
||||
|
||||
//Now applying sound
|
||||
if((get_dist(M, T) <= 2 || src.loc == M.loc || src.loc == M))
|
||||
if(ear_safety > 0)
|
||||
M.stunned = max(M.stunned,2)
|
||||
M.weakened = max(M.weakened,1)
|
||||
else
|
||||
M.stunned = max(M.stunned,10)
|
||||
M.weakened = max(M.weakened,3)
|
||||
if ((prob(14) || (M == src.loc && prob(70))))
|
||||
M.ear_damage += rand(1, 10)
|
||||
else
|
||||
M.ear_damage += rand(0, 5)
|
||||
M.ear_deaf = max(M.ear_deaf,15)
|
||||
|
||||
else if(get_dist(M, T) <= 5)
|
||||
if(!ear_safety)
|
||||
M.stunned = max(M.stunned,8)
|
||||
M.ear_damage += rand(0, 3)
|
||||
M.ear_deaf = max(M.ear_deaf,10)
|
||||
|
||||
else if(!ear_safety)
|
||||
M.stunned = max(M.stunned,4)
|
||||
M.ear_damage += rand(0, 1)
|
||||
M.ear_deaf = max(M.ear_deaf,5)
|
||||
|
||||
//This really should be in mob not every check
|
||||
if (M.eye_stat >= 20)
|
||||
M << "\red Your eyes start to burn badly!"
|
||||
M.disabilities |= 1
|
||||
if (prob(M.eye_stat - 20 + 1))
|
||||
M << "\red You can't see anything!"
|
||||
M.sdisabilities |= 1
|
||||
if (M.ear_damage >= 15)
|
||||
M << "\red Your ears start to ring badly!"
|
||||
if (prob(M.ear_damage - 10 + 5))
|
||||
M << "\red You can't hear anything!"
|
||||
M.sdisabilities |= 4
|
||||
else
|
||||
if (M.ear_damage >= 5)
|
||||
M << "\red Your ears start to ring!"
|
||||
|
||||
prime() // Prime now just handles the two loops that query for people in lockers and people who can see it.
|
||||
var/turf/T = get_turf(src)
|
||||
if(T)
|
||||
T.hotspot_expose(700,125)
|
||||
|
||||
for(var/obj/structure/closet/L in view(T, null))
|
||||
if(locate(/mob/living/carbon/, L))
|
||||
for(var/mob/living/carbon/M in L)
|
||||
bang(T, M)
|
||||
|
||||
|
||||
for(var/mob/living/carbon/M in viewers(T, null))
|
||||
if (locate(/obj/item/weapon/cloaking_device, M))
|
||||
for(var/obj/item/weapon/cloaking_device/S in M)
|
||||
S.active = 0
|
||||
S.icon_state = "shield0"
|
||||
bang(T, M)
|
||||
|
||||
M << "\red <B>BANG</B>"
|
||||
|
||||
//Checking for protections
|
||||
var/eye_safety = 0
|
||||
var/ear_safety = 0
|
||||
if(iscarbon(M))
|
||||
eye_safety = M.eyecheck()
|
||||
if(ishuman(M))
|
||||
if(istype(M:ears, /obj/item/clothing/ears/earmuffs))
|
||||
ear_safety += 2
|
||||
if(M.mutations & HULK)
|
||||
ear_safety += 1
|
||||
if(istype(M:head, /obj/item/clothing/head/helmet))
|
||||
ear_safety += 1
|
||||
|
||||
//Flashing everyone
|
||||
if(eye_safety < 1)
|
||||
flick("e_flash", M.flash)
|
||||
M.eye_stat += rand(1, 3)
|
||||
M.stunned = max(M.stunned,2)
|
||||
M.weakened = max(M.weakened,10)
|
||||
|
||||
//Now applying sound
|
||||
if((get_dist(M, T) <= 2 || src.loc == M.loc || src.loc == M))
|
||||
if(ear_safety > 0)
|
||||
M.stunned = max(M.stunned,2)
|
||||
M.weakened = max(M.weakened,1)
|
||||
else
|
||||
M.stunned = max(M.stunned,10)
|
||||
M.weakened = max(M.weakened,3)
|
||||
if ((prob(14) || (M == src.loc && prob(70))))
|
||||
M.ear_damage += rand(1, 10)
|
||||
else
|
||||
M.ear_damage += rand(0, 5)
|
||||
M.ear_deaf = max(M.ear_deaf,15)
|
||||
|
||||
else if(get_dist(M, T) <= 5)
|
||||
if(!ear_safety)
|
||||
M.stunned = max(M.stunned,8)
|
||||
M.ear_damage += rand(0, 3)
|
||||
M.ear_deaf = max(M.ear_deaf,10)
|
||||
|
||||
else if(!ear_safety)
|
||||
M.stunned = max(M.stunned,4)
|
||||
M.ear_damage += rand(0, 1)
|
||||
M.ear_deaf = max(M.ear_deaf,5)
|
||||
|
||||
//This really should be in mob not every check
|
||||
if (M.eye_stat >= 20)
|
||||
M << "\red Your eyes start to burn badly!"
|
||||
M.disabilities |= 1
|
||||
if (prob(M.eye_stat - 20 + 1))
|
||||
M << "\red You can't see anything!"
|
||||
M.sdisabilities |= 1
|
||||
if (M.ear_damage >= 15)
|
||||
M << "\red Your ears start to ring badly!"
|
||||
if (prob(M.ear_damage - 10 + 5))
|
||||
M << "\red You can't hear anything!"
|
||||
M.sdisabilities |= 4
|
||||
else
|
||||
if (M.ear_damage >= 5)
|
||||
M << "\red Your ears start to ring!"
|
||||
|
||||
//Blob damage here
|
||||
for(var/obj/effect/blob/B in view(8,T))
|
||||
@@ -251,3 +265,16 @@ FLASHBANG
|
||||
prime()
|
||||
return 0
|
||||
return 1
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -14,9 +14,11 @@
|
||||
item_state = "flight"
|
||||
name = "Hand labeler"
|
||||
|
||||
/obj/item/weapon/hand_labeler/afterattack(atom/A, mob/user as mob)
|
||||
/obj/item/weapon/hand_labeler/afterattack(atom/A as obj|mob, mob/user as mob)
|
||||
if(A==loc) // if placing the labeller into something (e.g. backpack)
|
||||
return // don't remove any labels
|
||||
if(!A.labels)
|
||||
return
|
||||
if(A.labels.len == 1)
|
||||
var/t = A.labels[1]
|
||||
A.name = copytext(A.name,1,lentext(A.name) - (lentext(t) + 2))
|
||||
@@ -78,6 +80,8 @@
|
||||
if(ishuman(A))
|
||||
user << "\red You can't label humans."
|
||||
return
|
||||
if(!A.labels)
|
||||
A.labels = new()
|
||||
for(var/i = 1, i < A.labels.len, i++)
|
||||
if(label == A.labels[i])
|
||||
user << "\red [A] already has that label!"
|
||||
|
||||
@@ -14,7 +14,7 @@ MOP
|
||||
return
|
||||
|
||||
/obj/item/weapon/cleaner/afterattack(atom/A as mob|obj, mob/user as mob)
|
||||
if (istype(A, /obj/item/weapon/storage/backpack ))
|
||||
if (istype(A, /obj/item/weapon/storage ))
|
||||
return
|
||||
if (istype(A, /obj/effect/proc_holder/spell ))
|
||||
return
|
||||
@@ -91,7 +91,7 @@ MOP
|
||||
return
|
||||
|
||||
/obj/item/weapon/chemsprayer/afterattack(atom/A as mob|obj, mob/user as mob)
|
||||
if (istype(A, /obj/item/weapon/storage/backpack ))
|
||||
if (istype(A, /obj/item/weapon/storage ))
|
||||
return
|
||||
if (istype(A, /obj/effect/proc_holder/spell ))
|
||||
return
|
||||
@@ -165,7 +165,95 @@ MOP
|
||||
|
||||
return
|
||||
|
||||
/obj/item/weapon/chemsprayer/examine()
|
||||
/obj/item/weapon/pepperspray/New()
|
||||
var/datum/reagents/R = new/datum/reagents(45)
|
||||
reagents = R
|
||||
R.my_atom = src
|
||||
R.add_reagent("condensedcapsaicin", 45)
|
||||
|
||||
/obj/item/weapon/pepperspray/attack(mob/living/carbon/human/M as mob, mob/user as mob)
|
||||
return
|
||||
|
||||
/obj/item/weapon/pepperspray/afterattack(atom/A as mob|obj, mob/user as mob)
|
||||
if (istype(A, /obj/item/weapon/storage ))
|
||||
return
|
||||
if (istype(A, /obj/effect/proc_holder/spell ))
|
||||
return
|
||||
else if (istype(A, /obj/structure/reagent_dispensers/peppertank) && get_dist(src,A) <= 1)
|
||||
A.reagents.trans_to(src, 45)
|
||||
user << "\blue Pepper spray refilled"
|
||||
playsound(src.loc, 'refill.ogg', 50, 1, -6)
|
||||
return
|
||||
else if (src.reagents.total_volume < 1)
|
||||
user << "\blue [src] is empty!"
|
||||
return
|
||||
playsound(src.loc, 'spray2.ogg', 50, 1, -6)
|
||||
|
||||
var/Sprays[3]
|
||||
for(var/i=1, i<=3, i++) // intialize sprays
|
||||
if(src.reagents.total_volume < 1) break
|
||||
var/obj/effect/decal/D = new/obj/effect/decal(get_turf(src))
|
||||
D.name = "chemicals"
|
||||
D.icon = 'chempuff.dmi'
|
||||
D.create_reagents(15)
|
||||
src.reagents.trans_to(D, 15)
|
||||
|
||||
var/rgbcolor[3]
|
||||
var/finalcolor
|
||||
for(var/datum/reagent/re in D.reagents.reagent_list)
|
||||
if(!finalcolor)
|
||||
rgbcolor = GetColors(re.color)
|
||||
finalcolor = re.color
|
||||
else
|
||||
var/newcolor[3]
|
||||
var/prergbcolor[3]
|
||||
prergbcolor = rgbcolor
|
||||
newcolor = GetColors(re.color)
|
||||
|
||||
rgbcolor[1] = (prergbcolor[1]+newcolor[1])/2
|
||||
rgbcolor[2] = (prergbcolor[2]+newcolor[2])/2
|
||||
rgbcolor[3] = (prergbcolor[3]+newcolor[3])/2
|
||||
|
||||
finalcolor = rgb(rgbcolor[1], rgbcolor[2], rgbcolor[3])
|
||||
|
||||
D.icon += finalcolor
|
||||
|
||||
Sprays[i] = D
|
||||
|
||||
var/direction = get_dir(src, A)
|
||||
var/turf/T = get_turf(A)
|
||||
var/turf/T1 = get_step(T,turn(direction, 90))
|
||||
var/turf/T2 = get_step(T,turn(direction, -90))
|
||||
var/list/the_targets = list(T,T1,T2)
|
||||
|
||||
for(var/i=1, i<=Sprays.len, i++)
|
||||
spawn()
|
||||
var/obj/effect/decal/D = Sprays[i]
|
||||
if(!D) continue
|
||||
|
||||
// Spreads the sprays a little bit
|
||||
var/turf/my_target = pick(the_targets)
|
||||
the_targets -= my_target
|
||||
|
||||
for(var/j=1, j<=rand(6,8), j++)
|
||||
step_towards(D, my_target)
|
||||
D.reagents.reaction(get_turf(D))
|
||||
for(var/atom/t in get_turf(D))
|
||||
D.reagents.reaction(t)
|
||||
sleep(2)
|
||||
del(D)
|
||||
sleep(1)
|
||||
|
||||
if(isrobot(user)) //Cyborgs can clean forever if they keep charged
|
||||
var/mob/living/silicon/robot/janitor = user
|
||||
janitor.cell.charge -= 20
|
||||
var/refill = src.reagents.get_master_reagent_id()
|
||||
spawn(600)
|
||||
src.reagents.add_reagent(refill, 10)
|
||||
|
||||
return
|
||||
|
||||
/obj/item/weapon/pepperspray/examine()
|
||||
set src in usr
|
||||
usr << text("\icon[] [] units of cleaner left!", src, src.reagents.total_volume)
|
||||
..()
|
||||
|
||||
@@ -21,12 +21,6 @@ WELDINGTOOOL
|
||||
origin_tech = "materials=1;engineering=1"
|
||||
|
||||
|
||||
New()
|
||||
if (prob(75))
|
||||
src.pixel_x = rand(0, 16)
|
||||
return
|
||||
|
||||
|
||||
|
||||
// SCREWDRIVER
|
||||
/obj/item/weapon/screwdriver/New()
|
||||
|
||||
@@ -68,7 +68,6 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \
|
||||
null, \
|
||||
new/datum/stack_recipe("floor tile", /obj/item/stack/tile/steel, 1, 4, 10), \
|
||||
new/datum/stack_recipe("metal rod", /obj/item/stack/rods, 1, 2, 60), \
|
||||
new/datum/stack_recipe("reinforced sheet", /obj/item/stack/sheet/r_metal, 2, 1, 50), \
|
||||
null, \
|
||||
new/datum/stack_recipe("computer frame", /obj/structure/computerframe, 5, one_per_turf = 1), \
|
||||
new/datum/stack_recipe("wall girders", /obj/structure/girder, 2, time = 50, one_per_turf = 1, on_floor = 1), \
|
||||
@@ -92,7 +91,6 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \
|
||||
// /datum/stack_recipe/New(title, result_type, req_amount, res_amount, max_res_amount, time, one_per_turf, on_floor = 0)
|
||||
var/global/list/datum/stack_recipe/r_metal_recipes = list ( \
|
||||
new/datum/stack_recipe("table parts", /obj/item/weapon/table_parts/reinforced, 2), \
|
||||
new/datum/stack_recipe("metal sheet", /obj/item/stack/sheet/metal, 1, 2, 50), \
|
||||
new/datum/stack_recipe("AI core", /obj/structure/AIcore, 4, one_per_turf = 1), \
|
||||
)
|
||||
|
||||
|
||||
@@ -191,7 +191,8 @@
|
||||
return
|
||||
if (src.amount < R.req_amount*multiplier)
|
||||
return
|
||||
var/O = new R.result_type( usr.loc )
|
||||
var/atom/O = new R.result_type( usr.loc )
|
||||
O.dir = usr.dir
|
||||
if (R.max_res_amount>1)
|
||||
var/obj/item/stack/new_item = O
|
||||
new_item.amount = R.res_amount*multiplier
|
||||
|
||||
@@ -108,6 +108,7 @@
|
||||
//storage_slots = 6
|
||||
can_hold = list(
|
||||
"/obj/item/weapon/flashbang",
|
||||
"/obj/item/weapon/pepperspray",
|
||||
"/obj/item/weapon/handcuffs",
|
||||
"/obj/item/device/flash",
|
||||
"/obj/item/clothing/glasses",
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
if (vary)
|
||||
S.frequency = rand(32000, 55000)
|
||||
for (var/mob/M in range(world.view+extrarange, source))
|
||||
for (var/mob/M in range(world.view+extrarange, source)) // Plays for people in range.
|
||||
if (M.client)
|
||||
if(M.ear_deaf <= 0 || !M.ear_deaf)
|
||||
if(isturf(source))
|
||||
@@ -27,6 +27,12 @@
|
||||
|
||||
M << S
|
||||
|
||||
for(var/obj/structure/closet/L in range(world.view+extrarange, source))
|
||||
if(locate(/mob/, L))
|
||||
for(var/mob/Ml in L)
|
||||
Ml << S
|
||||
// Now plays for people in lockers! -- Polymorph
|
||||
|
||||
/mob/proc/playsound_local(var/atom/source, soundin, vol as num, vary, extrarange as num)
|
||||
if(!src.client || ear_deaf > 0) return
|
||||
switch(soundin)
|
||||
@@ -75,31 +81,27 @@ client/verb/Toggle_Soundscape()
|
||||
if (!A:client) return
|
||||
//if (A:ear_deaf) return
|
||||
|
||||
if (A && A:client && !A:client:ambience_playing && !A:client:no_ambi) // Ambience goes down here -- make sure to list each area seperately for ease of adding things in later, thanks! - LastyScratch
|
||||
if (A && A:client && !A:client:ambience_playing && !A:client:no_ambi) // Ambience goes down here -- make sure to list each area seperately for ease of adding things in later, thanks! Note: areas next to each other should have the same sounds to prevent cutoff when possible.- LastyScratch
|
||||
A:client:ambience_playing = 1
|
||||
A << sound('shipambience.ogg', repeat = 1, wait = 0, volume = 35, channel = 2)
|
||||
|
||||
switch(src.name)
|
||||
if ("Chapel") sound = pick('ambicha1.ogg','ambicha2.ogg','ambicha3.ogg','ambicha4.ogg')
|
||||
if ("Morgue") sound = pick('ambimo1.ogg','ambimo2.ogg','ambistat.ogg')
|
||||
if ("Space") sound = pick('ambispace.ogg','ambistat.ogg',)
|
||||
if ("Morgue") sound = pick('ambimo1.ogg','ambimo2.ogg','title2.ogg')
|
||||
if ("Space") sound = pick('ambispace.ogg','title2.ogg',)
|
||||
if ("Engine Control") sound = pick('ambisin1.ogg','ambisin2.ogg','ambisin3.ogg','ambisin4.ogg')
|
||||
if ("Atmospherics") sound = pick('ambiatm1.ogg')
|
||||
if ("Medbay") sound = pick('ambistat.ogg')
|
||||
if ("Bridge") sound = pick('ambistat.ogg')
|
||||
if ("Arrival Shuttle Hallway") sound = pick('ambistat.ogg','ambiruntime.ogg')
|
||||
if ("AI Sat Ext") sound = pick('ambiruntime.ogg','ambimalf.ogg')
|
||||
if ("AI Satellite") sound = pick('ambimalf.ogg')
|
||||
if ("AI Satellite Teleporter Room") sound = pick('ambiruntime.ogg','ambimalf.ogg')
|
||||
if ("Central Primary Hallway") sound = pick('ambiruntime.ogg')
|
||||
if ("Aft Primary Hallway") sound = pick('ambiruntime.ogg')
|
||||
if ("AI Upload Foyer") sound = pick('ambimalf.ogg', 'null.ogg', 'null.ogg')
|
||||
if ("AI Upload Chamber") sound = pick('ambimalf.ogg','null.ogg','null.ogg')
|
||||
if ("Bar") sound = pick('title1.ogg')
|
||||
if ("AI Upload Foyer") sound = pick('ambimalf.ogg', 'null.ogg')
|
||||
if ("AI Upload Chamber") sound = pick('ambimalf.ogg','null.ogg')
|
||||
if ("Mine")
|
||||
sound = pick('ambimine.ogg')
|
||||
musVolume = 25
|
||||
else
|
||||
sound = pick('ambigen1.ogg','ambigen3.ogg','ambigen4.ogg','ambigen5.ogg','ambigen6.ogg','ambigen7.ogg','ambigen8.ogg','ambigen9.ogg','ambigen10.ogg','ambigen11.ogg','ambigen12.ogg','ambigen14.ogg')
|
||||
sound = pick('ambiruntime.ogg','ambigen1.ogg','ambigen3.ogg','ambigen4.ogg','ambigen5.ogg','ambigen6.ogg','ambigen7.ogg','ambigen8.ogg','ambigen9.ogg','ambigen10.ogg','ambigen11.ogg','ambigen12.ogg','ambigen14.ogg')
|
||||
|
||||
|
||||
if (prob(35))
|
||||
|
||||
@@ -33,6 +33,12 @@
|
||||
..()
|
||||
return 0
|
||||
|
||||
/turf/bullet_act(var/obj/item/projectile/Proj)
|
||||
if(istype(Proj ,/obj/item/projectile/bullet/gyro))
|
||||
explosion(src, -1, 0, 2)
|
||||
..()
|
||||
return 0
|
||||
|
||||
/turf/Enter(atom/movable/mover as mob|obj, atom/forget as mob|obj|turf|area)
|
||||
if (!mover || !isturf(mover.loc))
|
||||
return 1
|
||||
|
||||
@@ -1687,6 +1687,37 @@ datum
|
||||
..()
|
||||
return
|
||||
|
||||
condensedcapsaicin
|
||||
name = "Condensed Capsaicin"
|
||||
id = "condensedcapsaicin"
|
||||
description = "This shit goes in pepperspray."
|
||||
reagent_state = LIQUID
|
||||
color = "#B31008" // rgb: 179, 16, 8
|
||||
|
||||
reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
|
||||
if(!istype(M, /mob/living))
|
||||
return
|
||||
if(method == TOUCH)
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
if(M:wear_mask)
|
||||
|
||||
M << "\red Your mask protects you from the pepperspray!"
|
||||
return
|
||||
if(M:head)
|
||||
M << "\red Your helmet protects you from the pepperspray!"
|
||||
return
|
||||
if(M:glasses)
|
||||
M << "\red Your glasses protect you from most of the pepperspray!"
|
||||
M:emote("scream")
|
||||
M.eye_blurry = max(M.eye_blurry, 1)
|
||||
return
|
||||
M:emote("scream")
|
||||
M << "\red You're sprayed directly in the eyes with pepperspray!"
|
||||
M.eye_blurry = max(M.eye_blurry, 5)
|
||||
M.eye_blind = max(M.eye_blind, 2)
|
||||
M:paralysis = max(M:paralysis, 1)
|
||||
M.drop_item()
|
||||
|
||||
frostoil
|
||||
name = "Frost Oil"
|
||||
id = "frostoil"
|
||||
|
||||
@@ -173,6 +173,7 @@
|
||||
|
||||
afterattack(atom/target as mob|obj|turf|area, mob/user as mob)
|
||||
if (istype(target, /obj/item/weapon/storage)) return ..()
|
||||
if (istype(target, /obj/item/weapon/gun/grenadelauncher)) return ..()
|
||||
if (!src.state && stage == 2 && !crit_fail)
|
||||
user << "\red You prime the grenade! 3 seconds!"
|
||||
message_admins("[key_name_admin(user)] used a chemistry grenade ([src.name]).")
|
||||
@@ -322,6 +323,105 @@
|
||||
reagents = R
|
||||
R.my_atom = src
|
||||
|
||||
/obj/item/weapon/gun/grenadelauncher
|
||||
name = "grenade launcher"
|
||||
icon = 'gun.dmi'
|
||||
icon_state = "riotgun"
|
||||
item_state = "riotgun"
|
||||
w_class = 4.0
|
||||
throw_speed = 2
|
||||
throw_range = 10
|
||||
force = 5.0
|
||||
var/list/grenades = new/list()
|
||||
var/max_grenades = 3
|
||||
m_amt = 2000
|
||||
|
||||
examine()
|
||||
set src in view()
|
||||
..()
|
||||
if (!(usr in view(2)) && usr!=src.loc) return
|
||||
usr << "\icon [src] Grenade launcher:"
|
||||
usr << "\blue [grenades] / [max_grenades] Grenades."
|
||||
|
||||
attackby(obj/item/I as obj, mob/user as mob)
|
||||
if((istype(I, /obj/item/weapon/chem_grenade)) || (istype(I, /obj/item/weapon/flashbang)) || (istype(I, /obj/item/weapon/smokebomb)) || (istype(I, /obj/item/weapon/mustardbomb)) || (istype(I, /obj/item/weapon/empgrenade)))
|
||||
if(grenades.len < max_grenades)
|
||||
user.drop_item()
|
||||
I.loc = src
|
||||
grenades += I
|
||||
user << "\blue You put the grenade in the grenade launcher."
|
||||
user << "\blue [grenades.len] / [max_grenades] Grenades."
|
||||
else
|
||||
usr << "\red The grenade launcher cannot hold more grenades."
|
||||
|
||||
afterattack(obj/target, mob/user , flag)
|
||||
if(target == user) return
|
||||
|
||||
if(grenades.len)
|
||||
spawn(0) fire_grenade(target,user)
|
||||
else
|
||||
usr << "\red The grenade launcher is empty."
|
||||
|
||||
proc
|
||||
fire_grenade(atom/target, mob/user)
|
||||
if (locate (/obj/structure/table, src.loc))
|
||||
return
|
||||
else
|
||||
for(var/mob/O in viewers(world.view, user))
|
||||
O.show_message(text("\red [] fired a grenade!", user), 1)
|
||||
user << "\red You fire the grenade launcher!"
|
||||
if (istype(grenades[1], /obj/item/weapon/chem_grenade))
|
||||
var/obj/item/weapon/chem_grenade/F = grenades[1]
|
||||
grenades -= F
|
||||
F.loc = user.loc
|
||||
F.throw_at(target, 30, 2)
|
||||
message_admins("[key_name_admin(user)] fired a chemistry grenade from a grenade launcher ([src.name]).")
|
||||
log_game("[key_name_admin(user)] used a chemistry grenade ([src.name]).")
|
||||
F.state = 1
|
||||
F.icon_state = initial(icon_state)+"_armed"
|
||||
playsound(user.loc, 'armbomb.ogg', 75, 1, -3)
|
||||
spawn(15)
|
||||
F.explode()
|
||||
else if (istype(grenades[1], /obj/item/weapon/flashbang))
|
||||
var/obj/item/weapon/flashbang/F = grenades[1]
|
||||
grenades -= F
|
||||
F.loc = user.loc
|
||||
F.throw_at(target, 30, 2)
|
||||
F.active = 1
|
||||
F.icon_state = "flashbang1"
|
||||
playsound(user.loc, 'armbomb.ogg', 75, 1, -3)
|
||||
spawn(15)
|
||||
F.prime()
|
||||
else if (istype(grenades[1], /obj/item/weapon/smokebomb))
|
||||
var/obj/item/weapon/smokebomb/F = grenades[1]
|
||||
grenades -= F
|
||||
F.loc = user.loc
|
||||
F.throw_at(target, 30, 2)
|
||||
F.icon_state = "flashbang1"
|
||||
playsound(user.loc, 'armbomb.ogg', 75, 1, -3)
|
||||
spawn(15)
|
||||
F.prime()
|
||||
else if (istype(grenades[1], /obj/item/weapon/mustardbomb))
|
||||
var/obj/item/weapon/mustardbomb/F = grenades[1]
|
||||
grenades -= F
|
||||
F.loc = user.loc
|
||||
F.throw_at(target, 30, 2)
|
||||
F.icon_state = "flashbang1"
|
||||
playsound(user.loc, 'armbomb.ogg', 75, 1, -3)
|
||||
spawn(15)
|
||||
F.prime()
|
||||
else if (istype(grenades[1], /obj/item/weapon/empgrenade))
|
||||
var/obj/item/weapon/empgrenade/F = grenades[1]
|
||||
grenades -= F
|
||||
F.loc = user.loc
|
||||
F.throw_at(target, 30, 2)
|
||||
F.active = 1
|
||||
F.icon_state = "empar"
|
||||
playsound(user.loc, 'armbomb.ogg', 75, 1, -3)
|
||||
spawn(15)
|
||||
F.prime()
|
||||
|
||||
|
||||
/obj/item/weapon/gun/syringe
|
||||
name = "syringe gun"
|
||||
icon = 'gun.dmi'
|
||||
@@ -2633,6 +2733,18 @@
|
||||
..()
|
||||
reagents.add_reagent("fuel",1000)
|
||||
|
||||
/obj/structure/reagent_dispensers/peppertank
|
||||
name = "Pepper Spray Refiller"
|
||||
desc = "Refill pepper spray canisters."
|
||||
icon = 'objects.dmi'
|
||||
icon_state = "peppertank"
|
||||
anchored = 1
|
||||
density = 0
|
||||
amount_per_transfer_from_this = 45
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("condensedcapsaicin",1000)
|
||||
|
||||
/obj/structure/reagent_dispensers/fueltank/blob_act()
|
||||
explosion(src.loc,0,1,5,7,10)
|
||||
if(src)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/obj/item/clothing/suit/armor
|
||||
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs)
|
||||
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/pepperspray,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs)
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO
|
||||
flags = FPRINT | TABLEPASS
|
||||
|
||||
|
||||
@@ -254,6 +254,13 @@
|
||||
else
|
||||
on = 0
|
||||
continue
|
||||
if (selected_glass == 1 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 1 && selected_clown == 0 && selected_adamantine == 0)
|
||||
if (ore_glass > 0)
|
||||
ore_glass--;
|
||||
new /obj/item/stack/sheet/rglass(output.loc)
|
||||
else
|
||||
on = 0
|
||||
continue
|
||||
if (selected_glass == 0 && selected_gold == 1 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0 && selected_adamantine == 0)
|
||||
if (ore_gold > 0)
|
||||
ore_gold--;
|
||||
@@ -296,10 +303,10 @@
|
||||
else
|
||||
on = 0
|
||||
continue
|
||||
if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 1 && selected_clown == 0 && selected_adamantine == 0)
|
||||
if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 1 && selected_uranium == 0 && selected_iron == 1 && selected_clown == 0 && selected_adamantine == 0)
|
||||
if (ore_iron > 0)
|
||||
ore_iron--;
|
||||
new /obj/item/stack/sheet/metal(output.loc)
|
||||
new /obj/item/stack/sheet/r_metal(output.loc)
|
||||
else
|
||||
on = 0
|
||||
continue
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
/mob/living/carbon/alien/adjustToxLoss(amount)
|
||||
storedPlasma = min(max(storedPlasma + amount,0),max_plasma) //upper limit of max_plasma, lower limit of 0
|
||||
return
|
||||
|
||||
/mob/living/carbon/alien/proc/getPlasma()
|
||||
return storedPlasma
|
||||
|
||||
/mob/living/carbon/alien/eyecheck()
|
||||
return 2
|
||||
|
||||
/mob/living/carbon/alien/New()
|
||||
..()
|
||||
|
||||
for(var/obj/item/clothing/mask/facehugger/facehugger in world)
|
||||
if(facehugger.stat == CONSCIOUS)
|
||||
var/image/activeIndicator = image('alien.dmi', loc = facehugger, icon_state = "facehugger_active")
|
||||
activeIndicator.override = 1
|
||||
client.images += activeIndicator
|
||||
@@ -10,10 +10,10 @@ Doesn't work on other aliens/AI.*/
|
||||
if(stat)
|
||||
src << "\green You must be conscious to do this."
|
||||
return 0
|
||||
else if(X&&getToxLoss() < X)
|
||||
else if(X && getPlasma() < X)
|
||||
src << "\green Not enough plasma stored."
|
||||
return 0
|
||||
else if(Y&&(!isturf(src.loc) || istype(src.loc, /turf/space)))
|
||||
else if(Y && (!isturf(src.loc) || istype(src.loc, /turf/space)))
|
||||
src << "\green Bad place for a garden!"
|
||||
return 0
|
||||
else return 1
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/mob/living/carbon/alien/humanoid/emote(var/act)
|
||||
/mob/living/carbon/alien/humanoid/emote(var/act,var/m_type=1,var/message = null)
|
||||
|
||||
var/param = null
|
||||
if (findtext(act, "-", 1, null))
|
||||
@@ -6,8 +6,6 @@
|
||||
param = copytext(act, t1 + 1, length(act) + 1)
|
||||
act = copytext(act, 1, t1)
|
||||
var/muzzled = istype(src.wear_mask, /obj/item/clothing/mask/muzzle)
|
||||
var/m_type = 1
|
||||
var/message
|
||||
|
||||
switch(act)
|
||||
if("sign")
|
||||
@@ -92,6 +90,25 @@
|
||||
if (!src.paralysis) src.paralysis += 2
|
||||
message = text("<B>[]</B> collapses!", src)
|
||||
m_type = 2
|
||||
if ("me")
|
||||
if(silent)
|
||||
return
|
||||
if (src.client && (client.muted || client.muted_complete))
|
||||
src << "You are muted."
|
||||
return
|
||||
if (stat)
|
||||
return
|
||||
if(!(message))
|
||||
return
|
||||
else
|
||||
if(cmptext(copytext(message, 1, 3), "v "))
|
||||
message = "<B>[src]</B> [copytext(message, 3)]"
|
||||
m_type = 1
|
||||
else if(cmptext(copytext(message, 1, 3), "h "))
|
||||
message = "<B>[src]</B> [copytext(message, 3)]"
|
||||
m_type = 2
|
||||
else
|
||||
message = "<B>[src]</B> [message]"
|
||||
if("help")
|
||||
src << "burp, deathgasp, choke, collapse, dance, drool, gasp, shiver, gnarl, jump, moan, nod, roar, roll, scratch,\nscretch, shake, sign-#, sit, sulk, sway, tail, twitch, whimper"
|
||||
else
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
stat(null, "Move Mode: [m_intent]")
|
||||
|
||||
if (client.statpanel == "Status")
|
||||
stat(null, "Plasma Stored: [getToxLoss()]")
|
||||
stat(null, "Plasma Stored: [getPlasma()]")
|
||||
|
||||
///mob/living/carbon/alien/humanoid/bullet_act(var/obj/item/projectile/Proj) taken care of in living
|
||||
|
||||
|
||||
@@ -361,16 +361,16 @@
|
||||
|
||||
if(reagents) reagents.metabolize(src)
|
||||
|
||||
/* if(src.nutrition > 500 && !(src.mutations & FAT))
|
||||
/*if(src.nutrition > 500 && !(src.mutations & FAT))
|
||||
if(prob(5 + round((src.nutrition - 200) / 2)))
|
||||
src << "\red You suddenly feel blubbery!"
|
||||
src.mutations |= FAT
|
||||
// update_body() */
|
||||
update_body()
|
||||
if (src.nutrition < 100 && src.mutations & FAT)
|
||||
if(prob(round((50 - src.nutrition) / 100)))
|
||||
src << "\blue You feel fit again!"
|
||||
src.mutations &= ~FAT
|
||||
// update_body()
|
||||
update_body()*/
|
||||
if (src.nutrition > 0)
|
||||
src.nutrition -= HUNGER_FACTOR
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/mob/living/carbon/alien/larva/emote(var/act)
|
||||
/mob/living/carbon/alien/larva/emote(var/act,var/m_type=1,var/message = null)
|
||||
|
||||
var/param = null
|
||||
if (findtext(act, "-", 1, null))
|
||||
@@ -6,8 +6,6 @@
|
||||
param = copytext(act, t1 + 1, length(act) + 1)
|
||||
act = copytext(act, 1, t1)
|
||||
var/muzzled = istype(src.wear_mask, /obj/item/clothing/mask/muzzle)
|
||||
var/m_type = 1
|
||||
var/message
|
||||
|
||||
switch(act)
|
||||
if("sign")
|
||||
@@ -89,6 +87,25 @@
|
||||
if (!src.paralysis) src.paralysis += 2
|
||||
message = text("<B>[]</B> collapses!", src)
|
||||
m_type = 2
|
||||
if ("me")
|
||||
if(silent)
|
||||
return
|
||||
if (src.client && (client.muted || client.muted_complete))
|
||||
src << "You are muted."
|
||||
return
|
||||
if (stat)
|
||||
return
|
||||
if(!(message))
|
||||
return
|
||||
else
|
||||
if(cmptext(copytext(message, 1, 3), "v "))
|
||||
message = "<B>[src]</B> [copytext(message, 3)]"
|
||||
m_type = 1
|
||||
else if(cmptext(copytext(message, 1, 3), "h "))
|
||||
message = "<B>[src]</B> [copytext(message, 3)]"
|
||||
m_type = 2
|
||||
else
|
||||
message = "<B>[src]</B> [message]"
|
||||
if("help")
|
||||
src << "burp, choke, collapse, dance, drool, gasp, shiver, gnarl, jump, moan, nod, roll, scratch,\nscretch, shake, sign-#, sulk, sway, tail, twitch, whimper"
|
||||
else
|
||||
|
||||
@@ -28,13 +28,13 @@
|
||||
now_pushing = 1
|
||||
if(ismob(AM))
|
||||
var/mob/tmob = AM
|
||||
if(istype(tmob, /mob/living/carbon/human) && tmob.mutations & FAT)
|
||||
/*if(istype(tmob, /mob/living/carbon/human) && tmob.mutations & FAT)
|
||||
if(prob(70))
|
||||
for(var/mob/M in viewers(src, null))
|
||||
if(M.client)
|
||||
M << "\red <B>[src] fails to push [tmob]'s fat ass out of the way.</B>"
|
||||
now_pushing = 0
|
||||
return
|
||||
return*/
|
||||
tmob.LAssailant = src
|
||||
|
||||
now_pushing = 0
|
||||
@@ -63,7 +63,7 @@
|
||||
|
||||
if (client.statpanel == "Status")
|
||||
stat(null, "Progress: [amount_grown]/200")
|
||||
stat(null, "Plasma Stored: [getToxLoss()]")
|
||||
stat(null, "Plasma Stored: [getPlasma()]")
|
||||
|
||||
|
||||
///mob/living/carbon/alien/larva/bullet_act(var/obj/item/projectile/Proj) taken care of in living
|
||||
|
||||
@@ -292,12 +292,12 @@
|
||||
if(prob(5 + round((nutrition - 200) / 2)))
|
||||
src << "\red You suddenly feel blubbery!"
|
||||
mutations |= FAT
|
||||
// update_body() */
|
||||
update_body()
|
||||
if (nutrition < 100 && mutations & FAT)
|
||||
if(prob(round((50 - nutrition) / 100)))
|
||||
src << "\blue You feel fit again!"
|
||||
mutations &= ~FAT
|
||||
// update_body()
|
||||
update_body()*/
|
||||
if (nutrition > 0)
|
||||
nutrition-= HUNGER_FACTOR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
/mob/living/carbon/alien/eyecheck()
|
||||
return 2
|
||||
|
||||
/mob/living/carbon/alien/say_understands(var/other)
|
||||
if (istype(other, /mob/living/carbon/alien))
|
||||
return 1
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
src.nutrition -= HUNGER_FACTOR/10
|
||||
if(src.m_intent == "run")
|
||||
src.nutrition -= HUNGER_FACTOR/10
|
||||
if(src.mutations & FAT && src.m_intent == "run" && src.bodytemperature <= 360)
|
||||
src.bodytemperature += 2
|
||||
/*if(src.mutations & FAT && src.m_intent == "run" && src.bodytemperature <= 360)
|
||||
src.bodytemperature += 2*/
|
||||
|
||||
/mob/living/carbon/relaymove(var/mob/user, direction)
|
||||
if(user in src.stomach_contents)
|
||||
@@ -194,4 +194,4 @@
|
||||
src.admin_observing = 0
|
||||
if(src.sleeping_willingly)
|
||||
src.sleeping = 0
|
||||
src.sleeping_willingly = 0
|
||||
src.sleeping_willingly = 0
|
||||
|
||||
@@ -125,12 +125,12 @@
|
||||
Metroid.UpdateFeed()
|
||||
return
|
||||
|
||||
if(istype(tmob, /mob/living/carbon/human) && tmob.mutations & FAT)
|
||||
/*if(istype(tmob, /mob/living/carbon/human) && tmob.mutations & FAT)
|
||||
if(prob(40) && !(mutations & FAT))
|
||||
visible_message("\red <B>[src] fails to push [tmob]'s fat ass out of the way.</B>", \
|
||||
"\red <B>You fail to push [tmob]'s fat ass out of the way.</B>")
|
||||
now_pushing = 0
|
||||
return
|
||||
return*/
|
||||
|
||||
tmob.LAssailant = src
|
||||
|
||||
@@ -175,8 +175,8 @@
|
||||
if(shoes)
|
||||
tally += shoes.slowdown
|
||||
|
||||
if(mutations & FAT)
|
||||
tally += 1.5
|
||||
/*if(mutations & FAT)
|
||||
tally += 1.5*/
|
||||
if (bodytemperature < 283.222)
|
||||
tally += (283.222 - bodytemperature) / 10 * 1.75
|
||||
|
||||
@@ -458,9 +458,9 @@
|
||||
return
|
||||
if (!( istype(W, /obj/item/clothing/suit) ))
|
||||
return
|
||||
if (mutations & FAT && !(W.flags & ONESIZEFITSALL))
|
||||
/*if (mutations & FAT && !(W.flags & ONESIZEFITSALL))
|
||||
src << "\red You're too fat to wear the [W.name]!"
|
||||
return
|
||||
return*/
|
||||
u_equip(W)
|
||||
wear_suit = W
|
||||
W.equipped(src, text)
|
||||
@@ -540,9 +540,9 @@
|
||||
return
|
||||
if (!( istype(W, /obj/item/clothing/under) ))
|
||||
return
|
||||
if (mutations & FAT && !(W.flags & ONESIZEFITSALL))
|
||||
/*if (mutations & FAT && !(W.flags & ONESIZEFITSALL))
|
||||
src << "\red You're too fat to wear the [W.name]!"
|
||||
return
|
||||
return*/
|
||||
u_equip(W)
|
||||
w_uniform = W
|
||||
W.equipped(src, text)
|
||||
@@ -725,8 +725,8 @@
|
||||
|
||||
// lol
|
||||
var/fat = ""
|
||||
if (mutations & FAT)
|
||||
fat = "fat"
|
||||
/*if (mutations & FAT)
|
||||
fat = "fat"*/
|
||||
|
||||
if (mutations & HULK)
|
||||
overlays += image("icon" = 'genetics.dmi', "icon_state" = "hulk[fat][!lying ? "_s" : "_l"]")
|
||||
@@ -813,7 +813,7 @@
|
||||
|
||||
// Uniform
|
||||
if(w_uniform)
|
||||
if (mutations & FAT && !(w_uniform.flags & ONESIZEFITSALL))
|
||||
/*if (mutations & FAT && !(w_uniform.flags & ONESIZEFITSALL))
|
||||
src << "\red You burst out of the [w_uniform.name]!"
|
||||
var/obj/item/clothing/c = w_uniform
|
||||
u_equip(c)
|
||||
@@ -822,17 +822,17 @@
|
||||
if(c)
|
||||
c:loc = loc
|
||||
c:dropped(src)
|
||||
c:layer = initial(c:layer)
|
||||
c:layer = initial(c:layer)*/
|
||||
if(w_uniform)//I should really not need these
|
||||
w_uniform.screen_loc = ui_iclothing
|
||||
if(istype(w_uniform, /obj/item/clothing/under))
|
||||
var/t1 = w_uniform.color
|
||||
if (!t1)
|
||||
t1 = icon_state
|
||||
if (mutations & FAT)
|
||||
/*if (mutations & FAT)
|
||||
overlays += image("icon" = 'uniform_fat.dmi', "icon_state" = "[t1][!lying ? "_s" : "_l"]", "layer" = MOB_LAYER)
|
||||
else
|
||||
overlays += image("icon" = 'uniform.dmi', "icon_state" = text("[][]",t1, (!(lying) ? "_s" : "_l")), "layer" = MOB_LAYER)
|
||||
else*/
|
||||
overlays += image("icon" = 'uniform.dmi', "icon_state" = text("[][]",t1, (!(lying) ? "_s" : "_l")), "layer" = MOB_LAYER)
|
||||
if (w_uniform.blood_DNA)
|
||||
var/icon/stain_icon = icon('blood.dmi', "uniformblood[!lying ? "" : "2"]")
|
||||
overlays += image("icon" = stain_icon, "layer" = MOB_LAYER)
|
||||
@@ -912,7 +912,7 @@
|
||||
|
||||
|
||||
if (wear_suit)
|
||||
if (mutations & FAT && !(wear_suit.flags & ONESIZEFITSALL))
|
||||
/*if (mutations & FAT && !(wear_suit.flags & ONESIZEFITSALL))
|
||||
src << "\red You burst out of the [wear_suit.name]!"
|
||||
var/obj/item/clothing/c = wear_suit
|
||||
u_equip(c)
|
||||
@@ -921,7 +921,7 @@
|
||||
if(c)
|
||||
c:loc = loc
|
||||
c:dropped(src)
|
||||
c:layer = initial(c:layer)
|
||||
c:layer = initial(c:layer)*/
|
||||
if (istype(wear_suit, /obj/item/clothing/suit))
|
||||
var/t1 = wear_suit.icon_state
|
||||
overlays += image("icon" = 'suit.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = MOB_LAYER)
|
||||
@@ -1199,14 +1199,14 @@
|
||||
lying_icon = new /icon('human.dmi', "blank")
|
||||
|
||||
var/husk = (mutations & HUSK)
|
||||
var/obese = (mutations & FAT)
|
||||
//var/obese = (mutations & FAT)
|
||||
|
||||
if (husk)
|
||||
stand_icon.Blend(new /icon('human.dmi', "husk_s"), ICON_OVERLAY)
|
||||
lying_icon.Blend(new /icon('human.dmi', "husk_l"), ICON_OVERLAY)
|
||||
else if(obese)
|
||||
/*else if(obese)
|
||||
stand_icon.Blend(new /icon('human.dmi', "fatbody_s"), ICON_OVERLAY)
|
||||
lying_icon.Blend(new /icon('human.dmi', "fatbody_l"), ICON_OVERLAY)
|
||||
lying_icon.Blend(new /icon('human.dmi', "fatbody_l"), ICON_OVERLAY)*/
|
||||
else
|
||||
stand_icon.Blend(new /icon('human.dmi', "chest_[g]_s"), ICON_OVERLAY)
|
||||
lying_icon.Blend(new /icon('human.dmi', "chest_[g]_l"), ICON_OVERLAY)
|
||||
@@ -1227,9 +1227,9 @@
|
||||
lying_icon.Blend(rgb(-s_tone, -s_tone, -s_tone), ICON_SUBTRACT)
|
||||
|
||||
if (underwear > 0)
|
||||
if(!obese)
|
||||
stand_icon.Blend(new /icon('human.dmi', "underwear[underwear]_[g]_s"), ICON_OVERLAY)
|
||||
lying_icon.Blend(new /icon('human.dmi', "underwear[underwear]_[g]_l"), ICON_OVERLAY)
|
||||
//if(!obese)
|
||||
stand_icon.Blend(new /icon('human.dmi', "underwear[underwear]_[g]_s"), ICON_OVERLAY)
|
||||
lying_icon.Blend(new /icon('human.dmi', "underwear[underwear]_[g]_l"), ICON_OVERLAY)
|
||||
|
||||
/mob/living/carbon/human/proc/update_face()
|
||||
if(!facial_hair_style || !hair_style) return//Seems people like to lose their icons, this should stop the runtimes for now
|
||||
|
||||
@@ -610,14 +610,14 @@
|
||||
if(getOxyLoss())
|
||||
oxyloss--
|
||||
|
||||
/* if(overeatduration > 500 && !(mutations & FAT))
|
||||
/*if(overeatduration > 500 && !(mutations & FAT))
|
||||
src << "\red You suddenly feel blubbery!"
|
||||
mutations |= FAT
|
||||
update_body() */
|
||||
update_body()
|
||||
if (overeatduration < 100 && mutations & FAT)
|
||||
src << "\blue You feel fit again!"
|
||||
mutations &= ~FAT
|
||||
update_body()
|
||||
update_body()*/
|
||||
|
||||
// nutrition decrease
|
||||
if (nutrition > 0 && stat != 2)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/mob/living/carbon/metroid/emote(var/act)
|
||||
/mob/living/carbon/metroid/emote(var/act,var/m_type=1,var/message = null)
|
||||
|
||||
|
||||
if (findtext(act, "-", 1, null))
|
||||
@@ -6,9 +6,6 @@
|
||||
//param = copytext(act, t1 + 1, length(act) + 1)
|
||||
act = copytext(act, 1, t1)
|
||||
|
||||
var/m_type = 1
|
||||
var/message
|
||||
|
||||
switch(act)
|
||||
if("moan")
|
||||
message = "<B>The [src.name]</B> moans."
|
||||
@@ -45,6 +42,25 @@
|
||||
if("shriek")
|
||||
message = "<B>The [src.name]</B> makes a high-pitched shriek!"
|
||||
m_type = 1
|
||||
if ("me")
|
||||
if(silent)
|
||||
return
|
||||
if (src.client && (client.muted || client.muted_complete))
|
||||
src << "You are muted."
|
||||
return
|
||||
if (stat)
|
||||
return
|
||||
if(!(message))
|
||||
return
|
||||
else
|
||||
if(cmptext(copytext(message, 1, 3), "v "))
|
||||
message = "<B>[src]</B> [copytext(message, 3)]"
|
||||
m_type = 1
|
||||
else if(cmptext(copytext(message, 1, 3), "h "))
|
||||
message = "<B>[src]</B> [copytext(message, 3)]"
|
||||
m_type = 2
|
||||
else
|
||||
message = "<B>[src]</B> [message]"
|
||||
else
|
||||
src << text("Invalid Emote: []", act)
|
||||
if ((message && src.stat == 0))
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/mob/living/carbon/monkey/emote(var/act)
|
||||
/mob/living/carbon/monkey/emote(var/act,var/m_type=1,var/message = null)
|
||||
|
||||
var/param = null
|
||||
if (findtext(act, "-", 1, null))
|
||||
@@ -6,8 +6,6 @@
|
||||
param = copytext(act, t1 + 1, length(act) + 1)
|
||||
act = copytext(act, 1, t1)
|
||||
var/muzzled = istype(src.wear_mask, /obj/item/clothing/mask/muzzle)
|
||||
var/m_type = 1
|
||||
var/message
|
||||
|
||||
switch(act)
|
||||
if("sign")
|
||||
@@ -92,6 +90,25 @@
|
||||
if("deathgasp")
|
||||
message = "<b>The [src.name]</b> lets out a faint chimper as it collapses and stops moving..."
|
||||
m_type = 1
|
||||
if ("me")
|
||||
if(silent)
|
||||
return
|
||||
if (src.client && (client.muted || client.muted_complete))
|
||||
src << "You are muted."
|
||||
return
|
||||
if (stat)
|
||||
return
|
||||
if(!(message))
|
||||
return
|
||||
else
|
||||
if(cmptext(copytext(message, 1, 3), "v "))
|
||||
message = "<B>[src]</B> [copytext(message, 3)]"
|
||||
m_type = 1
|
||||
else if(cmptext(copytext(message, 1, 3), "h "))
|
||||
message = "<B>[src]</B> [copytext(message, 3)]"
|
||||
m_type = 2
|
||||
else
|
||||
message = "<B>[src]</B> [message]"
|
||||
if("help")
|
||||
src << "choke, collapse, dance, deathgasp, drool, gasp, shiver, gnarl, jump, paw, moan, nod, roar, roll, scratch,\nscretch, shake, sign-#, sit, sulk, sway, tail, twitch, whimper"
|
||||
else
|
||||
|
||||
@@ -47,13 +47,13 @@
|
||||
now_pushing = 1
|
||||
if(ismob(AM))
|
||||
var/mob/tmob = AM
|
||||
if(istype(tmob, /mob/living/carbon/human) && tmob.mutations & FAT)
|
||||
/*if(istype(tmob, /mob/living/carbon/human) && tmob.mutations & FAT)
|
||||
if(prob(70))
|
||||
for(var/mob/M in viewers(src, null))
|
||||
if(M.client)
|
||||
M << "\red <B>[src] fails to push [tmob]'s fat ass out of the way.</B>"
|
||||
now_pushing = 0
|
||||
return
|
||||
return*/
|
||||
|
||||
tmob.LAssailant = src
|
||||
now_pushing = 0
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
/mob/living/silicon/robot/emote(var/act)
|
||||
/mob/living/silicon/robot/emote(var/act,var/m_type=1,var/message = null)
|
||||
var/param = null
|
||||
if (findtext(act, "-", 1, null))
|
||||
var/t1 = findtext(act, "-", 1, null)
|
||||
param = copytext(act, t1 + 1, length(act) + 1)
|
||||
act = copytext(act, 1, t1)
|
||||
var/m_type = 1
|
||||
var/message
|
||||
|
||||
switch(act)
|
||||
if ("salute")
|
||||
@@ -186,8 +184,34 @@
|
||||
playsound(src.loc, 'buzz-sigh.ogg', 50, 0)
|
||||
m_type = 2
|
||||
|
||||
if("law")
|
||||
message = "<B>[src]</B> shows its legal authorization barcode."
|
||||
|
||||
playsound(src.loc, 'biamthelaw.ogg', 50, 0)
|
||||
m_type = 2
|
||||
|
||||
if ("me")
|
||||
if(silent)
|
||||
return
|
||||
if (src.client && (client.muted || client.muted_complete))
|
||||
src << "You are muted."
|
||||
return
|
||||
if (stat)
|
||||
return
|
||||
if(!(message))
|
||||
return
|
||||
else
|
||||
if(cmptext(copytext(message, 1, 3), "v "))
|
||||
message = "<B>[src]</B> [copytext(message, 3)]"
|
||||
m_type = 1
|
||||
else if(cmptext(copytext(message, 1, 3), "h "))
|
||||
message = "<B>[src]</B> [copytext(message, 3)]"
|
||||
m_type = 2
|
||||
else
|
||||
message = "<B>[src]</B> [message]"
|
||||
|
||||
if("help")
|
||||
src << "beep-(none)/mob, ping-(none)/mob, buzz-(none)/mob, look-(none)/mob, stare-(none)/mob, glare-(none)/mob, twitch, twitch_s"
|
||||
src << "beep-(none)/mob, ping-(none)/mob, buzz-(none)/mob, look-(none)/mob, stare-(none)/mob, glare-(none)/mob, twitch, twitch_s, law"
|
||||
|
||||
else
|
||||
src << text("Invalid Emote: []", act)
|
||||
|
||||
@@ -254,7 +254,7 @@
|
||||
if ((!( yes ) || now_pushing))
|
||||
return
|
||||
now_pushing = 1
|
||||
if(ismob(AM))
|
||||
/*if(ismob(AM))
|
||||
var/mob/tmob = AM
|
||||
if(istype(tmob, /mob/living/carbon/human) && tmob.mutations & FAT)
|
||||
if(prob(20))
|
||||
@@ -263,7 +263,7 @@
|
||||
M << M << "\red <B>[src] fails to push [tmob]'s fat ass out of the way.</B>"
|
||||
now_pushing = 0
|
||||
//unlock_medal("That's No Moon, That's A Gourmand!", 1)
|
||||
return
|
||||
return*/
|
||||
now_pushing = 0
|
||||
..()
|
||||
if (istype(AM, /obj/machinery/recharge_station))
|
||||
|
||||
@@ -606,8 +606,13 @@
|
||||
return
|
||||
if (!ismob(M))
|
||||
return
|
||||
|
||||
var/recipient_name = M.key
|
||||
if(M.client && M.client.holder && M.client.stealth)
|
||||
recipient_name = "Administrator"
|
||||
|
||||
//This should have a check to prevent the player to player chat but I am too tired atm to add it.
|
||||
var/t = input("Message:", text("Private message to [M.key]")) as text|null
|
||||
var/t = input("Message:", text("Private message to [recipient_name]")) as text|null
|
||||
if (!t || !usr || !M)
|
||||
return
|
||||
if (usr.client && usr.client.holder)
|
||||
|
||||
@@ -129,11 +129,11 @@
|
||||
return
|
||||
else
|
||||
if (state < 3)
|
||||
if(istype(affecting, /mob/living/carbon/human))
|
||||
/*if(istype(affecting, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = affecting
|
||||
if(H.mutations & FAT)
|
||||
assailant << "\blue You can't strangle [affecting] through all that fat!"
|
||||
return
|
||||
return*/
|
||||
|
||||
/*Hrm might want to add this back in
|
||||
//we should be able to strangle the Captain if he is wearing a hat
|
||||
@@ -199,7 +199,7 @@
|
||||
s_click(hud1)
|
||||
return
|
||||
if(M == assailant && state >= 2)
|
||||
if( ( ishuman(user) && (user.mutations & FAT) && ismonkey(affecting) ) || ( isalien(user) && iscarbon(affecting) ) )
|
||||
if( ( ishuman(user) /*&& (user.mutations & FAT)*/ && ismonkey(affecting) ) || ( isalien(user) && iscarbon(affecting) ) )
|
||||
var/mob/living/carbon/attacker = user
|
||||
for(var/mob/N in viewers(user, null))
|
||||
if(N.client)
|
||||
|
||||
@@ -17,10 +17,7 @@
|
||||
|
||||
message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN))
|
||||
|
||||
if(ishuman(src))
|
||||
usr.emote("me",1,message)
|
||||
else
|
||||
usr.emote(message)
|
||||
usr.emote("me",1,message)
|
||||
|
||||
/mob/proc/say_dead(var/message)
|
||||
var/name = src.real_name
|
||||
|
||||
@@ -219,8 +219,8 @@
|
||||
if ((stat & BROKEN) || malfhack)
|
||||
user.visible_message(\
|
||||
"\red [user.name] has broken the power control board inside [src.name]!",\
|
||||
"You broke the charred power control board and remove remains.",
|
||||
"You hear crack")
|
||||
"You broke the charred power control board and remove the remains.",
|
||||
"You hear a crack!")
|
||||
//ticker.mode:apcs-- //XSI said no and I agreed. -rastaf0
|
||||
else
|
||||
user.visible_message(\
|
||||
@@ -274,7 +274,7 @@
|
||||
return
|
||||
updateicon()
|
||||
else if(emagged || malfhack)
|
||||
user << "The interface is broken"
|
||||
user << "The interface is broken."
|
||||
else
|
||||
wiresexposed = !wiresexposed
|
||||
user << "The wires have been [wiresexposed ? "exposed" : "unexposed"]"
|
||||
@@ -315,7 +315,7 @@
|
||||
user << "You fail to [ locked ? "unlock" : "lock"] the APC interface."
|
||||
else if (istype(W, /obj/item/weapon/cable_coil) && !terminal && opened && has_electronics!=2)
|
||||
if (src.loc:intact)
|
||||
user << "\red You must remove the floor plating first."
|
||||
user << "\red You must remove the floor plating in front of the APC first."
|
||||
return
|
||||
var/obj/item/weapon/cable_coil/C = W
|
||||
if(C.amount < 10)
|
||||
@@ -339,7 +339,7 @@
|
||||
terminal.connect_to_network()
|
||||
else if (istype(W, /obj/item/weapon/wirecutters) && terminal && opened && has_electronics!=2)
|
||||
if (src.loc:intact)
|
||||
user << "\red You must remove the floor plating first."
|
||||
user << "\red You must remove the floor plating in front of the APC first."
|
||||
return
|
||||
user << "You begin to cut cables..."
|
||||
playsound(src.loc, 'Deconstruct.ogg', 50, 1)
|
||||
@@ -378,7 +378,7 @@
|
||||
new /obj/item/stack/sheet/metal(loc)
|
||||
user.visible_message(\
|
||||
"\red [src] has been cut apart by [user.name] with the weldingtool.",\
|
||||
"You disassembled brocken APC frame.",\
|
||||
"You disassembled the broken APC frame.",\
|
||||
"\red You hear welding.")
|
||||
else
|
||||
new /obj/item/apc_frame(loc)
|
||||
@@ -394,13 +394,13 @@
|
||||
if (opened==2)
|
||||
opened = 1
|
||||
user.visible_message(\
|
||||
"\red [user.name] has replaced the damaged APC frontal panel with new one.",\
|
||||
"You replace the damaged APC frontal panel with new one.")
|
||||
"\red [user.name] has replaced the damaged APC frontal panel with a new one.",\
|
||||
"You replace the damaged APC frontal panel with a new one.")
|
||||
del(W)
|
||||
updateicon()
|
||||
else if (istype(W, /obj/item/apc_frame) && opened && ((stat & BROKEN) || malfhack))
|
||||
if (has_electronics)
|
||||
user << "You cannot repair this heavy damaged APC until broken electronics stills inside."
|
||||
user << "You cannot repair this APC until you remove the electronics still inside."
|
||||
return
|
||||
user << "You begin to replace the damaged APC frame..."
|
||||
if(do_after(user, 50))
|
||||
|
||||
@@ -63,6 +63,7 @@
|
||||
process()
|
||||
charge_tick++
|
||||
if(charge_tick < 4) return 0
|
||||
charge_tick = 0
|
||||
if(!power_supply) return 0
|
||||
power_supply.give(100)
|
||||
return 1
|
||||
|
||||
@@ -34,12 +34,6 @@
|
||||
damage = 20
|
||||
|
||||
|
||||
/obj/item/projectile/bullet/gyro
|
||||
name ="gyro"
|
||||
icon_state= "bolter"
|
||||
damage = 50
|
||||
|
||||
|
||||
/obj/item/projectile/bullet/stunshot
|
||||
name = "stunshot"
|
||||
damage = 5
|
||||
|
||||
@@ -12,6 +12,18 @@
|
||||
return 1
|
||||
|
||||
|
||||
/obj/item/projectile/bullet/gyro
|
||||
name ="gyro"
|
||||
icon_state= "bolter"
|
||||
damage = 50
|
||||
flag = "bullet"
|
||||
|
||||
|
||||
on_hit(var/atom/target, var/blocked = 0)
|
||||
explosion(target, -1, 0, 2)
|
||||
return 1
|
||||
|
||||
|
||||
|
||||
/obj/item/projectile/temp
|
||||
name = "freeze beam"
|
||||
|
||||
@@ -271,7 +271,7 @@
|
||||
process()
|
||||
if(stat & BROKEN) // nothing can happen if broken
|
||||
return
|
||||
|
||||
|
||||
if(length(src.contents) > 0)
|
||||
if(timeleft == 0)
|
||||
flush = 1
|
||||
@@ -478,10 +478,11 @@
|
||||
// note AM since can contain mobs or objs
|
||||
for(var/atom/movable/AM in D)
|
||||
AM.loc = src
|
||||
if(istype(AM, /mob/living/carbon/human))
|
||||
/*if(istype(AM, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = AM
|
||||
if(H.mutations & FAT) // is a human and fat?
|
||||
has_fat_guy = 1 // set flag on holder
|
||||
*/
|
||||
if(istype(AM, /obj/effect/bigDelivery))
|
||||
var/obj/effect/bigDelivery/T = AM
|
||||
src.destinationTag = T.sortTag
|
||||
|
||||
@@ -0,0 +1,113 @@
|
||||
/var/security_level = 0
|
||||
//0 = code green
|
||||
//1 = code blue
|
||||
//2 = code red
|
||||
//3 = code delta
|
||||
|
||||
/proc/set_security_level(var/level)
|
||||
switch(level)
|
||||
if("green")
|
||||
level = SEC_LEVEL_GREEN
|
||||
if("blue")
|
||||
level = SEC_LEVEL_BLUE
|
||||
if("red")
|
||||
level = SEC_LEVEL_RED
|
||||
if("delta")
|
||||
level = SEC_LEVEL_DELTA
|
||||
|
||||
//Will not be announced if you try to set to the same level as it already is
|
||||
if(level >= SEC_LEVEL_GREEN && level <= SEC_LEVEL_DELTA && level != security_level)
|
||||
switch(level)
|
||||
if(SEC_LEVEL_GREEN)
|
||||
world << "<font size=4 color='red'>Attention! security level lowered to green</font>"
|
||||
world << "<font color='red'>All threats to the station have passed. Security may not have weapons visible, privacy laws are once again fully enforced.</font>"
|
||||
security_level = SEC_LEVEL_GREEN
|
||||
for(var/obj/machinery/firealarm/FA in world)
|
||||
if(FA.z == 1)
|
||||
FA.overlays = list()
|
||||
FA.overlays += image('monitors.dmi', "overlay_green")
|
||||
if(SEC_LEVEL_BLUE)
|
||||
if(security_level < SEC_LEVEL_BLUE)
|
||||
world << "<font size=4 color='red'>Attention! security level elevated to blue</font>"
|
||||
world << "<font color='red'>The station has received reliable information about possible hostile activity on the station. Security staff may have weapons visible, random searches are permitted.</font>"
|
||||
else
|
||||
world << "<font size=4 color='red'>Attention! security level lowered to blue</font>"
|
||||
world << "<font color='red'>The immediate threat has passed. Security may no longer have weapons drawn at all times, but may continue to have them visible. Random searches are still allowed.</font>"
|
||||
security_level = SEC_LEVEL_BLUE
|
||||
for(var/obj/machinery/firealarm/FA in world)
|
||||
if(FA.z == 1)
|
||||
FA.overlays = list()
|
||||
FA.overlays += image('monitors.dmi', "overlay_blue")
|
||||
if(SEC_LEVEL_RED)
|
||||
if(security_level < SEC_LEVEL_RED)
|
||||
world << "<font size=4 color='red'>Attention! Code red!</font>"
|
||||
world << "<font color='red'>There is an immediate serious threat to the station. Security may have weapons unholstered at all times. Random searches are allowed and advised.</font>"
|
||||
else
|
||||
world << "<font size=4 color='red'>Attention! Code red!</font>"
|
||||
world << "<font color='red'>The self-destruct mechanism has been deactivated, there is still however an immediate serious threat to the station. Security may have weapons unholstered at all times, random searches are allowed and advised.</font>"
|
||||
security_level = SEC_LEVEL_RED
|
||||
|
||||
/* - At the time of commit, setting status displays didn't work properly
|
||||
var/obj/machinery/computer/communications/CC = locate(/obj/machinery/computer/communications,world)
|
||||
if(CC)
|
||||
CC.post_status("alert", "redalert")*/
|
||||
|
||||
for(var/obj/machinery/firealarm/FA in world)
|
||||
if(FA.z == 1)
|
||||
FA.overlays = list()
|
||||
FA.overlays += image('monitors.dmi', "overlay_red")
|
||||
if(SEC_LEVEL_DELTA)
|
||||
world << "<font size=4 color='red'>Attention! Delta security level reached!</font>"
|
||||
world << "<font color='red'>The ship's self-destruct mechanism has been engaged. All crew are instructed to obey all instructions given by heads of staff. Any violations of these orders can be punished by death. This is not a drill.</font>"
|
||||
security_level = SEC_LEVEL_DELTA
|
||||
for(var/obj/machinery/firealarm/FA in world)
|
||||
if(FA.z == 1)
|
||||
FA.overlays = list()
|
||||
FA.overlays += image('monitors.dmi', "overlay_delta")
|
||||
else
|
||||
return
|
||||
|
||||
/proc/get_security_level()
|
||||
switch(security_level)
|
||||
if(SEC_LEVEL_GREEN)
|
||||
return "green"
|
||||
if(SEC_LEVEL_BLUE)
|
||||
return "blue"
|
||||
if(SEC_LEVEL_RED)
|
||||
return "red"
|
||||
if(SEC_LEVEL_DELTA)
|
||||
return "delta"
|
||||
|
||||
/proc/num2seclevel(var/num)
|
||||
switch(num)
|
||||
if(SEC_LEVEL_GREEN)
|
||||
return "green"
|
||||
if(SEC_LEVEL_BLUE)
|
||||
return "blue"
|
||||
if(SEC_LEVEL_RED)
|
||||
return "red"
|
||||
if(SEC_LEVEL_DELTA)
|
||||
return "delta"
|
||||
|
||||
/proc/seclevel2num(var/seclevel)
|
||||
switch( lowertext(seclevel) )
|
||||
if("green")
|
||||
return SEC_LEVEL_GREEN
|
||||
if("blue")
|
||||
return SEC_LEVEL_BLUE
|
||||
if("red")
|
||||
return SEC_LEVEL_RED
|
||||
if("delta")
|
||||
return SEC_LEVEL_DELTA
|
||||
|
||||
|
||||
/*DEBUG
|
||||
/mob/verb/set_thing0()
|
||||
set_security_level(0)
|
||||
/mob/verb/set_thing1()
|
||||
set_security_level(1)
|
||||
/mob/verb/set_thing2()
|
||||
set_security_level(2)
|
||||
/mob/verb/set_thing3()
|
||||
set_security_level(3)
|
||||
*/
|
||||
@@ -155,7 +155,7 @@ var/const
|
||||
XRAY =(1<<2)
|
||||
HULK =(1<<3)
|
||||
CLUMSY =(1<<4)
|
||||
FAT =(1<<5)
|
||||
//FAT =(1<<5)
|
||||
HUSK =(1<<6)
|
||||
LASER =(1<<7)
|
||||
HEAL =(1<<8)
|
||||
@@ -195,7 +195,11 @@ var/const
|
||||
GAS_N2O = 1 << 4
|
||||
|
||||
|
||||
var/list/accessable_z_levels = list("1" = 10, "3" = 15, "4" = 60, "5" = 15) //This list contains the z-level numbers which can be accessed via space travel and the percentile chances to get there. (Exceptions: extended, sandbox and nuke) -Errorage
|
||||
var/list/accessable_z_levels = list("3" = 30, "4" = 70)
|
||||
//This list contains the z-level numbers which can be accessed via space travel and the percentile chances to get there.
|
||||
//(Exceptions: extended, sandbox and nuke) -Errorage
|
||||
//Was list("1" = 10, "3" = 15, "4" = 60, "5" = 15); changed it to list("3" = 30, "4" = 70).
|
||||
//Spacing should be a reliable method of getting rid of a body -- Urist.
|
||||
|
||||
#define IS_MODE_COMPILED(MODE) (ispath(text2path("/datum/game_mode/"+(MODE))))
|
||||
|
||||
@@ -221,3 +225,9 @@ var/list/global_mutations = list() // list of hidden mutation things
|
||||
#define DROWSY "drowsy"
|
||||
|
||||
var/static/list/scarySounds = list('thudswoosh.ogg','Taser.ogg','armbomb.ogg','hiss1.ogg','hiss2.ogg','hiss3.ogg','hiss4.ogg','hiss5.ogg','hiss6.ogg','Glassbr1.ogg','Glassbr2.ogg','Glassbr3.ogg','Welder.ogg','Welder2.ogg','airlock.ogg','clownstep1.ogg','clownstep2.ogg')
|
||||
|
||||
//Security levels
|
||||
#define SEC_LEVEL_GREEN 0
|
||||
#define SEC_LEVEL_BLUE 1
|
||||
#define SEC_LEVEL_RED 2
|
||||
#define SEC_LEVEL_DELTA 3
|
||||
|
||||
@@ -158,14 +158,14 @@
|
||||
src.now_pushing = 1
|
||||
if(ismob(AM))
|
||||
var/mob/tmob = AM
|
||||
if(istype(tmob, /mob/living/carbon/human) && tmob.mutations & FAT)
|
||||
/*if(istype(tmob, /mob/living/carbon/human) && tmob.mutations & FAT)
|
||||
if(prob(20))
|
||||
for(var/mob/M in viewers(src, null))
|
||||
if(M.client)
|
||||
M << M << "\red <B>[src] fails to push [tmob]'s fat ass out of the way.</B>"
|
||||
src.now_pushing = 0
|
||||
//src.unlock_medal("That's No Moon, That's A Gourmand!", 1)
|
||||
return
|
||||
return*/
|
||||
src.now_pushing = 0
|
||||
..()
|
||||
if (!istype(AM, /atom/movable))
|
||||
|
||||
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 100 KiB After Width: | Height: | Size: 100 KiB |
|
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 101 KiB |
|
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 41 KiB |
|
Before Width: | Height: | Size: 75 KiB After Width: | Height: | Size: 75 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 82 KiB |
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
@@ -227,18 +227,18 @@ menu "menu"
|
||||
group = "size"
|
||||
is-disabled = false
|
||||
saved-params = "is-checked"
|
||||
elem "icon32"
|
||||
name = "&32x32"
|
||||
command = ".winset \"mapwindow.map.icon-size=32\""
|
||||
elem "icon64"
|
||||
name = "&64x64 (2x)"
|
||||
command = ".winset \"mapwindow.map.icon-size=64\""
|
||||
category = "&Icons"
|
||||
is-checked = false
|
||||
can-check = true
|
||||
group = "size"
|
||||
is-disabled = false
|
||||
saved-params = "is-checked"
|
||||
elem "icon16"
|
||||
name = "&16x16"
|
||||
command = ".winset \"mapwindow.map.icon-size=16\""
|
||||
elem "icon32"
|
||||
name = "&32x32"
|
||||
command = ".winset \"mapwindow.map.icon-size=32\""
|
||||
category = "&Icons"
|
||||
is-checked = false
|
||||
can-check = true
|
||||
@@ -680,7 +680,7 @@ window "mainwindow"
|
||||
elem "mainvsplit"
|
||||
type = CHILD
|
||||
pos = 3,0
|
||||
size = 634x400
|
||||
size = 634x416
|
||||
anchor1 = 0,0
|
||||
anchor2 = 100,100
|
||||
font-family = ""
|
||||
@@ -1335,8 +1335,8 @@ window "vendingslot"
|
||||
anchor1 = none
|
||||
anchor2 = none
|
||||
font-family = ""
|
||||
font-size = 14
|
||||
font-style = ""
|
||||
font-size = 11
|
||||
font-style = "bold"
|
||||
text-color = #000000
|
||||
background-color = none
|
||||
is-visible = true
|
||||
@@ -1348,12 +1348,12 @@ window "vendingslot"
|
||||
right-click = false
|
||||
saved-params = ""
|
||||
on-size = ""
|
||||
text = "HoNK"
|
||||
text = "Cuban Pete's Double Bearded Wine LOL LINES"
|
||||
image = ""
|
||||
image-mode = center
|
||||
keep-aspect = false
|
||||
align = center
|
||||
text-wrap = false
|
||||
text-wrap = true
|
||||
|
||||
window "vendingwindow"
|
||||
elem "vendingwindow"
|
||||
|
||||
@@ -358,37 +358,112 @@
|
||||
"gT" = (/obj/structure/table/woodentable{tag = "icon-wood_1tileendtable (EAST)"; icon_state = "wood_1tileendtable"; dir = 4},/obj/item/weapon/hand_tele,/turf/simulated/floor,/area)
|
||||
"gU" = (/obj/structure/table/woodentable{tag = "icon-wood_1tilethick (EAST)"; icon_state = "wood_1tilethick"; dir = 4},/obj/item/weapon/camera_test,/turf/simulated/floor,/area)
|
||||
"gV" = (/obj/structure/table/woodentable{tag = "icon-wood_1tileendtable (WEST)"; icon_state = "wood_1tileendtable"; dir = 8},/obj/item/weapon/coin,/turf/simulated/floor,/area)
|
||||
"gW" = (/obj/machinery/computer/communications,/turf/simulated/floor,/area)
|
||||
"gX" = (/turf/simulated/floor{dir = 9; icon_state = "carpetside"},/area)
|
||||
"gY" = (/turf/simulated/floor{dir = 1; icon_state = "carpetside"},/area)
|
||||
"gZ" = (/turf/simulated/floor{dir = 5; icon_state = "carpetside"},/area)
|
||||
"ha" = (/obj/machinery/computer/crew,/turf/simulated/floor,/area)
|
||||
"hb" = (/turf/simulated/floor{dir = 8; icon_state = "carpetside"},/area)
|
||||
"hc" = (/turf/simulated/floor{icon_state = "carpet"},/area)
|
||||
"hd" = (/turf/simulated/floor{dir = 4; icon_state = "carpetside"},/area)
|
||||
"he" = (/obj/structure/table{tag = "icon-tabledir (SOUTHEAST)"; icon_state = "tabledir"; dir = 6},/turf/simulated/floor,/area)
|
||||
"hf" = (/obj/structure/table{tag = "icon-tabledir (SOUTHWEST)"; icon_state = "tabledir"; dir = 10},/turf/simulated/floor,/area)
|
||||
"hg" = (/obj/machinery/door/airlock/command{name = "Captain's Quarters"; req_access = null; req_access_txt = "20"},/turf/simulated/floor,/area)
|
||||
"hh" = (/obj/machinery/door{icon = 'icons/obj/doors/doormorgue.dmi'; name = "Crew Quarters"; req_access_txt = "0"},/turf/simulated/floor,/area)
|
||||
"hi" = (/turf/simulated/floor{dir = 10; icon_state = "carpetside"},/area)
|
||||
"hj" = (/turf/simulated/floor{icon_state = "carpetside"},/area)
|
||||
"hk" = (/turf/simulated/floor{dir = 6; icon_state = "carpetside"},/area)
|
||||
"hl" = (/obj/machinery/computer/shuttle,/turf/simulated/floor,/area)
|
||||
"hm" = (/obj/structure/table{dir = 5; icon_state = "tabledir"},/turf/simulated/floor,/area)
|
||||
"hn" = (/obj/structure/table{tag = "icon-tabledir (NORTH)"; icon_state = "tabledir"; dir = 1},/turf/simulated/floor,/area)
|
||||
"ho" = (/obj/structure/table{icon_state = "tabledir"; dir = 9},/turf/simulated/floor,/area)
|
||||
"hp" = (/obj/item/weapon/mop,/turf/simulated/floor,/area)
|
||||
"hq" = (/obj/machinery/computer/station_alert,/turf/simulated/floor,/area)
|
||||
"hr" = (/obj/structure/stool/chair{dir = 1},/turf/simulated/floor,/area)
|
||||
"hs" = (/obj/machinery/computer/supplycomp,/turf/simulated/floor,/area)
|
||||
"ht" = (/obj/structure/closet/crate/internals,/turf/simulated/floor,/area)
|
||||
"hu" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area)
|
||||
"hv" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area)
|
||||
"hw" = (/turf/space,/area/start)
|
||||
"hx" = (/turf/unsimulated/wall,/area/start)
|
||||
"hy" = (/turf/unsimulated/floor,/area/start)
|
||||
"hz" = (/obj/effect/landmark/start,/turf/unsimulated/floor,/area/start)
|
||||
"hA" = (/turf/unsimulated/wall{icon = 'icons/misc/fullscreen.dmi'; icon_state = "titleold"; name = "Space Station 13"},/area/start)
|
||||
"gW" = (/turf/simulated/wall,/area/crew_quarters/cafeteria)
|
||||
"gX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Cafeteria"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"gY" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Cafeteria"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"gZ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"ha" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"hb" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"hc" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Cafeteria"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"hd" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Cafeteria"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"he" = (/obj/machinery/computer/communications,/turf/simulated/floor,/area)
|
||||
"hf" = (/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"hg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"hh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"hi" = (/obj/structure/stool/chair{dir = 4},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"hj" = (/obj/structure/table,/obj/machinery/light/spot{dir = 1},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"hk" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = -8; pixel_y = 2},/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -2},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"hl" = (/obj/structure/stool/chair{dir = 8},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"hm" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = 8; pixel_y = 4},/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 2; pixel_y = 0},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"hn" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"ho" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; icon_state = "out"; on = 1},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"hp" = (/turf/simulated/floor{dir = 9; icon_state = "carpetside"},/area)
|
||||
"hq" = (/turf/simulated/floor{dir = 1; icon_state = "carpetside"},/area)
|
||||
"hr" = (/turf/simulated/floor{dir = 5; icon_state = "carpetside"},/area)
|
||||
"hs" = (/obj/machinery/computer/crew,/turf/simulated/floor,/area)
|
||||
"ht" = (/obj/structure/table,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"hu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"hv" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"hw" = (/turf/simulated/floor{dir = 8; icon_state = "carpetside"},/area)
|
||||
"hx" = (/turf/simulated/floor{icon_state = "carpet"},/area)
|
||||
"hy" = (/turf/simulated/floor{dir = 4; icon_state = "carpetside"},/area)
|
||||
"hz" = (/obj/machinery/light/spot{dir = 4; layer = 2.8},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"hA" = (/obj/structure/table{tag = "icon-tabledir (SOUTHEAST)"; icon_state = "tabledir"; dir = 6},/turf/simulated/floor,/area)
|
||||
"hB" = (/obj/structure/table{tag = "icon-tabledir (SOUTHWEST)"; icon_state = "tabledir"; dir = 10},/turf/simulated/floor,/area)
|
||||
"hC" = (/obj/machinery/door/airlock/command{name = "Captain's Quarters"; req_access = null; req_access_txt = "20"},/turf/simulated/floor,/area)
|
||||
"hD" = (/obj/machinery/light/spot{dir = 8; layer = 2.8},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"hE" = (/obj/machinery/camera{c_tag = "Cafeteria Starboard"; dir = 8},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"hF" = (/obj/machinery/door{icon = 'icons/obj/doors/doormorgue.dmi'; name = "Crew Quarters"; req_access_txt = "0"},/turf/simulated/floor,/area)
|
||||
"hG" = (/turf/simulated/floor{dir = 10; icon_state = "carpetside"},/area)
|
||||
"hH" = (/turf/simulated/floor{icon_state = "carpetside"},/area)
|
||||
"hI" = (/turf/simulated/floor{dir = 6; icon_state = "carpetside"},/area)
|
||||
"hJ" = (/obj/machinery/computer/shuttle,/turf/simulated/floor,/area)
|
||||
"hK" = (/obj/structure/table{dir = 5; icon_state = "tabledir"},/turf/simulated/floor,/area)
|
||||
"hL" = (/obj/structure/table{tag = "icon-tabledir (NORTH)"; icon_state = "tabledir"; dir = 1},/turf/simulated/floor,/area)
|
||||
"hM" = (/obj/structure/table{icon_state = "tabledir"; dir = 9},/turf/simulated/floor,/area)
|
||||
"hN" = (/obj/item/weapon/mop,/turf/simulated/floor,/area)
|
||||
"hO" = (/obj/machinery/camera{c_tag = "Cafeteria Port"; dir = 4},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"hP" = (/obj/machinery/computer/station_alert,/turf/simulated/floor,/area)
|
||||
"hQ" = (/obj/structure/stool/chair{dir = 1},/turf/simulated/floor,/area)
|
||||
"hR" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "bar"; name = "Bar Shutters"; opacity = 0},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
|
||||
"hS" = (/turf/simulated/wall,/area/crew_quarters/kitchen)
|
||||
"hT" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "kitchen"; name = "Kitchen Shutters"; opacity = 0},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
|
||||
"hU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/crew_quarters/kitchen)
|
||||
"hV" = (/obj/machinery/door/airlock{name = "Kitchen"; req_access_txt = "28;25"},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
|
||||
"hW" = (/obj/machinery/computer/supplycomp,/turf/simulated/floor,/area)
|
||||
"hX" = (/obj/structure/stool/chair,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"hY" = (/obj/structure/stool/chair,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"hZ" = (/obj/structure/stool/chair,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"ia" = (/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
|
||||
"ib" = (/obj/structure/table/reinforced,/obj/item/weapon/book/manual/barman_recipes{pixel_x = 4; pixel_y = 8},/obj/item/weapon/reagent_containers/food/drinks/shaker,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
|
||||
"ic" = (/obj/structure/window/reinforced/tinted/frosted{dir = 8},/obj/machinery/sink/kitchen2{pixel_y = 28},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
|
||||
"id" = (/obj/machinery/door_control{id = "kitchen"; name = "Kitchen Shutters"; pixel_x = 0; pixel_y = 24},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; icon_state = "out"; on = 1},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
|
||||
"ie" = (/obj/machinery/light_switch{dir = 1; otherarea = "cafeteria"; pixel_x = 24; pixel_y = -6},/obj/machinery/light_switch{dir = 1; pixel_x = 24; pixel_y = 6},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
|
||||
"if" = (/obj/structure/table,/obj/machinery/light/spot{dir = 8; layer = 2.8},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"ig" = (/obj/structure/table,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"ih" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"ii" = (/obj/machinery/vending/boozeomat{pixel_x = 0},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
|
||||
"ij" = (/obj/structure/window/reinforced/tinted/frosted{dir = 8},/obj/structure/table,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
|
||||
"ik" = (/obj/structure/table,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
|
||||
"il" = (/obj/effect/landmark/start{name = "Chef"},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
|
||||
"im" = (/obj/machinery/requests_console{department = "Kitchen"; departmentType = 2; name = "Kitchen RC"; pixel_x = 30; pixel_y = 0},/obj/structure/table,/obj/machinery/microwave,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
|
||||
"in" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = 8; pixel_y = 12},/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 2; pixel_y = 8},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"io" = (/obj/effect/landmark/start{name = "Bartender"},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
|
||||
"ip" = (/obj/structure/table/reinforced,/obj/item/weapon/gun/projectile/shotgun,/obj/item/clothing/head/that,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
|
||||
"iq" = (/obj/structure/window/reinforced/tinted/frosted{dir = 8},/obj/structure/reagent_dispensers/beerkeg,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
|
||||
"ir" = (/obj/machinery/light/spot{dir = 4; layer = 2.8},/obj/structure/table,/obj/machinery/microwave,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
|
||||
"is" = (/obj/structure/stool/chair{dir = 1},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"it" = (/obj/structure/stool/chair{dir = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"iu" = (/obj/structure/stool/chair{dir = 1},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"iv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"iw" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "bar"; name = "Bar Shutters"; opacity = 0},/obj/item/weapon/zippo,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
|
||||
"ix" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
|
||||
"iy" = (/obj/structure/closet/gmcloset,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
|
||||
"iz" = (/obj/structure/window/reinforced/tinted/frosted{dir = 8},/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
|
||||
"iA" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "on"; on = 1},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
|
||||
"iB" = (/obj/machinery/smartfridge,/turf/simulated/wall,/area)
|
||||
"iC" = (/obj/structure/closet/crate/internals,/turf/simulated/floor,/area)
|
||||
"iD" = (/obj/machinery/power/apc{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"iE" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"iF" = (/obj/machinery/light/spot,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; icon_state = "on"; on = 1},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"iG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria)
|
||||
"iH" = (/obj/structure/table/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "bar"; name = "Bar Shutters"; opacity = 0},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
|
||||
"iI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/obj/machinery/requests_console{department = "Bar"; departmentType = 2; name = "Bar RC"; pixel_x = -1; pixel_y = -30},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
|
||||
"iJ" = (/obj/machinery/light/spot,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/obj/machinery/door_control{id = "bar"; name = "Bar Shutters"; pixel_x = 0; pixel_y = -24},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
|
||||
"iK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/obj/machinery/door/window/westleft{name = "Bar"; req_access_txt = "25"},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
|
||||
"iL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
|
||||
"iM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/obj/machinery/camera{c_tag = "Kitchen"; dir = 1},/obj/structure/table,/obj/machinery/processor,/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
|
||||
"iN" = (/obj/machinery/light/spot,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/obj/structure/table,/obj/machinery/blender{pixel_y = 0},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
|
||||
"iO" = (/obj/machinery/power/apc,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/table,/obj/machinery/juicer,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
|
||||
"iP" = (/obj/machinery/light_switch{dir = 1; pixel_x = 6; pixel_y = -24},/obj/machinery/light_switch{dir = 1; otherarea = "cafeteria"; pixel_x = -6; pixel_y = -24},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
|
||||
"iQ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area)
|
||||
"iR" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area)
|
||||
"iS" = (/turf/simulated/wall/r_wall,/area/crew_quarters/cafeteria)
|
||||
"iT" = (/turf/simulated/wall/r_wall,/area/crew_quarters/kitchen)
|
||||
"iU" = (/turf/unsimulated/wall,/area/start)
|
||||
"iV" = (/turf/space,/area/start)
|
||||
"iW" = (/obj/effect/landmark/start,/turf/space,/area/start)
|
||||
"iX" = (/turf/unsimulated/wall{icon = 'icons/misc/fullscreen.dmi'; icon_state = "titleold"; name = "Baystation 13"},/area/start)
|
||||
|
||||
(1,1,1) = {"
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
@@ -514,19 +589,19 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabgQcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCgqcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCarcCcCcCcCcCcCarcCcCcCcCarbZabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCgqcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCarcCcCcCcCcCcCarcCcCcCcCarbZabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabarargqararararararararararararararcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCarcCcCcCcCcCcCarcCcCcCcCarbZabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagRcCcCcCcCcCcCcCcCcCcCcCargSgTgUgVarararararararararararararararararararararararargPararcKararararararararararararararararararararararararararararbZabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagBgWcCcCcCcCcCcCcCcCcCcCarcCcCcCcCarcCcCcCcCcCcCcCcCcCcCcCcCcCcCarcCcCcCcCcCcCcCarbZbZarcCargFgFgFargFgFgFargFgFgFarcCcCcCcCargXgYgYgZarcCcCcCcCarbZabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagBhacCcCcCcCcCcCcCcCcCcCarcCcCcCcCarcCcCcCcCcCcCcCcCcCcCcCcCcCcCarcCcCcCcCcCcCcCarbZbZarcCarcCcCcCarcCcCcCarcCcCcCarcCcCcCcCarhbhchchdarcCcCcCcCarbZabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagBgtcCcCgxgxgxgxcCcCcCcCarcCcCcCcCarcCcCcCcCcCcCcCcCcCcCcCcCcCcCarcCcCcCcCcCcCcCarbZbZarcCarcCcCcCarcCcCcCarcCcCcCarcCcCcCcCarhbhchchdarcCcCcCcCarbZabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagBgpcCcChegkgkhfgAcCcCcCararhgarararcCcCcCcCcCcCcCcCcCcCcCcCcCcCarcCcCcCcCcCcCcCarbZbZarcCararhharararhharararhharararcCcCararhihjhjhkarcCcCcCcCarbZabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagBhlcCgyhmhnhnhocCcCcCcCcCcCcCcChparcCcCcCcCcCcCcCcCcCcCcCcCcCcCarcCcCcCcCcCcCcCarbZbZarcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCararcCcCararcCcCcCcCarbZabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagBhqcCcChrhrhrhrcCcCcCcCcCcCcCcCcCarcCcCcCcCcCararararararararararcCcCcCcCcCcCcCarbZbZarcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCarcCcCcCcCarbZabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagBhscCcCcCcCcCcCcCcCcCcCcCcCcCcCcCarcCcCcCcCcCcCcCcCcCcCcCcCcCcCarcCcCcCcCcCcCcCarbZbZarcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCarcCcCcCcCarbZabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagBcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCarcCcCcCcCcCcCcCcCcCcCcCcCcCcCarcCcCcCcCcCcCcCarbZbZarcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCarcCcCcCcCarbZabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagBcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCarcCcCcCcCcCcCcCcCcCcCcCcCcCcCarcCcCcCcCcCcCcCarbZbZarcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCarcCcCcCcCarbZabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagBcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCarcCcCcCcCcCcCcCcCcCcCcCcCcCcCarcCcCcCcCcCcCcCarbZbZararararararararararararararbZarararararararararararararararbZabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagBcCcCcCcCcCcCcCcCcCcCcCcCcCcCcChtarcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCarbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahuaOaOaOaOaOaOaOaOaOaOaOaOaOaOaOhvababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagRcCcCcCcCcCcCcCcCcCcCcCargSgTgUgVargWgXgYgZhahahahahahahbhchdgWararararararararargPararcKararararararararararararararararararararararararararararbZabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagBhecCcCcCcCcCcCcCcCcCcCarcCcCcCcCarhfhghhhihjhkhlhihmhjhlhfhnhoarcCcCcCcCcCcCcCarbZbZarcCargFgFgFargFgFgFargFgFgFarcCcCcCcCarhphqhqhrarcCcCcCcCarbZabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagBhscCcCcCcCcCcCcCcCcCcCarcCcCcCcCarhfhghhhihththlhihththlhfhuhvarcCcCcCcCcCcCcCarbZbZarcCarcCcCcCarcCcCcCarcCcCcCarcCcCcCcCarhwhxhxhyarcCcCcCcCarbZabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagBgtcCcCgxgxgxgxcCcCcCcCarcCcCcCcCarhfhghhhihththlhihththlhfhuhzarcCcCcCcCcCcCcCarbZbZarcCarcCcCcCarcCcCcCarcCcCcCarcCcCcCcCarhwhxhxhyarcCcCcCcCarbZabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagBgpcCcChAgkgkhBgAcCcCcCararhCarararhDhghhhfhfhfhfhfhfhfhfhfhuhEarcCcCcCcCcCcCcCarbZbZarcCararhFarararhFarararhFarararcCcCararhGhHhHhIarcCcCcCcCarbZabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagBhJcCgyhKhLhLhMcCcCcCcCcCcCcCcChNarhOhghhhfhfhfhfhfhfhfhfhfhuhfarcCcCcCcCcCcCcCarbZbZarcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCararcCcCararcCcCcCcCarbZabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagBhPcCcChQhQhQhQcCcCcCcCcCcCcCcCcCarhfhghhhfhfhRhRhRhShThThThUhVarcCcCcCcCcCcCcCarbZbZarcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCarcCcCcCcCarbZabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagBhWcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCarhXhYhZhfhfhRiaibiciaiaiaidiearcCcCcCcCcCcCcCarbZbZarcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCarcCcCcCcCarbZabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagBcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCarifigihhfhfhRiaiiijiaikikilimarcCcCcCcCcCcCcCarbZbZarcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCarcCcCcCcCarbZabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagBcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCarinigihhfhfhRioipiqiaikikiairarcCcCcCcCcCcCcCarbZbZarcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCarcCcCcCcCarbZabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagBcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCarisitiuiviviwixiyiziAiaiaiaiaiBcCcCcCcCcCcCcCarbZbZararararararararararararararbZarararararararararararararararbZabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagBcCcCcCcCcCcCcCcCcCcCcCcCcCcCcCiCariDiEiFiGiGiHiIiJiKiLiMiNiOiPcCcCcCcCcCcCcCcCarbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiQaOaOaOaOaOaOaOaOaOaOaOaOaOaOaOiRabiSiSiSiSiSiTiTiTiTiTiTiTiTiTabababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
@@ -594,21 +669,21 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
"}
|
||||
|
||||
(1,1,2) = {"
|
||||
hwhwhwhwhwhwhwhwhwhwhwhwhwhwhwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
hwhwhwhwhwhwhwhwhwhwhwhwhwhwhwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
hwhwhwhwhwhwhwhwhwhwhwhwhwhwhwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
hwhwhwhwhwhwhwhwhwhwhwhwhwhwhwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
hwhwhwhwhwhwhwhwhwhwhwhwhwhwhwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
hwhwhwhwhwhwhwhwhwhwhwhwhwhwhwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
hwhwhwhwhwhwhwhwhwhwhwhwhwhwhwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
hxhwhwhwhwhxhyhzhwhwhwhwhwhwhwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
hxhwhwhwhxhxhyhyhwhwhwhwhwhwhwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
hxhwhwhwhxhxhxhxhwhwhwhwhwhwhwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
hxhwhwhwhxhwhwhwhwhwhwhwhwhwhwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
hxhwhwhwhxhwhwhwhwhwhwhwhwhwhwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
hxhwhwhwhxhwhwhwhwhwhwhwhwhwhwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
hxhwhwhwhxhwhwhwhwhwhwhwhwhwhwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
hAhxhxhxhxhxhxhxhwhwhwhwhwhwhwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
iUiUiUiUiUiUiUiUiUiUiUiUiUiUiUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
iUiViViViViViViViViViViViViViUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
iUiViViUiUiUiViViViUiUiViViViUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
iUiViViUiViViUiViUiViViViViViUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
iUiViViUiUiUiViViViUiUiViViViUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
iUiViViUiViViUiViViViViUiViViUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
iUiViViUiUiUiViViViUiUiViViViUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
iUiViViViViViViWiViViViViViViUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
iUiViViViUiUiViViViUiUiViViViUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
iUiViViUiViUiViViViViViUiViViUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
iUiViViViViUiViViViViUiViViViUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
iUiViViViViUiViViViUiViViViViUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
iUiViViUiUiUiUiViUiUiUiUiViViUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
iUiViViViViViViViViViViViViViUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
iXiUiUiUiUiUiUiUiUiUiUiUiUiUiUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
|
||||