diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 7169390f12..162631ea34 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -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" diff --git a/code/__DEFINES/voreconstants.dm b/code/__DEFINES/voreconstants.dm new file mode 100644 index 0000000000..4252972c6f --- /dev/null +++ b/code/__DEFINES/voreconstants.dm @@ -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]" */ \ No newline at end of file diff --git a/code/narky/chemistry.dm b/code/citadel/chemistry.dm similarity index 100% rename from code/narky/chemistry.dm rename to code/citadel/chemistry.dm diff --git a/code/narky/flavour.dm b/code/citadel/flavour.dm similarity index 100% rename from code/narky/flavour.dm rename to code/citadel/flavour.dm diff --git a/code/narky/genetics.dm b/code/citadel/genetics.dm similarity index 100% rename from code/narky/genetics.dm rename to code/citadel/genetics.dm diff --git a/code/narky/macro.dm b/code/citadel/macro.dm similarity index 100% rename from code/narky/macro.dm rename to code/citadel/macro.dm diff --git a/code/narky/naga.dm b/code/citadel/naga.dm similarity index 100% rename from code/narky/naga.dm rename to code/citadel/naga.dm diff --git a/code/narky/panel.dm b/code/citadel/panel.dm similarity index 100% rename from code/narky/panel.dm rename to code/citadel/panel.dm diff --git a/code/narky/races.dm b/code/citadel/races.dm similarity index 83% rename from code/narky/races.dm rename to code/citadel/races.dm index a72138ddb3..f70da17210 100644 --- a/code/narky/races.dm +++ b/code/citadel/races.dm @@ -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() diff --git a/code/narky/science.dm b/code/citadel/science.dm similarity index 100% rename from code/narky/science.dm rename to code/citadel/science.dm diff --git a/code/narky/simple_animal/duck.dm b/code/citadel/simple_animal/duck.dm similarity index 100% rename from code/narky/simple_animal/duck.dm rename to code/citadel/simple_animal/duck.dm diff --git a/code/narky/transfer_release.dm b/code/citadel/transfer_release.dm similarity index 100% rename from code/narky/transfer_release.dm rename to code/citadel/transfer_release.dm diff --git a/code/narky/transformation.dm b/code/citadel/transformation.dm similarity index 100% rename from code/narky/transformation.dm rename to code/citadel/transformation.dm diff --git a/code/narky/unassigned.dm b/code/citadel/unassigned.dm similarity index 100% rename from code/narky/unassigned.dm rename to code/citadel/unassigned.dm diff --git a/code/narky/whitelist.dm b/code/citadel/whitelist.dm similarity index 100% rename from code/narky/whitelist.dm rename to code/citadel/whitelist.dm diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index 62441e5f59..1ff1e29ba5 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -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 diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm index f6820d4dd8..1e890c4151 100644 --- a/code/game/gamemodes/wizard/spellbook.dm +++ b/code/game/gamemodes/wizard/spellbook.dm @@ -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.
" 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." diff --git a/code/game/verbs/suicide.dm b/code/game/verbs/suicide.dm index 43a08eceb1..943c4cb960 100644 --- a/code/game/verbs/suicide.dm +++ b/code/game/verbs/suicide.dm @@ -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) diff --git a/code/hub.dm b/code/hub.dm index 4fd1fd4675..ce9dfd7f2c 100644 --- a/code/hub.dm +++ b/code/hub.dm @@ -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. diff --git a/code/modules/atmospherics/machinery/components/binary_devices/pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/pump.dm index a500b3841d..b6cbccb883 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/pump.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/pump.dm @@ -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 << "You cannot unwrench this [src], turn it off first!" 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 diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm index f48ea697a9..ecad5d7354 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm @@ -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() ..() diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 17a9406981..cd5c8cf123 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -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 += "Species:
[pref_species.id]
" dat += "Human Tail:[mutant_tail]
" - dat += "Taur:[be_taur ? "Yes" : "No"]" + dat += "Taur (Disabled):[be_taur ? "Yes" : "No"]" if(!kpcode_cantaur(pref_species.id)) dat += " (not available for [pref_species.id])" dat += "
" - if(special_color[1]) + /*if(special_color[1]) dat += "    Primary
" else dat += "Primary?
" @@ -227,7 +227,7 @@ var/list/preferences_datums = list() if(special_color[3]) dat += "    Tertiary
" else - dat += "Tertiary?
" + dat += "Tertiary?
"*/ else dat += "Species: Human
" @@ -382,9 +382,9 @@ var/list/preferences_datums = list() dat += "[features["wings"]]
" - dat += "" + dat += ""*/ - dat += ""*/ + dat += "" 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 diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 4a9efad27d..ed2d5c2b1a 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -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 diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 345a54a5eb..c4466fa10b 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -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 diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 50ada062f3..fe77e2b697 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -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) diff --git a/code/modules/mob/living/carbon/human/species_types.dm b/code/modules/mob/living/carbon/human/species_types.dm index ac36d4c28c..8300e894b0 100644 --- a/code/modules/mob/living/carbon/human/species_types.dm +++ b/code/modules/mob/living/carbon/human/species_types.dm @@ -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" diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index e4bd12856c..418bf73e12 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -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") diff --git a/code/modules/security_levels/security_levels.dm b/code/modules/security_levels/security_levels.dm index bbdcfb64a3..a3044ca049 100644 --- a/code/modules/security_levels/security_levels.dm +++ b/code/modules/security_levels/security_levels.dm @@ -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) diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm index 70788e7975..108b2f320f 100644 --- a/code/modules/shuttle/emergency.dm +++ b/code/modules/shuttle/emergency.dm @@ -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 diff --git a/config/admins.txt b/config/admins.txt index 1301b4ee39..c0a463d0df 100644 --- a/config/admins.txt +++ b/config/admins.txt @@ -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. # -############################################################################################### \ No newline at end of file +############################################################################################### + +JayEh = Host \ No newline at end of file diff --git a/config/game_options.txt b/config/game_options.txt index 696eb46c1f..5d8f09ceee 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -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 diff --git a/icons/misc/fullscreen.dmi b/icons/misc/fullscreen.dmi index 116ea7cfdc..70e27e9e69 100644 Binary files a/icons/misc/fullscreen.dmi and b/icons/misc/fullscreen.dmi differ diff --git a/icons/mob/cock.dmi b/icons/mob/cock.dmi new file mode 100644 index 0000000000..d4d29a7255 Binary files /dev/null and b/icons/mob/cock.dmi differ diff --git a/icons/mob/human.dmi b/icons/mob/human.dmi index 553db92782..7e3518e8a2 100644 Binary files a/icons/mob/human.dmi and b/icons/mob/human.dmi differ diff --git a/icons/mob/human_parts.dmi b/icons/mob/human_parts.dmi index 54ec9ed433..8c508fc181 100644 Binary files a/icons/mob/human_parts.dmi and b/icons/mob/human_parts.dmi differ diff --git a/icons/mob/human_parts_greyscale.dmi b/icons/mob/human_parts_greyscale.dmi index 484d6ba5e9..242d566ce9 100644 Binary files a/icons/mob/human_parts_greyscale.dmi and b/icons/mob/human_parts_greyscale.dmi differ diff --git a/icons/mob/special/furryrace.dmi b/icons/mob/special/furryrace.dmi new file mode 100644 index 0000000000..3718b8d8dd Binary files /dev/null and b/icons/mob/special/furryrace.dmi differ diff --git a/icons/mob/special/furrytail.dmi b/icons/mob/special/furrytail.dmi new file mode 100644 index 0000000000..ba0e7a3a6c Binary files /dev/null and b/icons/mob/special/furrytail.dmi differ diff --git a/icons/mob/special/taur.dmi b/icons/mob/special/taur.dmi new file mode 100644 index 0000000000..e70ded7ce1 Binary files /dev/null and b/icons/mob/special/taur.dmi differ diff --git a/icons/mob/tail.dmi b/icons/mob/tail.dmi new file mode 100644 index 0000000000..44b6e823ce Binary files /dev/null and b/icons/mob/tail.dmi differ diff --git a/icons/mob/wing.dmi b/icons/mob/wing.dmi new file mode 100644 index 0000000000..50247693a4 Binary files /dev/null and b/icons/mob/wing.dmi differ diff --git a/icons/obj/cryogenics.dmi b/icons/obj/cryogenics.dmi index 1159725b91..49df4d5eb6 100644 Binary files a/icons/obj/cryogenics.dmi and b/icons/obj/cryogenics.dmi differ diff --git a/sound/effects/hyperspace_begin.ogg b/sound/effects/hyperspace_begin.ogg index 225e2d9882..a346c67ba7 100644 Binary files a/sound/effects/hyperspace_begin.ogg and b/sound/effects/hyperspace_begin.ogg differ diff --git a/sound/effects/hyperspace_end.ogg b/sound/effects/hyperspace_end.ogg index 64fb5214a9..4d56348ec9 100644 Binary files a/sound/effects/hyperspace_end.ogg and b/sound/effects/hyperspace_end.ogg differ diff --git a/sound/misc/tas_red_alert.ogg b/sound/misc/tas_red_alert.ogg new file mode 100644 index 0000000000..b2ad11f21e Binary files /dev/null and b/sound/misc/tas_red_alert.ogg differ diff --git a/sound/misc/voyalert.ogg b/sound/misc/voyalert.ogg new file mode 100644 index 0000000000..c5a1b9ff31 Binary files /dev/null and b/sound/misc/voyalert.ogg differ diff --git a/sound/misc/voybluealert.ogg b/sound/misc/voybluealert.ogg new file mode 100644 index 0000000000..35d4cc1787 Binary files /dev/null and b/sound/misc/voybluealert.ogg differ diff --git a/tgstation.dme b/tgstation.dme index 15cf201e77..68a92acf5f 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -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"