Merge remote-tracking branch 'refs/remotes/Citadel-Station-13/master'

This commit is contained in:
TalkingCactus
2016-08-10 13:58:41 -04:00
48 changed files with 599 additions and 167 deletions
+19 -18
View File
@@ -23,23 +23,24 @@
#define FRIDAY_13TH "Friday the 13th"
//Human Overlays Indexes/////////
#define MUTATIONS_LAYER 26 //mutations. Tk headglows, cold resistance glow, etc
#define BODY_BEHIND_LAYER 25 //certain mutantrace features (tail when looking south) that must appear behind the body parts
#define BODYPARTS_LAYER 24 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag
#define BODY_ADJ_LAYER 23 //certain mutantrace features (snout, body markings) that must appear above the body parts
#define BODY_LAYER 22 //underwear, undershirts, socks, eyes, lips(makeup)
#define FRONT_MUTATIONS_LAYER 21 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes)
#define DAMAGE_LAYER 20 //damage indicators (cuts and burns)
#define UNIFORM_LAYER 19
#define ID_LAYER 18
#define SHOES_LAYER 17
#define GLOVES_LAYER 16
#define EARS_LAYER 15
#define SUIT_LAYER 14
#define GLASSES_LAYER 13
#define BELT_LAYER 12 //Possible make this an overlay of somethign required to wear a belt?
#define SUIT_STORE_LAYER 11
#define BACK_LAYER 10
#define MUTATIONS_LAYER 27 //mutations. Tk headglows, cold resistance glow, etc
#define BODY_BEHIND_LAYER 26 //certain mutantrace features (tail when looking south) that must appear behind the body parts
#define BODYPARTS_LAYER 25 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag
#define BODY_ADJ_LAYER 24 //certain mutantrace features (snout, body markings) that must appear above the body parts
#define BODY_LAYER 23 //underwear, undershirts, socks, eyes, lips(makeup)
#define FRONT_MUTATIONS_LAYER 22 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes)
#define DAMAGE_LAYER 21 //damage indicators (cuts and burns)
#define UNIFORM_LAYER 20
#define ID_LAYER 19
#define SHOES_LAYER 18
#define GLOVES_LAYER 17
#define EARS_LAYER 16
#define SUIT_LAYER 15
#define GLASSES_LAYER 14
#define BELT_LAYER 13 //Possible make this an overlay of somethign required to wear a belt?
#define SUIT_STORE_LAYER 12
#define BACK_LAYER 11
#define TAIL_LAYER 10
#define HAIR_LAYER 9 //TODO: make part of head layer?
#define FACEMASK_LAYER 8
#define HEAD_LAYER 7
@@ -49,7 +50,7 @@
#define R_HAND_LAYER 3 //Having the two hands seperate seems rather silly, merge them together? It'll allow for code to be reused on mobs with arbitarily many hands
#define BODY_FRONT_LAYER 2
#define FIRE_LAYER 1 //If you're on fire
#define TOTAL_LAYERS 26 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_;
#define TOTAL_LAYERS 27 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_;
//Human Overlay Index Shortcuts for alternate_worn_layer, layers
//Because I *KNOW* somebody will think layer+1 means "above"
+150
View File
@@ -0,0 +1,150 @@
// Overhauled vore system
/* #define DM_HOLD "Hold"
#define DM_DIGEST "Digest"
#define DM_HEAL "Heal"
#define DM_ABSORB "Absorb"
#define DM_DIGESTF "Fast Digest"
#define VORE_STRUGGLE_EMOTE_CHANCE 40
var/global/list/player_sizes_list = list("Macro" = RESIZE_HUGE, "Big" = RESIZE_BIG, "Normal" = RESIZE_NORMAL, "Small" = RESIZE_SMALL, "Tiny" = RESIZE_TINY)
var/global/list/digestion_sounds = list(
'sound/vore/digest1.ogg',
'sound/vore/digest2.ogg',
'sound/vore/digest3.ogg',
'sound/vore/digest4.ogg',
'sound/vore/digest5.ogg',
'sound/vore/digest6.ogg',
'sound/vore/digest7.ogg',
'sound/vore/digest8.ogg',
'sound/vore/digest9.ogg',
'sound/vore/digest10.ogg',
'sound/vore/digest11.ogg',
'sound/vore/digest12.ogg')
var/global/list/death_sounds = list(
'sound/vore/death1.ogg',
'sound/vore/death2.ogg',
'sound/vore/death3.ogg',
'sound/vore/death4.ogg',
'sound/vore/death5.ogg',
'sound/vore/death6.ogg',
'sound/vore/death7.ogg',
'sound/vore/death8.ogg',
'sound/vore/death9.ogg',
'sound/vore/death10.ogg')
*/
//Species listing
#define iscanine(A) (is_species(A, /datum/species/canine))
#define isfeline(A) (is_species(A, /datum/species/feline))
#define isavian(A) (is_species(A, /datum/species/avian))
#define isrodent(A) (is_species(A, /datum/species/rodent))
#define isherbivorous(A) (is_species(A, /datum/species/herbivorous))
#define isexotic(A) (is_species(A, /datum/species/exotic))
/*
var/list/canine_species = list (
anubis,
corgi,
coyote,
dalmatian,
fennec,
fox,
husky,
wolf,
sheperd,
lab,
otusian
)
var/list/feline_species = list (
panther,
tajaran,
smilodon
)
var/list/avian_species = list (
corvid,
hawk
)
var/list/lizard_species = list (
crocodile,
drake,
gria,
lizard,
naga,
turtle,
shark
)
var/list/rodent_species = list (
aramdillo,
beaver,
jackalope,
leporid,
murid,
otter,
porcupine,
possum,
raccoon,
roorat,
skunk,
squirrel
)
var/list/herbivorous_species = list (
boar,
capra,
cow,
deer,
hippo,
kangaroo,
pig
)
var/list/exotic_species = list (
alien,
carp,
drider,
glowfen,
jelly,
moth,
plant,
seaslug,
slime,
)
var/list/taur = list (
panther,
tajaran,
horse,
lab,
sheperd,
fox,
cow,
husky,
naga,
wolf,
dirder,
drake,
otie
)
//Mutant Human bits
var/global/list/tails_list_human = list()
var/global/list/animated_tails_list_human = list()
// var/global/list/ears_list = list()
var/global/list/wings_list = list()
/proc/log_debug(text)
if (config.log_debug)
diary << "\[[time_stamp()]]DEBUG: [text][log_end]"
for(var/client/C in admins)
if(C.prefs.toggles & CHAT_DEBUGLOGS)
C << "DEBUG: [text]" */
+141 -73
View File
@@ -17,38 +17,42 @@ datum
adjective="spooky"
restricted=2
ailurus
name="red panda"
//name="red panda"
id="ailurus"
generic="ailurus"
adjective="cuddly"
tail=1
restricted=2
alien
name="alien"
//name="alien"
id="alien"
say_mod="hisses"
generic="xeno"
adjective="phallic"
tail=1
/* armadillo
name="armadillo"
restricted=2
armadillo
//name="armadillo"
id="armadillo"
say_mod = "drawls"
generic = "cingulate" // Superorder Xenarthra, Order Cingulata
adjective = "protected"
tail=1
attack_verb = "noms"
attack_sound = 'sound/weapons/bite.ogg' */
attack_sound = 'sound/weapons/bite.ogg'
attack_verb = "nom" // apparently attack verbs are just the verb, no S. shrug
attack_sound = 'sound/weapons/bite.ogg'
restricted=2
anubis
name="anubis"
//name="anubis"
id="anubis"
say_mod = "intones"
generic="jackal" // mmm...jackal or canine? i'll leave it for now
adjective="cold"
attack_verb = "claw"
restricted=2
beaver
name="beaver"
//name="beaver"
id="beaver"
say_mod = "chitters"
generic="rodent"
@@ -56,8 +60,9 @@ datum
tail=1
attack_verb = "tailslap"
attack_sound = 'sound/items/dodgeball.ogg'
restricted=2
beholder
name="beholder"
//name="beholder"
id="beholder"
say_mod = "jibbers"
generic="body part"
@@ -65,19 +70,22 @@ datum
tail=0
attack_verb = "visually assault"
attack_sound = 'sound/magic/MM_Hit.ogg' // MAGIC MISSILE! MAGIC MISSILE!
restricted=2
boar
name="boar"
//name="boar"
id="boar"
generic="pig"
adjective="wild and curly"
tail=1
restricted=2
capra
name="caprine"
//name="caprine"
id="capra"
generic="goat"
adjective="irritable"
restricted=2
carp
name="carp"
//name="carp"
id="carp"
say_mod = "glubs"
generic = "abomination"
@@ -86,51 +94,58 @@ datum
eyes = "carpeyes"
attack_verb = "nom"
attack_sound = 'sound/weapons/bite.ogg'
restricted=2
corgi
name="corgi"
//name="corgi"
id="corgi"
say_mod ="yaps"
generic="canine"
adjective="corgalicious"
tail=1
restricted=2
corvid
name="corvid"
//name="corvid"
id="corvid"
say_mod = "caws"
generic="bird"
adjective="mask-piercing"
tail=1
attack_verb = "whack"
restricted=2
cow
name="cow"
//name="cow"
id="cow"
say_mod = "moos"
generic="bovine"
adjective="wise"
tail=1
taur=1
restricted=2
coyote
name="coyote"
//name="coyote"
id="coyote"
say_mod = "yips"
generic="canine"
adjective="mangy"
tail=1
restricted=2
crocodile
name="crocodile"
//name="crocodile"
id="croc"
generic="water reptile"
adjective="scaled"
tail=1
restricted=2
dalmatian
name="dalmatian"
//name="dalmatian"
id="dalmatian"
say_mod = "ruffs"
generic="canine"
adjective="spotty"
tail=1
restricted=2
deer
name="deer"
//name="deer"
id="deer"
say_mod = "grunts"
generic = "cervid"
@@ -138,28 +153,32 @@ datum
tail=1 // that's better
attack_verb = "gore"
attack_sound = 'sound/weapons/bladeslice.ogg'
restricted=2
drake
name="drake"
//name="drake"
id="drake"
say_mod = "growls"
generic = "reptile"
adjective = "frilly"
tail=1 // i'd use lizard tails but drakes have frills included on the icons
taur=1
restricted=2
drider
name="drider"
//name="drider"
id="drider"
generic="humanoid"
adjective="big and hairy"
taur=1
tail=1
eyes="spidereyes"
restricted=2
fennec
name="fennec"
//name="fennec"
id="fennec"
generic="vulpine"
adjective="foxy"
tail=1
restricted=2
fox
name="fox"
id="fox"
@@ -168,39 +187,44 @@ datum
tail=1
taur=1
glowfen
name="glowfen"
//name="glowfen"
id="glowfen"
generic="vulpine"
adjective="glowing"
tail=1
restricted=2
gremlin
name="gremlin"
//name="gremlin"
id="gremlin"
generic="creature"
tail=1
attack_verb = "thwack"
restricted=2
gria
name="gria"
//name="gria"
id="gria"
generic="reptile"
adjective="scaled"
tail=1
attack_verb = "claw"
attack_sound = 'sound/weapons/bladeslice.ogg'
restricted=2
hawk
name="hawk"
//name="hawk"
id="hawk"
say_mod = "chirps"
generic="bird"
adjective="feathery"
tail=1
attack_verb = "whack"
restricted=2
hippo
name="hippo"
//name="hippo"
id="hippo"
generic="hippo"
adjective="buoyant"
tail=1
restricted=2
husky
name="husky"
id="husky"
@@ -210,39 +234,43 @@ datum
tail=1
taur=1
jackalope
name="jackalope"
//name="jackalope"
id="jackalope"
generic="leporid"
adjective="hoppy and horny" //hue
attack_verb = "kick"
tail=1
restricted=2
jelly
name="jelly"
//name="jelly"
id="jelly"
generic="jelly"
adjective="jelly"
kangaroo
name="kangaroo"
//name="kangaroo"
id="kangaroo"
generic="marsupial"
adjective="bouncy"
tail=1
attack_verb = "kick"
restricted=2
lab
name="lab"
//name="lab"
id="lab"
say_mod = "yaps"
generic="canine"
adjective="sleek"
tail=1
taur=1
restricted=2
leporid
name="leporid"
//name="leporid"
id="leporid"
generic="leporid"
adjective="hoppy"
tail=1
attack_verb = "kick"
restricted=2
lizard
name="lizard"
id="lizard"
@@ -251,49 +279,55 @@ datum
taur="naga"
tail=1
murid // i have no idea what this is
name="murid"
//name="murid"
id="murid"
say_mod = "squeaks"
generic="rodent"
adjective="squeaky"
tail=1
restricted=2
moth
name="moth"
//name="moth"
id="moth"
generic="insect"
adjective="fluttery"
eyes="motheyes" // this SHOULD work after i've updated human_face.dmi -- iska
restricted=2
mushman
name="mushroom"
//name="mushroom"
id="fung"
generic="fungi"
adjective="sporey"
say_mod = "mushes"
tail=0
restricted=2
naga
name="naga"
//name="naga"
id="naga"
generic="humanoid"
adjective="noodly"
taur=1
tail=1
restricted=2
otter
name="otter"
//name="otter"
id="otter"
say_mod = "squeaks"
generic="mustelid"
adjective="slim"
tail=1
restricted=2
otusian
name="otusian"
//name="otusian"
id="otie"
say_mod ="growls"
generic="feline-canine"
adjective="chunky" // ??? are otusians fat????
tail=1
taur=1
restricted=2
panther
name="panther"
//name="panther"
id="panther"
generic="feline"
adjective="furry"
@@ -301,19 +335,22 @@ datum
taur=1
attack_verb = "claw"
attack_sound = 'sound/weapons/bladeslice.ogg'
restricted=2
pig
name="pig"
//name="pig"
id="pig"
generic="pig"
adjective="curly"
tail=1
restricted=2
plant
generic="plant"
adjective="leafy"
restricted=2
plant/pod
restricted=1
porcupine
name="porcupine"
//name="porcupine"
id="porcupine"
say_mod = "snuffles"
generic = "rodent"
@@ -321,8 +358,9 @@ datum
tail=1
attack_verb = "quill-whack"
attack_sound = 'sound/weapons/slash.ogg'
restricted=2
possum
name="possum"
//name="possum"
id="possum"
say_mod = "chitters"
generic = "marsupial"
@@ -330,67 +368,77 @@ datum
tail=1
attack_verb = "nom"
attack_sound = 'sound/weapons/bite.ogg'
restricted=2
raccoon
name="raccoon"
//name="raccoon"
id="raccoon"
say_mod="churrs"
generic="procyonid" // Family Procyonidae
adjective="stripy"
tail=1
restricted=2
roorat
name="kangaroo rat"
//name="kangaroo rat"
id="roorat"
generic="Heteromyidae" // ...marsupial rat? Have you tried a google search? They're a real thing.
adjective="bouncy"
tail=1
attack_verb = "kick"
restricted=2
saltman
name="salt"
//name="salt"
id="salt"
generic="NaCl"
adjective="salty"
restricted=2
restricted=2
seaslug
name="sea slug"
//name="sea slug"
id="seaslug"
generic="slug"
adjective="salty"
tail=1
attack_verb = "smack"
restricted=2
shark
name="shark"
//name="shark"
id="shark"
generic="selachimorph" // Superorder Selachimorpha
adjective="fishy"
tail=1
restricted=2
shepherd
name="shepherd"
//name="shepherd"
id="shepherd"
say_mod = "barks"
generic="canine"
adjective="happy"
tail=1
taur=1
restricted=2
skunk
name="skunk"
//name="skunk"
id="skunk"
say_mod = "snuffles"
generic="mephit"
adjective="stinky"
tail=1
restricted=2
slime
name="slime"
//name="slime"
id="slime"
generic="slime"
adjective="slimy"
restricted=2
smilodon
name="smilodon"
//name="smilodon"
id="smilodon"
generic="smilodon"
adjective="toothy"
tail=1
restricted=2
snarby
name="snarby"
//name="snarby"
id="snarby"
generic="beast"
adjective="snippy and snarly"
@@ -398,12 +446,14 @@ datum
attack_verb = "chomp"
attack_sound = 'sound/weapons/bite.ogg'
eyes = "snarbyeyes"
restricted=2
squirrel
name="squirrel"
//name="squirrel"
id="squirrel"
generic="rodent"
adjective="nutty"
tail=1
restricted=2
tajaran
name="tajaran"
id="tajaran"
@@ -413,14 +463,21 @@ datum
taur=1
attack_verb = "claw"
attack_sound = 'sound/weapons/bladeslice.ogg'
turtle
name="turtle"
toucan
name="toucan"
id="toucan"
generic="bird"
adjective="colorful"
tail=1
attack_verb = "pecks"
/* turtle
//name="turtle"
id="turtle"
generic="reptile"
adjective="hard-shelled"
tail=1
ursine
name="bear"
//name="bear"
id="ursine"
generic="ursine"
adjective="husky"
@@ -429,7 +486,7 @@ datum
attack_verb = "claw"
attack_sound = 'sound/weapons/bladeslice.ogg'
wolf
name="wolf"
//name="wolf"
id="wolf"
say_mod = "howls"
generic="canine"
@@ -437,11 +494,11 @@ datum
tail=1
taur=1
zig
name="zig"
//name="zig"
id="zig"
generic="pokémon"
adjective="curious"
tail=1
tail=1 */
/*
@@ -497,16 +554,9 @@ datum
adjective="rocky"
restricted=2
zombie
//name="zombie"
//name = "High Functioning Zombie"
id="zombie"
generic="undead"
adjective="rotten"
restricted=2
cosmetic_zombie // considering renaming to zombie/cosmetic
//name="zombie"
id="zombie"
generic="undead"
adjective="particularly rotten"
say_mod="moans"
restricted=2
plasmaman
//name="Plasmabone"
@@ -527,7 +577,7 @@ datum
adjective="refreshing"
restricted=2 // don't want half the station to be running around with soda cans on their heads
cutebold
name="cutebold"
//name="cutebold"
id="cutebold"
say_mod = "yips"
generic = "kobo"
@@ -535,22 +585,39 @@ datum
tail=1
attack_verb = "nom"
attack_sound = 'sound/weapons/bite.ogg'
restricted=2
pony // of the "my little" variety
name="pony"
//name="pony"
id="pony"
generic="equine"
adjective="little"
tail=1
attack_verb= "kick"
restricted=2
hylotl
name="hylotl"
//name="hylotl"
id="hylotl"
say_mod = "glubs"
generic="amphibian"
adjective="fishy"
tail=0
eyes="jelleyes"
/*var/list/kpcode_race_list
restricted=2
synth
//name = "Synth" //inherited from the real species, for health scanners and things
id = "synth"
say_mod = "beep boops" //inherited from a user's real species
restricted=2
synth/military
//name = "Military Synth"
id = "military_synth"
restricted=2
corporate
//name = "Corporate Agent"
id = "agent"
restricted=2
/*
var/list/kpcode_race_list
proc/kpcode_race_genlist()
if(!kpcode_race_list)
@@ -558,8 +625,9 @@ proc/kpcode_race_genlist()
kpcode_race_list = new/list()
for(var/path in paths)
var/datum/species/D = new path()
if(D.name!="undefined")
kpcode_race_list[D.name] = D*/
if(D.//name!="undefined")
kpcode_race_list[D.//name] = D
*/
proc/kpcode_race_getlist(var/restrict=0)
var/list/race_options = list()
+1 -1
View File
@@ -1,4 +1,4 @@
//Configuraton defines //TODO: Move all yes/no switches into bitflags
f//Configuraton defines //TODO: Move all yes/no switches into bitflags
//Used by jobs_have_maint_access
#define ASSISTANTS_HAVE_MAINT_ACCESS 1
+4 -4
View File
@@ -103,12 +103,12 @@
spell_type = /obj/effect/proc_holder/spell/targeted/projectile/magic_missile
log_name = "MM"
category = "Defensive"
/*
/datum/spellbook_entry/disintegrate
name = "Disintegrate"
spell_type = /obj/effect/proc_holder/spell/targeted/touch/disintegrate
log_name = "DG"
*/
/datum/spellbook_entry/disabletech
name = "Disable Tech"
spell_type = /obj/effect/proc_holder/spell/targeted/emplosion/disable_tech
@@ -259,7 +259,7 @@
if(surplus>=0)
dat += "[surplus] left.<br>"
return dat
/*
/datum/spellbook_entry/item/staffchange
name = "Staff of Change"
desc = "An artefact that spits bolts of coruscating energy which cause the target's very form to reshape itself."
@@ -278,7 +278,7 @@
desc = "A caprious tool that can fire all sorts of magic without any rhyme or reason. Using it on people you care about is not recommended."
item_path = /obj/item/weapon/gun/magic/staff/chaos
log_name = "SC"
*/
/datum/spellbook_entry/item/staffdoor
name = "Staff of Door Creation"
desc = "A particular staff that can mold solid metal into ornate doors. Useful for getting around in the absence of other transportation. Does not work on glass."
+1
View File
@@ -10,6 +10,7 @@
if(confirm == "Yes")
suiciding = 1
log_game("[key_name(src)] (job: [job ? "[job]" : "None"]) commited suicide at [get_area(src)].")
message_admins("[key_name(src)] (job: [job ? "[job]" : "None"]) commited suicide at [get_area(src)].")
var/obj/item/held_item = get_active_hand()
if(held_item)
var/damagetype = held_item.suicide_act(src)
+2 -2
View File
@@ -4,9 +4,9 @@
#ifdef PUTONHUB
hub_password = "kMZy3U5jJHSiBQjr"
#else
hub_password = "SORRYNOPASSWORD"
hub_password = "kMZy3U5jJHSiBQjr"
#endif
name = "/tg/ Station 13"
name = "Citadel Station 13"
/*
This is for any host that would like their server to appear on the main SS13 hub.
@@ -119,7 +119,9 @@ Thus, the two variables affect pump operation are set in New():
switch(action)
if("power")
on = !on
investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", "atmos")
investigate_log("Pump, [src.name], was turned [on ? "on" : "off"] by [key_name(usr)] at [x], [y], [z], [loc.loc]", "atmos")
message_admins("Pump, [src.name], turned [on ? "on" : "off"] by [key_name(usr)] at [x], [y], [z], [loc.loc]")
log_admin("[key_name(usr)] manipulated a pump at [x], [y], [z]")
. = TRUE
if("pressure")
var/pressure = params["pressure"]
@@ -135,7 +137,9 @@ Thus, the two variables affect pump operation are set in New():
. = TRUE
if(.)
target_pressure = Clamp(pressure, 0, MAX_OUTPUT_PRESSURE)
investigate_log("was set to [target_pressure] kPa by [key_name(usr)]", "atmos")
investigate_log("Pump, [src.name], was set to [target_pressure] kPa by [key_name(usr)] at [x], [y], [z], [loc.loc]", "atmos")
message_admins("Pump, [src.name], was set to [target_pressure] kPa by [key_name(usr)] at [x], [y], [z], [loc.loc]")
log_admin("[key_name(usr)] manipulated a pump at [x], [y], [z]")
update_icon()
/obj/machinery/atmospherics/components/binary/pump/atmosinit()
@@ -178,5 +182,8 @@ Thus, the two variables affect pump operation are set in New():
if(!(stat & NOPOWER) && on)
user << "<span class='warning'>You cannot unwrench this [src], turn it off first!</span>"
else
investigate_log("Pump, [src.name], was unwrenched by [key_name(usr)] at [x], [y], [z], [loc.loc]", "atmos")
message_admins("Pump, [src.name], was unwrenched by [key_name(usr)] at [x], [y], [z], [loc.loc]")
log_admin("[key_name(usr)] unwrenched a pump at [x], [y], [z]")
return 1
@@ -1,7 +1,7 @@
/obj/machinery/atmospherics/components/unary/cryo_cell
name = "cryo cell"
icon = 'icons/obj/cryogenics.dmi'
icon_state = "cell-off"
icon_state = "pod0"
density = 1
anchored = 1
@@ -9,7 +9,7 @@
state_open = FALSE
var/autoeject = FALSE
var/volume = 100
var/running_bob_animation = 0
var/efficiency = 1
var/sleep_factor = 750
var/paralyze_factor = 1000
@@ -54,17 +54,59 @@
return ..()
/obj/machinery/atmospherics/components/unary/cryo_cell/update_icon()
handle_update_icon()
/obj/machinery/atmospherics/components/unary/cryo_cell/proc/handle_update_icon() //making another proc to avoid spam in update_icon
overlays.Cut() //empty the overlay proc, just in case
if(panel_open)
icon_state = "cell-o"
icon_state = "pod0-o"
else if(state_open)
icon_state = "cell-open"
icon_state = "pod0"
else if(on && is_operational())
if(occupant)
icon_state = "cell-occupied"
var/image/pickle = image(occupant.icon, occupant.icon_state)
pickle.overlays = occupant.overlays
pickle.pixel_y = 22
overlays += pickle
icon_state = "pod1"
var/up = 0 //used to see if we are going up or down, 1 is down, 2 is up
spawn(0) // Without this, the icon update will block. The new thread will die once the occupant leaves.
running_bob_animation = 1
while(occupant)
overlays -= "lid1" //have to remove the overlays first, to force an update- remove cloning pod overlay
overlays -= pickle //remove mob overlay
switch(pickle.pixel_y) //this looks messy as fuck but it works, switch won't call itself twice
if(23) //inbetween state, for smoothness
switch(up) //this is set later in the switch, to keep track of where the mob is supposed to go
if(2) //2 is up
pickle.pixel_y = 24 //set to highest
if(1) //1 is down
pickle.pixel_y = 22 //set to lowest
if(22) //mob is at it's lowest
pickle.pixel_y = 23 //set to inbetween
up = 2 //have to go up
if(24) //mob is at it's highest
pickle.pixel_y = 23 //set to inbetween
up = 1 //have to go down
overlays += pickle //re-add the mob to the icon
overlays += "lid1" //re-add the overlay of the pod, they are inside it, not floating
sleep(7) //don't want to jiggle violently, just slowly bob
return
running_bob_animation = 0
else
icon_state = "cell-on"
icon_state = "pod1"
overlays += "lid0" //have to remove the overlays first, to force an update- remove cloning pod overlay
else
icon_state = "cell-off"
icon_state = "pod0"
overlays += "lid0" //if no occupant, just put the lid overlay on, and ignore the rest
/obj/machinery/atmospherics/components/unary/cryo_cell/process()
..()
+19 -17
View File
@@ -45,7 +45,7 @@ var/list/preferences_datums = list()
var/mutant_tail = "none"
var/mutant_wing = "none"
var/wingcolor = "FFF"
var/special_color[COLOUR_LIST_SIZE]
//var/special_color[COLOUR_LIST_SIZE]
//var/special_color_one = null
//var/special_color_two = null
var/vore_banned_methods = 0
@@ -212,11 +212,11 @@ var/list/preferences_datums = list()
if(config.mutant_races)
dat += "<b>Species:</b><BR><a href='?_src_=prefs;preference=species;task=input'>[pref_species.id]</a><BR>"
dat += "<b>Human Tail:</b><a href='?_src_=prefs;preference=mutant_tail;task=input'>[mutant_tail]</a><BR>"
dat += "<b>Taur:</b><a href='?_src_=prefs;preference=be_taur;task=input'>[be_taur ? "Yes" : "No"]</a>"
dat += "<b>Taur (Disabled):</b><a href='?_src_=prefs;preference=be_taur;task=input'>[be_taur ? "Yes" : "No"]</a>"
if(!kpcode_cantaur(pref_species.id))
dat += " (not available for [pref_species.id])"
dat += "<BR>"
if(special_color[1])
/*if(special_color[1])
dat += "<span style='border:1px solid #161616; background-color: #[special_color[1]];'>&nbsp;&nbsp;&nbsp;</span> <a href='?_src_=prefs;preference=special_color;which=1;task=input'>Primary</a><BR>"
else
dat += "<a href='?_src_=prefs;preference=special_color;which=1;task=input'>Primary?</a><BR>"
@@ -227,7 +227,7 @@ var/list/preferences_datums = list()
if(special_color[3])
dat += "<span style='border:1px solid #161616; background-color: #[special_color[3]];'>&nbsp;&nbsp;&nbsp;</span> <a href='?_src_=prefs;preference=special_color;which=3;task=input'>Tertiary</a><BR>"
else
dat += "<a href='?_src_=prefs;preference=special_color;which=3;task=input'>Tertiary?</a><BR>"
dat += "<a href='?_src_=prefs;preference=special_color;which=3;task=input'>Tertiary?</a><BR>"*/
else
dat += "<b>Species:</b> Human<BR>"
@@ -382,9 +382,9 @@ var/list/preferences_datums = list()
dat += "<a href='?_src_=prefs;preference=wings;task=input'>[features["wings"]]</a><BR>"
dat += "</td>"
dat += "</td>"*/
dat += "</tr></table>"*/
dat += "</tr></table>"
if (1) // Game Preferences
@@ -996,7 +996,7 @@ var/list/preferences_datums = list()
if(new_wingcolor)
wingcolor = sanitize_hexcolor(new_wingcolor)
if("special_color")
/*if("special_color")
var/index_tc=href_list["which"]
switch(alert("Use a special colour for #[index_tc]?","Character Preference","Yes","No","Cancel"))
if("Yes")
@@ -1004,7 +1004,7 @@ var/list/preferences_datums = list()
if(new_color)
special_color[text2num(index_tc)] = sanitize_hexcolor(new_color)
if("No")
special_color[text2num(index_tc)]=null
special_color[text2num(index_tc)]=null*/
if("character_size")
var/new_size = input(user, "Choose your character's size:", "Character Preference") in list("huge", "large", "normal", "small", "tiny")
@@ -1016,10 +1016,11 @@ var/list/preferences_datums = list()
VP.target=src
VP.ShowChoices(user)
if("be_taur")
be_taur = !be_taur
//if("be_taur")
// be_taur = !be_taur
/*if("tail_lizard")
/*
if("tail_lizard")
var/new_tail
new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in tails_list_lizard
if(new_tail)
@@ -1071,7 +1072,8 @@ var/list/preferences_datums = list()
var/new_body_markings
new_body_markings = input(user, "Choose your character's body markings:", "Character Preference") as null|anything in body_markings_list
if(new_body_markings)
features["body_markings"] = new_body_markings*/
features["body_markings"] = new_body_markings
*/
if("s_tone")
var/new_s_tone = input(user, "Choose your character's skin-tone:", "Character Preference") as null|anything in skin_tones
@@ -1276,12 +1278,12 @@ var/list/preferences_datums = list()
if(mutant_tail != "none" && config.mutant_races)
character.dna.mutanttail = mutant_tail
if(mutant_wing != "none" && config.mutant_races)
/*(if(mutant_wing != "none" && config.mutant_races)
character.dna.mutantwing = mutant_wing
character.dna.wingcolor=wingcolor
if(be_taur)
character.dna.taur=1
character.dna.special_color = special_color
character.dna.wingcolor=wingcolor*/
//if(be_taur)
// character.dna.taur=1
//character.dna.special_color = special_color
character.dna.cock=p_cock
character.dna.vagina=p_vagina
+64 -12
View File
@@ -195,6 +195,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
if(needs_update == -2) //fatal, can't load any data
return 0
if(!S["species"] || !config.mutant_races)
S["species"] << new /datum/species/human()
//general preferences
S["ooccolor"] >> ooccolor
S["lastchangelog"] >> lastchangelog
@@ -296,17 +299,21 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
return 0
//Species
var/species_id
S["species"] >> species_id
if(config.mutant_races && species_id && (species_id in roundstart_species))
var/newtype = roundstart_species[species_id]
/*var/species_name
S["species"] >> species_name
if(config.mutant_races && species_name && (species_name in roundstart_species))
var/newtype = roundstart_species[species_name]
pref_species = new newtype()
else
var/rando_race = pick(config.roundstart_races)
pref_species = new rando_race()
pref_species = new /datum/species/human()
if(!S["features["mcolor"]"] || S["features["mcolor"]"] == "#000")
S["features["mcolor"]"] << "#FFF"
S["features["mcolor"]"] << "#FFF"*/
if(!S["species"] || !config.mutant_races)
S["species"] << new /datum/species/human()
//if(!S["mutant_color"] || S["mutant_color"] == "#000")
// S["mutant_color"] << "#FFF"
//Character
S["Flavor_Text"] >> flavor_text
@@ -344,6 +351,22 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["cyborg_name"] >> custom_names["cyborg"]
S["religion_name"] >> custom_names["religion"]
S["deity_name"] >> custom_names["deity"]
S["species"] >> pref_species
//Customs
S["mutant_tail"] >> mutant_tail
S["mutant_wing"] >> mutant_wing
S["wingcolor"] >> wingcolor
//S["special_color_one"] >> special_color_one
//S["special_color_two"] >> special_color_two
//S["special_color"] >> special_color
S["be_taur"] >> be_taur
S["vore_ability"] >> vore_ability
S["vore_banned_methods"]>> vore_banned_methods
S["vore_extra_bans"] >> vore_extra_bans
S["character_size"] >> character_size
S["p_cock"] >> p_cock
S["p_vagina"] >> p_vagina
//Jobs
S["userandomjob"] >> userandomjob
@@ -364,10 +387,12 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
//Sanitize
flavor_text = sanitize_text(flavor_text, initial(flavor_text))
real_name = reject_bad_name(real_name)
if(!features["mcolor"] || features["mcolor"] == "#000")
features["mcolor"] = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F")
if(!real_name)
real_name = random_unique_name(gender)
//if(!(pref_species in species_list))
if(!(pref_species))
pref_species = new /datum/species/human()
//if(!mutant_color || mutant_color == "#000")
// mutant_color = "#FFF"
if(!real_name) real_name = random_unique_name(gender)
be_random_name = sanitize_integer(be_random_name, 0, 1, initial(be_random_name))
be_random_body = sanitize_integer(be_random_body, 0, 1, initial(be_random_body))
gender = sanitize_gender(gender)
@@ -388,6 +413,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
eye_color = sanitize_hexcolor(eye_color, 3, 0)
skin_tone = sanitize_inlist(skin_tone, skin_tones)
backbag = sanitize_inlist(backbag, backbaglist, initial(backbag))
/*
features["mcolor"] = sanitize_hexcolor(features["mcolor"], 3, 0)
features["tail_lizard"] = sanitize_inlist(features["tail_lizard"], tails_list_lizard)
features["tail_human"] = sanitize_inlist(features["tail_human"], tails_list_human, "None")
@@ -396,7 +422,20 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
features["ears"] = sanitize_inlist(features["ears"], ears_list, "None")
features["frills"] = sanitize_inlist(features["frills"], frills_list)
features["spines"] = sanitize_inlist(features["spines"], spines_list)
features["body_markings"] = sanitize_inlist(features["body_markings"], body_markings_list)
features["body_markings"] = sanitize_inlist(features["body_markings"], body_markings_list)*/
mutant_tail = sanitize_text(mutant_tail, initial(mutant_tail))
mutant_wing = sanitize_text(mutant_wing, initial(mutant_wing))
wingcolor = sanitize_hexcolor(wingcolor, 3, 0)
character_size = sanitize_text(character_size, initial(character_size))
// mutant_color = sanitize_hexcolor(mutant_color, 3, 0)
vore_ability=sanitize_vore_list(vore_ability)
if(isnull(vore_banned_methods))vore_banned_methods=0
if(isnull(vore_extra_bans))vore_extra_bans=65535
if(isnull(p_vagina)) p_vagina=gender==FEMALE
if(isnull(p_cock))
p_cock=list("has"=gender==MALE,"type"="human","color"="900")
userandomjob = sanitize_integer(userandomjob, 0, 1, initial(userandomjob))
job_civilian_high = sanitize_integer(job_civilian_high, 0, 65535, initial(job_civilian_high))
@@ -454,6 +493,19 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["cyborg_name"] << custom_names["cyborg"]
S["religion_name"] << custom_names["religion"]
S["deity_name"] << custom_names["deity"]
S["species"] << pref_species
//Custom
S["mutant_tail"] << mutant_tail
S["mutant_wing"] << mutant_wing
S["wingcolor"] << wingcolor
//S["special_color"] << special_color
S["be_taur"] << be_taur
S["vore_ability"] << vore_ability
S["vore_banned_methods"]<< vore_banned_methods
S["vore_extra_bans"] << vore_extra_bans
S["character_size"] << character_size
S["p_cock"] << p_cock
S["p_vagina"] << p_vagina
//Jobs
S["userandomjob"] << userandomjob
@@ -695,22 +695,23 @@
threatcount += 2
//Check for dresscode violations
if(istype(head, /obj/item/clothing/head/wizard) || istype(head, /obj/item/clothing/head/helmet/space/hardsuit/wizard))
threatcount += 2
if(istype(head, /obj/item/clothing/head/wizard) || istype(head, /obj/item/clothing/head/helmet/space/hardsuit/wizard) || istype(head, /obj/item/clothing/head/helmet/space/hardsuit/syndi) || istype(head, /obj/item/clothing/head/helmet/space/syndicate) || istype(head, /obj/item/clothing/head/culthood))
threatcount += 5
//Check for nonhuman scum
if(dna && dna.species.id && dna.species.id != "human")
threatcount += 1
threatcount += 0
//mindshield implants imply trustworthyness
//Loyalty implants imply trustworthyness
if(isloyal(src))
threatcount -= 1
//Agent cards lower threatlevel.
//Agent cards lower threatlevel, but only just enough to avoid dresscode violations.
if(istype(idcard, /obj/item/weapon/card/id/syndicate))
threatcount -= 5
threatcount -= 2
return threatcount
return threatcount
//Used for new human mobs created by cloning/goleming/podding
@@ -61,7 +61,7 @@
var/darksight = 2
// species flags. these can be found in flags.dm
var/list/specflags = list()
var/list/specflags = list(EYECOLOR,HAIR,FACEHAIR,LIPS)
var/attack_verb = "punch" // punch-specific attack verb
var/sound/attack_sound = 'sound/weapons/punch1.ogg'
@@ -294,8 +294,44 @@
if(U3)
standing += image("icon"=U3.icon, "icon_state"="[U3.icon_state]_s", "layer"=-BODY_LAYER)
if(standing.len)
H.overlays_standing[BODY_LAYER] = standing
//Custom Code
if(H.dna&&H.dna.taur&&!kpcode_cantaur(id))H.dna.taur=0//VERY BAD TEMP FIX
if(H.underwear&&H.underwear!="Nude"&&H.underwear_active&& (!H.dna||!H.dna.taur) )
var/datum/sprite_accessory/underwear/U = underwear_list[H.underwear]
if(U)
standing += image("icon"=U.icon, "icon_state"="[U.icon_state]_s", "layer"=-BODY_LAYER)
else if((!H.dna || !H.dna.taur) && (!H.wear_suit || !(H.wear_suit.flags_inv&HIDEJUMPSUIT)) && (!H.w_uniform||!(H.w_uniform.body_parts_covered&GROIN)) )
if(H.dna&&H.dna.cock)
//cock codes here
var/list/cock=H.dna.cock
var/cock_mod=0
var/cock_type=cock["type"]
if(cock["has"]==H.dna.COCK_NORMAL)cock_mod="n"
else if(cock["has"]==H.dna.COCK_HYPER)cock_mod="h"
else if(cock["has"]==H.dna.COCK_DOUBLE)cock_mod="d"
if(cock_mod)
var/icon/chk=new/icon('icons/mob/cock.dmi')
var/list/available_states=chk.IconStates()
if(available_states.Find("[cock_type]_c_[cock_mod]"))
var/image/cockimtmp = image("icon"='icons/mob/cock.dmi', "icon_state"="[cock_type]_c_[cock_mod]", "layer"=-BODY_LAYER)
var/new_color = "#" + cock["color"]
cockimtmp.color = new_color
standing += cockimtmp
if(available_states.Find("[cock_type]_s_[cock_mod]"))
var/image/cockimtmp = image("icon"='icons/mob/cock.dmi', "icon_state"="[cock_type]_s_[cock_mod]", "layer"=-BODY_LAYER)
if(H.dna.special_color[2])
var/new_color = "#" + H.dna.special_color[2]
cockimtmp.color = new_color
standing += cockimtmp
if(H.dna&&H.dna.taur)
var/taur_state="[kpcode_cantaur(H.dna.mutantrace())]_overlay"
if(H.vore_womb_datum.has_people()||H.vore_stomach_datum.has_people())
taur_state+="_f"
standing += generate_colour_icon('icons/mob/special/taur.dmi',"[taur_state]",H.dna.special_color,offset_x=-16,add_layer=-BODY_LAYER)
H.apply_overlay(BODY_LAYER)
@@ -6,13 +6,13 @@
name = "Human"
id = "human"
default_color = "FFFFFF"
specflags = list(EYECOLOR,HAIR,FACEHAIR,LIPS)
//specflags = list(EYECOLOR,HAIR,FACEHAIR,LIPS)
mutant_bodyparts = list("tail_human", "ears", "wings")
default_features = list("mcolor" = "FFF", "tail_human" = "None", "ears" = "None", "wings" = "None")
use_skintones = 1
skinned_type = /obj/item/stack/sheet/animalhide/human
/*
/datum/species/human/qualifies_for_rank(rank, list/features)
if((!features["tail_human"] || features["tail_human"] == "None") && (!features["ears"] || features["ears"] == "None"))
return 1 //Pure humans are always allowed in all roles.
@@ -28,7 +28,7 @@
return 0
if(rank == "Quartermaster") //QM is not contained in command_positions but we still want to bar mutants from it.
return 0
return ..()
return ..()*/
/datum/species/human/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H)
@@ -53,7 +53,8 @@
id = "lizard"
say_mod = "hisses"
default_color = "00FF00"
specflags = list(MUTCOLORS,EYECOLOR,LIPS)
roundstart = 1
specflags = list(MUTCOLORS,EYECOLOR,LIPS,HAIR,FACEHAIR)
mutant_bodyparts = list("tail_lizard", "snout", "spines", "horns", "frills", "body_markings")
mutant_organs = list(/obj/item/organ/tongue/lizard)
default_features = list("mcolor" = "0F0", "tail" = "Smooth", "snout" = "Round", "horns" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None")
@@ -147,7 +148,7 @@
if(/obj/item/projectile/energy/florayield)
H.nutrition = min(H.nutrition+30, NUTRITION_LEVEL_FULL)
return
/*
SHADOWPEOPLE
@@ -188,7 +189,7 @@
default_color = "00FF90"
say_mod = "chirps"
eyes = "jelleyes"
specflags = list(MUTCOLORS,EYECOLOR,NOBLOOD,VIRUSIMMUNE, TOXINLOVER)
specflags = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,NOBLOOD)
meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/slime
exotic_blood = "slimejelly"
var/datum/action/innate/regenerate_limbs/regenerate_limbs
@@ -285,7 +286,7 @@
id = "slime"
default_color = "00FFFF"
darksight = 3
specflags = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,NOBLOOD,VIRUSIMMUNE, TOXINLOVER)
specflags = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,NOBLOOD)
say_mod = "says"
eyes = "eyes"
hair_color = "mutcolor"
@@ -85,6 +85,53 @@ There are several things that need to be remembered:
dna.species.handle_body(src)
update_body_parts()
//Tail code
remove_overlay(TAIL_LAYER)
var/list/t_standing = list()
//var/icon/chk=new/icon('icons/mob/tail.dmi')
//var/list/available_states=chk.IconStates()
var/wing = dna ? dna.mutantwing : null
if(wing&&wing!="none"&&!dna.taur)
var/image/wing_s = image("icon" = 'icons/mob/wing.dmi', "icon_state" = "[wing]", "layer" = -TAIL_LAYER)
wing_s.color = "#" + dna.wingcolor
t_standing += wing_s
var/race = dna ? dna.mutantrace() : null
if(race&&kpcode_hastail(race) &&!dna.taur) //Temp taur fix
t_standing+=generate_colour_icon('icons/mob/tail.dmi',"[kpcode_hastail(race)]",dna.special_color,add_layer=-TAIL_LAYER)
/*var/list/standingt = list()
standingt += image("icon"='icons/mob/tail.dmi', "icon_state"="[race]", "layer"=-TAIL_LAYER)
if(dna.special_color_one)
if(available_states.Find("[race]_1"))
var/image/standingt_one = image("icon"='icons/mob/tail.dmi', "icon_state"="[race]_1", "layer"=-TAIL_LAYER)
var/new_color = "#" + dna.special_color_one
standingt_one.color = new_color
standingt += standingt_one
overlays_standing[TAIL_LAYER] = standingt*/
else
if(!race||race=="human")
var/tail = dna ? dna.mutanttail : null
if(tail&&kpcode_hastail(tail) &&!dna.taur) //Temp taur fix
t_standing+=generate_colour_icon('icons/mob/tail.dmi',"[kpcode_hastail(tail)]",dna.special_color,add_layer=-TAIL_LAYER,human=hair_color)
/*var/list/standingt = list()
standingt += image("icon"='icons/mob/tail.dmi', "icon_state"="[kpcode_hastail(tail)]", "pixel_y"=kpcode_tail_offset(tail), "layer"=-TAIL_LAYER) //may need a +(pixel_y/2)
var/image/standingt_one = image("icon"='icons/mob/tail.dmi', "icon_state"="[kpcode_hastail(tail)]_1", "pixel_y"=kpcode_tail_offset(tail), "layer"=-TAIL_LAYER)
var/new_color = "#" + hair_color
standingt_one.color = new_color
standingt += standingt_one
overlays_standing[TAIL_LAYER] = standingt*/
if(dna&&dna.taur)
t_standing+=generate_colour_icon('icons/mob/special/taur.dmi',"[kpcode_cantaur(dna.mutantrace())]_tail",dna.special_color,offset_x=-16,add_layer=-TAIL_LAYER)
if(src.vore_womb_datum.has_people()||src.vore_stomach_datum.has_people())
t_standing+=generate_colour_icon('icons/mob/special/taur.dmi',"[kpcode_cantaur(dna.mutantrace())]_tail_f",dna.special_color,offset_x=-16,add_layer=-TAIL_LAYER)
if(t_standing.len)
overlays_standing[TAIL_LAYER] =t_standing
apply_overlay(TAIL_LAYER)
/mob/living/carbon/human/update_fire()
..("Standing")
@@ -31,6 +31,8 @@
minor_announce(config.alert_desc_blue_upto, "Attention! Security level elevated to blue:",1)
else
minor_announce(config.alert_desc_blue_downto, "Attention! Security level lowered to blue:")
for(var/mob/M in player_list)
M << 'sound/misc/voybluealert.ogg'
security_level = SEC_LEVEL_BLUE
for(var/obj/machinery/firealarm/FA in machines)
if(FA.z == ZLEVEL_STATION)
@@ -40,6 +42,8 @@
minor_announce(config.alert_desc_red_upto, "Attention! Code red!",1)
else
minor_announce(config.alert_desc_red_downto, "Attention! Code red!")
for(var/mob/M in player_list)
M << 'sound/misc/voyalert.ogg'
security_level = SEC_LEVEL_RED
/* - At the time of commit, setting status displays didn't work properly
@@ -54,6 +58,8 @@
pod.admin_controlled = 0
if(SEC_LEVEL_DELTA)
minor_announce(config.alert_desc_delta, "Attention! Delta security level reached!",1)
for(var/mob/M in player_list)
M << 'sound/misc/tas_red_alert.ogg'
security_level = SEC_LEVEL_DELTA
for(var/obj/machinery/firealarm/FA in machines)
if(FA.z == ZLEVEL_STATION)
+10 -3
View File
@@ -182,6 +182,7 @@
travelDir = -90
roundstart_move = "emergency_away"
var/sound_played = 0 //If the launch sound has been sent to all players on the shuttle itself
var/end_sound_played = 0 //so it doesn't loop annoyingly
/obj/docking_port/mobile/emergency/register()
. = ..()
@@ -299,7 +300,7 @@
if(SHUTTLE_DOCKED)
if(time_left <= 50 && !sound_played) //4 seconds left:REV UP THOSE ENGINES BOYS. - should sync up with the launch
if(time_left <= 60 && !sound_played) //4 seconds left:REV UP THOSE ENGINES BOYS. - should sync up with the launch
sound_played = 1 //Only rev them up once.
for(var/area/shuttle/escape/E in world)
E << 'sound/effects/hyperspace_begin.ogg'
@@ -326,6 +327,12 @@
timer = world.time
priority_announce("The Emergency Shuttle has left the station. Estimate [timeLeft(600)] minutes until the shuttle docks at Central Command.", null, null, "Priority")
if(SHUTTLE_ESCAPE)
if(time_left <= 50 && !end_sound_played) //4 seconds left:Hyperspace trip completed. - should sync up with the landing
end_sound_played = 1 //Only rev them up once.
for(var/area/shuttle/escape/E in world)
E << 'sound/effects/hyperspace_end.ogg'
if(time_left <= 0)
//move each escape pod to its corresponding escape dock
for(var/A in SSshuttle.mobile)
@@ -337,8 +344,8 @@
continue //Mapping a new docking point for each ship mappers could potentially want docking with centcomm would take up lots of space, just let them keep flying off into the sunset for their greentext
//now move the actual emergency shuttle to centcomm
for(var/area/shuttle/escape/E in world)
E << 'sound/effects/hyperspace_end.ogg'
// for(var/area/shuttle/escape/E in world)
// E << 'sound/effects/hyperspace_end.ogg'
dock(SSshuttle.getDock("emergency_away"))
mode = SHUTTLE_ENDGAME
timer = 0
+3 -1
View File
@@ -6,4 +6,6 @@
# Ranks can be anything defined in admin_ranks.txt #
# NOTE: if the rank-name cannot be found in admin_ranks.txt, they will not be adminned! ~Carn #
# NOTE: syntax was changed to allow hyphenation of ranknames, since spaces are stripped. #
###############################################################################################
###############################################################################################
JayEh = Host
+8
View File
@@ -276,6 +276,14 @@ JOIN_WITH_MUTANT_RACE
## You probably want humans on your space station, but technically speaking you can turn them off without any ill effect
ROUNDSTART_RACES human
## Races because TG is racist
ROUNDSTART_RACES canine
ROUNDSTART_RACES feline
ROUNDSTART_RACES avian
ROUNDSTART_RACES rodent
ROUNDSTART_RACES herbivorous
ROUNDSTART_RACES exotic
## Races that are strictly worse than humans that could probably be turned on without balance concerns
ROUNDSTART_RACES lizard
#ROUNDSTART_RACES fly
Binary file not shown.

Before

Width:  |  Height:  |  Size: 198 KiB

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 287 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+12 -11
View File
@@ -51,6 +51,7 @@
#include "code\__DEFINES\tablecrafting.dm"
#include "code\__DEFINES\tgui.dm"
#include "code\__DEFINES\tick.dm"
#include "code\__DEFINES\voreconstants.dm"
#include "code\__DEFINES\wires.dm"
#include "code\__HELPERS\_logging.dm"
#include "code\__HELPERS\_string_lists.dm"
@@ -125,6 +126,17 @@
#include "code\_onclick\hud\robot.dm"
#include "code\_onclick\hud\screen_objects.dm"
#include "code\_onclick\hud\swarmer.dm"
#include "code\citadel\chemistry.dm"
#include "code\citadel\flavour.dm"
#include "code\citadel\genetics.dm"
#include "code\citadel\macro.dm"
#include "code\citadel\panel.dm"
#include "code\citadel\races.dm"
#include "code\citadel\science.dm"
#include "code\citadel\transfer_release.dm"
#include "code\citadel\transformation.dm"
#include "code\citadel\unassigned.dm"
#include "code\citadel\whitelist.dm"
#include "code\controllers\admin.dm"
#include "code\controllers\configuration.dm"
#include "code\controllers\controller.dm"
@@ -1812,17 +1824,6 @@
#include "code\modules\vehicles\vehicle.dm"
#include "code\modules\zombie\items.dm"
#include "code\modules\zombie\organs.dm"
#include "code\narky\chemistry.dm"
#include "code\narky\flavour.dm"
#include "code\narky\genetics.dm"
#include "code\narky\macro.dm"
#include "code\narky\panel.dm"
#include "code\narky\races.dm"
#include "code\narky\science.dm"
#include "code\narky\transfer_release.dm"
#include "code\narky\transformation.dm"
#include "code\narky\unassigned.dm"
#include "code\narky\whitelist.dm"
#include "code\orphaned_procs\AStar.dm"
#include "code\orphaned_procs\dbcore.dm"
#include "code\orphaned_procs\priority_announce.dm"