This commit is contained in:
Putnam
2021-01-20 18:38:52 -08:00
403 changed files with 1891 additions and 2633 deletions

View File

@@ -5,8 +5,8 @@ dreamchecker = true
engine = "auxtools"
#[code_standards]
#disallow_relative_type_definitions = true
#disallow_relative_proc_definitions = true
disallow_relative_type_definitions = true
disallow_relative_proc_definitions = true
[dmdoc]
use_typepath_names = true

View File

@@ -111,6 +111,17 @@
/obj/structure/alien/resin/membrane,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/xenonest)
"ax" = (
/obj/structure/alien/weeds,
/obj/effect/decal/cleanable/blood/gibs,
/obj/structure/alien/weeds/node,
/mob/living/simple_animal/hostile/alien/drone,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/xenonest)
"ay" = (
/obj/structure/stone_tile/slab/cracked,
/turf/open/indestructible/boss,
/area/ruin/unpowered/xenonest)
"aA" = (
/obj/structure/alien/weeds,
/obj/item/flamethrower,
@@ -130,6 +141,17 @@
},
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/xenonest)
"aD" = (
/obj/structure/stone_tile/surrounding_tile{
dir = 1
},
/obj/structure/stone_tile/surrounding_tile,
/obj/structure/stone_tile/surrounding_tile/cracked{
dir = 4
},
/obj/structure/stone_tile/center,
/turf/open/chasm/lavaland,
/area/ruin/unpowered/xenonest)
"aE" = (
/obj/structure/alien/weeds,
/obj/effect/decal/cleanable/ash,
@@ -160,6 +182,19 @@
/obj/effect/decal/cleanable/blood,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/xenonest)
"aK" = (
/obj/structure/stone_tile/surrounding_tile/cracked{
dir = 4
},
/obj/structure/stone_tile/surrounding_tile/cracked{
dir = 8
},
/obj/structure/stone_tile/surrounding_tile/cracked{
dir = 1
},
/obj/structure/stone_tile/center/cracked,
/turf/open/chasm/lavaland,
/area/ruin/unpowered/xenonest)
"aL" = (
/obj/structure/alien/weeds,
/obj/item/tank/internals/plasma,
@@ -170,6 +205,26 @@
/obj/effect/decal/cleanable/blood/xeno,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/xenonest)
"aN" = (
/obj/structure/stone_tile/block{
dir = 8
},
/obj/structure/stone_tile{
dir = 1
},
/obj/structure/stone_tile/cracked,
/turf/open/indestructible/boss,
/area/ruin/unpowered/xenonest)
"aO" = (
/obj/structure/alien/weeds,
/obj/effect/mob_spawn/alien/corpse/humanoid/sentinel,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/xenonest)
"aP" = (
/obj/structure/alien/weeds,
/obj/effect/mob_spawn/alien/corpse/humanoid/hunter,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/xenonest)
"aQ" = (
/obj/structure/alien/weeds,
/obj/structure/bed/nest,
@@ -215,13 +270,6 @@
/obj/effect/gibspawner/xeno,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/xenonest)
"aY" = (
/obj/structure/alien/weeds,
/obj/effect/decal/cleanable/blood/gibs,
/mob/living/simple_animal/hostile/alien/drone,
/obj/structure/alien/weeds/node,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/xenonest)
"aZ" = (
/turf/closed/indestructible/riveted/boss,
/area/ruin/unpowered/xenonest)
@@ -338,10 +386,6 @@
/obj/structure/stone_tile,
/turf/open/indestructible/boss,
/area/ruin/unpowered/xenonest)
"bm" = (
/obj/structure/stone_tile/slab/cracked,
/turf/open/indestructible/boss,
/area/ruin/unpowered/xenonest)
"bn" = (
/obj/structure/stone_tile/block{
dir = 4
@@ -365,12 +409,6 @@
/obj/structure/stone_tile/center,
/turf/open/chasm/lavaland,
/area/ruin/unpowered/xenonest)
"bp" = (
/obj/structure/stone_tile/block{
dir = 4
},
/turf/open/chasm/lavaland,
/area/ruin/unpowered/xenonest)
"bq" = (
/turf/open/chasm/lavaland,
/area/ruin/unpowered/xenonest)
@@ -391,33 +429,6 @@
},
/turf/open/chasm/lavaland,
/area/ruin/unpowered/xenonest)
"bt" = (
/obj/structure/stone_tile/surrounding_tile{
dir = 1
},
/obj/structure/stone_tile/surrounding_tile,
/obj/structure/stone_tile/surrounding_tile/cracked{
dir = 4
},
/obj/structure/stone_tile/center,
/turf/open/chasm/lavaland,
/area/ruin/unpowered/xenonest)
"bu" = (
/obj/structure/stone_tile/block/cracked{
dir = 1
},
/turf/open/chasm/lavaland,
/area/ruin/unpowered/xenonest)
"bv" = (
/obj/structure/stone_tile/block{
dir = 8
},
/obj/structure/stone_tile{
dir = 1
},
/obj/structure/stone_tile/cracked,
/turf/open/indestructible/boss,
/area/ruin/unpowered/xenonest)
"bw" = (
/obj/structure/stone_tile/cracked{
dir = 4
@@ -492,19 +503,6 @@
/obj/structure/alien/weeds,
/turf/template_noop,
/area/ruin/unpowered/xenonest)
"bE" = (
/obj/structure/stone_tile/surrounding_tile/cracked{
dir = 4
},
/obj/structure/stone_tile/surrounding_tile/cracked{
dir = 8
},
/obj/structure/stone_tile/surrounding_tile/cracked{
dir = 1
},
/obj/structure/stone_tile/center/cracked,
/turf/open/chasm/lavaland,
/area/ruin/unpowered/xenonest)
"dE" = (
/obj/structure/alien/weeds,
/obj/structure/bed/nest,
@@ -514,6 +512,12 @@
/obj/item/clothing/mask/facehugger/impregnated,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/xenonest)
"gA" = (
/obj/structure/alien/weeds,
/obj/structure/bed/nest,
/obj/effect/mob_spawn/alien/corpse/humanoid/sentinel,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/xenonest)
"iA" = (
/obj/structure/alien/weeds,
/obj/structure/bed/nest,
@@ -522,18 +526,24 @@
/obj/item/clothing/mask/facehugger/impregnated,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/xenonest)
"kp" = (
/obj/structure/alien/weeds,
/obj/item/reagent_containers/syringe/alien,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/xenonest)
"lG" = (
/obj/structure/alien/weeds,
/obj/effect/mob_spawn/alien/corpse/humanoid/drone,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/xenonest)
"pE" = (
/obj/effect/mob_spawn/alien/corpse/humanoid/queen,
"lM" = (
/obj/structure/stone_tile/block{
dir = 4
},
/turf/open/chasm/lavaland,
/area/ruin/unpowered/xenonest)
"nj" = (
/obj/effect/mob_spawn/alien/corpse/humanoid/praetorian,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/xenonest)
"tY" = (
/obj/structure/alien/weeds/node,
/obj/effect/mob_spawn/alien/corpse/humanoid/hunter,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/xenonest)
"wA" = (
@@ -546,12 +556,23 @@
/mob/living/simple_animal/hostile/alien/sentinel,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/xenonest)
"zj" = (
/obj/structure/stone_tile/block/cracked{
dir = 1
},
/turf/open/chasm/lavaland,
/area/ruin/unpowered/xenonest)
"Dd" = (
/obj/structure/alien/weeds,
/obj/effect/decal/cleanable/blood/gibs,
/obj/item/storage/backpack/duffelbag/sec/surgery,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/xenonest)
"Ha" = (
/obj/structure/alien/weeds,
/obj/item/reagent_containers/syringe/alien,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/xenonest)
"JM" = (
/obj/structure/alien/weeds/node,
/obj/effect/mob_spawn/alien/corpse/humanoid/drone,
@@ -1075,7 +1096,7 @@ ac
ac
ac
bi
aY
ax
ac
ac
ac
@@ -1123,7 +1144,7 @@ an
an
ac
ac
am
gA
ac
ac
aJ
@@ -1278,10 +1299,10 @@ ac
Dd
ag
ak
ag
aP
af
ac
lG
ag
ac
ac
an
@@ -1357,7 +1378,7 @@ ab
ac
af
ag
ar
tY
lG
ag
ag
@@ -1511,7 +1532,7 @@ ac
ah
af
ah
JM
ar
Vi
ak
ag
@@ -1618,7 +1639,7 @@ ag
wA
ag
ag
pE
nj
ag
at
ag
@@ -1640,7 +1661,7 @@ ab
aZ
aZ
aZ
bm
ay
aZ
aZ
aZ
@@ -1718,7 +1739,7 @@ ah
ar
ah
ak
kp
Ha
at
ag
ag
@@ -1742,8 +1763,8 @@ ac
aZ
bc
bj
bp
bt
lM
aD
bx
aZ
ab
@@ -1794,7 +1815,7 @@ ba
bd
bk
bq
bu
zj
by
aZ
ab
@@ -1823,7 +1844,7 @@ ac
ag
ar
ag
ag
aO
ac
ab
ab
@@ -1845,7 +1866,7 @@ aZ
be
bo
bs
bE
aK
bz
aZ
ab
@@ -1896,7 +1917,7 @@ aZ
bf
bl
br
bv
aN
bA
aZ
ab

View File

@@ -60135,9 +60135,6 @@
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
/obj/structure/disposalpipe/junction/flip{
dir = 8
},
@@ -60145,6 +60142,9 @@
/obj/effect/turf_decal/tile/purple{
dir = 4
},
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 1
},
/turf/open/floor/plasteel/white,
/area/science/research)
"cpx" = (
@@ -60947,9 +60947,6 @@
/obj/structure/cable/yellow{
icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 1
},
/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/tile/purple,
/obj/effect/turf_decal/tile/purple{
@@ -60958,6 +60955,10 @@
/obj/effect/turf_decal/tile/purple{
dir = 8
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
/turf/open/floor/plasteel/white,
/area/science/research)
"cqP" = (
@@ -61465,7 +61466,6 @@
/obj/structure/cable/yellow{
icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/door/firedoor,
/obj/structure/disposalpipe/segment,
/obj/machinery/door/airlock/research{
@@ -61477,6 +61477,7 @@
name = "biohazard containment shutters"
},
/obj/effect/turf_decal/delivery,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/science/storage)
"crU" = (
@@ -62156,11 +62157,11 @@
/obj/structure/cable/yellow{
icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/stripes/line{
dir = 9
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/science/storage)
"cth" = (
@@ -62531,24 +62532,21 @@
/obj/structure/cable/yellow{
icon_state = "1-4"
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 5
},
/obj/structure/disposalpipe/segment{
dir = 5
},
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 1
},
/turf/open/floor/plasteel,
/area/science/storage)
"ctY" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 10
},
/obj/structure/chair/stool,
/obj/structure/disposalpipe/segment{
dir = 10
@@ -62568,10 +62566,6 @@
/area/science/storage)
"cua" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/airalarm{
dir = 8;
pixel_x = 24
},
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
/area/science/storage)
@@ -63127,7 +63121,6 @@
/turf/open/floor/plasteel,
/area/science/storage)
"cuU" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -63668,12 +63661,12 @@
/turf/open/floor/plasteel,
/area/science/storage)
"cvW" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/structure/disposalpipe/segment,
/obj/effect/landmark/blobstart,
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
/turf/open/floor/plasteel,
/area/science/storage)
"cvX" = (
@@ -68931,13 +68924,13 @@
pixel_x = -25;
pixel_y = -5
},
/obj/machinery/airalarm{
dir = 1;
pixel_y = -22
},
/obj/effect/turf_decal/stripes/corner{
dir = 4
},
/obj/machinery/airalarm/unlocked{
dir = 1;
pixel_y = -22
},
/turf/open/floor/plasteel/white,
/area/science/mixing)
"cGm" = (
@@ -117641,7 +117634,7 @@ cmQ
cok
cpy
cqQ
cgq
crR
cti
ctZ
cuV

View File

@@ -1070,7 +1070,7 @@ B --><-- A
return closest_atom
proc/pick_closest_path(value, list/matches = get_fancy_list_of_atom_types())
/proc/pick_closest_path(value, list/matches = get_fancy_list_of_atom_types())
if (value == FALSE) //nothing should be calling us with a number, so this is safe
value = input("Enter type to find (blank for all, cancel to cancel)", "Search for type") as null|text
if (isnull(value))

View File

@@ -85,6 +85,10 @@
to_chat(user, "<span class='warning'>You're not ready to tackle!</span>")
return
if(!user.mob_has_gravity() ||!user.loc.has_gravity() || isspaceturf(user.loc))
to_chat(user, "<span class='warning'>You can't find your footing without gravity!</span>")
return
if(user.has_status_effect(STATUS_EFFECT_TASED)) // can't tackle if you just got tased
to_chat(user, "<span class='warning'>You can't tackle while tased!</span>")
return

View File

@@ -887,7 +887,7 @@
L.remove_status_effect(STATUS_EFFECT_CHOKINGSTRAND)
datum/status_effect/pacify
/datum/status_effect/pacify
id = "pacify"
status_type = STATUS_EFFECT_REPLACE
tick_interval = 1

View File

@@ -168,7 +168,7 @@ GLOBAL_LIST_EMPTY(active_alternate_appearances)
return TRUE
return FALSE
datum/atom_hud/alternate_appearance/basic/onePerson
/datum/atom_hud/alternate_appearance/basic/onePerson
var/mob/seer
/datum/atom_hud/alternate_appearance/basic/onePerson/mobShouldSee(mob/M)

View File

@@ -31,7 +31,14 @@
var/list/client_mobs_in_contents // This contains all the client mobs within this container
var/list/acted_explosions //for explosion dodging
var/datum/forced_movement/force_moving = null //handled soley by forced_movement.dm
var/movement_type = GROUND //Incase you have multiple types, you automatically use the most useful one. IE: Skating on ice, flippers on water, flying over chasm/space, etc.
/**
* In case you have multiple types, you automatically use the most useful one.
* IE: Skating on ice, flippers on water, flying over chasm/space, etc.
* I reccomend you use the movetype_handler system and not modify this directly, especially for living mobs.
*/
var/movement_type = GROUND
var/atom/movable/pulling
var/grab_state = 0
var/throwforce = 0

View File

@@ -133,7 +133,7 @@
icon_state = "knuckles"
w_class = 3
datum/gang_item/clothing/shades //Addition: Why not have cool shades on a gang member anyways?
/datum/gang_item/clothing/shades //Addition: Why not have cool shades on a gang member anyways?
name = "Cool Sunglasses"
id = "glasses"
cost = 5
@@ -313,13 +313,13 @@ datum/gang_item/clothing/shades //Addition: Why not have cool shades on a gang m
permeability_coefficient = 0.01
clothing_flags = NOSLIP
datum/gang_item/equipment/shield
/datum/gang_item/equipment/shield
name = "Riot Shield"
id = "riot_shield"
cost = 25
item_path = /obj/item/shield/riot
datum/gang_item/equipment/gangsheild
/datum/gang_item/equipment/gangsheild
name = "Tower Shield"
id = "metal"
cost = 45 //High block of melee and even higher for bullets

View File

@@ -49,6 +49,42 @@
/obj/effect/overlay/vis
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
anchored = TRUE
vis_flags = NONE
var/unused = 0 //When detected to be unused it gets set to world.time, after a while it gets removed
var/cache_expiration = 2 MINUTES // overlays which go unused for 2 minutes get cleaned up
vis_flags = VIS_INHERIT_DIR
///When detected to be unused it gets set to world.time, after a while it gets removed
var/unused = 0
///overlays which go unused for this amount of time get cleaned up
var/cache_expiration = 2 MINUTES
// /obj/effect/overlay/atmos_excited
// name = "excited group"
// icon = null
// icon_state = null
// anchored = TRUE // should only appear in vis_contents, but to be safe
// appearance_flags = RESET_TRANSFORM | TILE_BOUND
// invisibility = INVISIBILITY_ABSTRACT
// mouse_opacity = MOUSE_OPACITY_TRANSPARENT
// layer = ATMOS_GROUP_LAYER
// plane = ATMOS_GROUP_PLANE
// /obj/effect/overlay/light_visible
// name = ""
// icon = 'icons/effects/light_overlays/light_32.dmi'
// icon_state = "light"
// layer = O_LIGHTING_VISUAL_LAYER
// plane = O_LIGHTING_VISUAL_PLANE
// appearance_flags = RESET_COLOR | RESET_ALPHA | RESET_TRANSFORM
// mouse_opacity = MOUSE_OPACITY_TRANSPARENT
// alpha = 0
// vis_flags = NONE
// /obj/effect/overlay/light_cone
// name = ""
// icon = 'icons/effects/light_overlays/light_cone.dmi'
// icon_state = "light"
// layer = O_LIGHTING_VISUAL_LAYER
// plane = O_LIGHTING_VISUAL_PLANE
// appearance_flags = RESET_COLOR | RESET_ALPHA | RESET_TRANSFORM
// mouse_opacity = MOUSE_OPACITY_TRANSPARENT
// vis_flags = NONE
// alpha = 110

View File

@@ -166,7 +166,7 @@
last = C
break
obj/item/rcl/proc/getMobhook(mob/to_hook)
/obj/item/rcl/proc/getMobhook(mob/to_hook)
if(listeningTo == to_hook)
return
if(listeningTo)

View File

@@ -306,18 +306,6 @@ GENETICS SCANNER
if(T.name == "fluffy tongue")
temp_message += " <span class='danger'>Subject is suffering from a fluffified tongue. Suggested cure: Yamerol or a tongue transplant.</span>"
//HECK
else if(istype(O, /obj/item/organ/genital/penis))
var/obj/item/organ/genital/penis/P = O
if(P.length>20)
temp_message += " <span class='info'>Subject has a sizeable gentleman's organ at [P.length] inches.</span>"
else if(istype(O, /obj/item/organ/genital/breasts))
var/obj/item/organ/genital/breasts/Br = O
if(Br.cached_size>5)
temp_message += " <span class='info'>Subject has a sizeable bosom with a [Br.size] cup.</span>"
//GENERAL HANDLER
if(!damage_message)

View File

@@ -258,7 +258,7 @@
shield_flags = SHIELD_FLAGS_DEFAULT
max_integrity = 300
obj/item/shield/riot/bullet_proof
/obj/item/shield/riot/bullet_proof
name = "bullet resistant shield"
desc = "A far more frail shield made of resistant plastics and kevlar meant to block ballistics."
armor = list("melee" = 30, "bullet" = 80, "laser" = 0, "energy" = 0, "bomb" = -40, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 50)

View File

@@ -639,7 +639,7 @@
new /obj/item/bikehorn(src)
new /obj/item/implanter/sad_trombone(src)
obj/item/storage/backpack/duffelbag/syndie/shredderbundle
/obj/item/storage/backpack/duffelbag/syndie/shredderbundle
desc = "A large duffel bag containing two CX Shredders, some magazines, an elite hardsuit, and a chest rig."
/obj/item/storage/backpack/duffelbag/syndie/shredderbundle/PopulateContents()

View File

@@ -857,7 +857,7 @@
icon_state = "2sheath"
item_state = "katana" //this'll do.
w_class = WEIGHT_CLASS_BULKY
fitting_swords = list(/obj/item/melee/smith/wakizashi, /obj/item/melee/smith/twohand/katana, /obj/item/melee/bokken)
fitting_swords = list(/obj/item/melee/smith/wakizashi, /obj/item/melee/smith/twohand/katana, /obj/item/melee/bokken, /obj/item/katana)
starting_sword = null
/obj/item/storage/belt/sabre/twin/ComponentInitialize()

View File

@@ -275,7 +275,7 @@
for(var/i in 1 to 7)
new /obj/item/grenade/flashbang(src)
obj/item/storage/box/stingbangs
/obj/item/storage/box/stingbangs
name = "box of stingbangs (WARNING)"
desc = "<B>WARNING: These devices are extremely dangerous and can cause severe injuries or death in repeated use.</B>"
icon_state = "secbox"

View File

@@ -269,21 +269,22 @@
icon_state = "refill_donksoft"
var/product = /obj/item/melee/baton/stunsword //what it makes
var/list/fromitem = list(/obj/item/melee/baton, /obj/item/melee/baton/loaded) //what it needs
afterattack(obj/O, mob/user as mob)
if(istype(O, product))
to_chat(user,"<span class='warning'>[O] is already modified!")
else if(O.type in fromitem) //makes sure O is the right thing
var/obj/item/melee/baton/B = O
if(!B.cell) //checks for a powercell in the baton. If there isn't one, continue. If there is, warn the user to take it out
new product(usr.loc) //spawns the product
user.visible_message("<span class='warning'>[user] modifies [O]!","<span class='warning'>You modify the [O]!")
qdel(O) //Gets rid of the baton
qdel(src) //gets rid of the kit
else
to_chat(user,"<span class='warning'>Remove the powercell first!</span>") //We make this check because the stunsword starts without a battery.
/obj/item/ssword_kit/afterattack(obj/O, mob/user as mob)
if(istype(O, product))
to_chat(user,"<span class='warning'>[O] is already modified!")
return
if(O.type in fromitem) //makes sure O is the right thing
var/obj/item/melee/baton/B = O
if(!B.cell) //checks for a powercell in the baton. If there isn't one, continue. If there is, warn the user to take it out
new product(usr.loc) //spawns the product
user.visible_message("<span class='warning'>[user] modifies [O]!","<span class='warning'>You modify the [O]!")
qdel(O) //Gets rid of the baton
qdel(src) //gets rid of the kit
else
to_chat(user, "<span class='warning'> You can't modify [O] with this kit!</span>")
to_chat(user,"<span class='warning'>Remove the powercell first!</span>") //We make this check because the stunsword starts without a battery.
else
to_chat(user, "<span class='warning'> You can't modify [O] with this kit!</span>")
//Makeshift stun baton. Replacement for stun gloves.
/obj/item/melee/baton/cattleprod

View File

@@ -56,17 +56,17 @@
desc = "A direction sign, pointing out which way the Cafe is."
icon_state = "direction_cafe"
obj/structure/sign/directions/rooms
/obj/structure/sign/directions/rooms
name = "room"
desc = "Room numbers, helps others find you!"
icon_state = "roomnum"
obj/structure/sign/directions/dorms
/obj/structure/sign/directions/dorms
name = "dorm"
desc = "Dorm numbers, help others find you, or you find others."
icon_state = "dormnum"
obj/structure/sign/directions/cells
/obj/structure/sign/directions/cells
name = "room"
desc = "So the less fortunate amongst us know where they'll be staying."
icon_state = "cellnum"

View File

@@ -1,12 +1,5 @@
/turf/open
plane = FLOOR_PLANE
/// Does dirt buildup happen on us?
var/dirt_buildup_allowed = FALSE
/// Dirt level.
var/dirtyness = 0
/// Dirt level to spawn dirt. Null to use config.
var/dirt_spawn_threshold
/// Slowdown applied to mobs on us.
var/slowdown = 0 //negative for faster, positive for slower
var/postdig_icon_change = FALSE
@@ -18,6 +11,15 @@
var/clawfootstep = null
var/heavyfootstep = null
/// Dirtyness system, cit specific.
/// Does dirt buildup happen on us?
var/dirt_buildup_allowed = FALSE
/// Dirt level.
var/dirtyness = 0
/// Dirt level to spawn dirt. Null to use config.
var/dirt_spawn_threshold
/turf/open/ComponentInitialize()
. = ..()
if(wet)

View File

@@ -10,6 +10,8 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr
plane = OPENSPACE_BACKDROP_PLANE
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
layer = SPLASHSCREEN_LAYER
//I don't know why the others are aligned but I shall do the same.
vis_flags = VIS_INHERIT_ID
/turf/open/transparent/openspace
name = "open space"
@@ -17,6 +19,7 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr
icon_state = "transparent"
baseturfs = /turf/open/transparent/openspace
CanAtmosPassVertical = ATMOS_PASS_YES
intact = FALSE //this means wires go on top
//mouse_opacity = MOUSE_OPACITY_TRANSPARENT
var/can_cover_up = TRUE
var/can_build_on = TRUE
@@ -32,10 +35,14 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr
/turf/open/transparent/openspace/show_bottom_level()
return FALSE
/turf/open/transparent/openspace/Initialize() // handle plane and layer here so that they don't cover other obs/turfs in Dream Maker
/turf/open/openspace/Initialize() // handle plane and layer here so that they don't cover other obs/turfs in Dream Maker
. = ..()
vis_contents += GLOB.openspace_backdrop_one_for_all //Special grey square for projecting backdrop darkness filter on it.
return INITIALIZE_HINT_LATELOAD
/turf/open/openspace/LateInitialize()
. = ..()
// AddElement(/datum/element/turf_z_transparency, FALSE)
/turf/open/transparent/openspace/can_have_cabling()
if(locate(/obj/structure/lattice/catwalk, src))
@@ -95,6 +102,7 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr
return
if(L)
if(R.use(1))
qdel(L)
to_chat(user, "<span class='notice'>You construct a catwalk.</span>")
playsound(src, 'sound/weapons/genhit.ogg', 50, TRUE)
new/obj/structure/lattice/catwalk(src)
@@ -148,9 +156,22 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr
/turf/open/transparent/openspace/icemoon
name = "ice chasm"
baseturfs = /turf/open/transparent/openspace/icemoon
can_cover_up = TRUE
can_build_on = TRUE
initial_gas_mix = ICEMOON_DEFAULT_ATMOS
planetary_atmos = TRUE
var/replacement_turf = /turf/open/floor/plating/asteroid/snow/icemoon
/turf/open/transparent/openspace/icemoon/Initialize()
. = ..()
var/turf/T = below()
// if(T.flags_1 & NO_RUINS_1)
// ChangeTurf(replacement_turf, null, CHANGETURF_IGNORE_AIR)
// return
// if(!ismineralturf(T))
// return
var/turf/closed/mineral/M = T
M.mineralAmt = 0
M.gets_drilled()
baseturfs = /turf/open/transparent/openspace/icemoon //This is to ensure that IF random turf generation produces a openturf, there won't be other turfs assigned other than openspace.
/turf/open/transparent/openspace/icemoon/can_zFall(atom/movable/A, levels = 1, turf/target)
return TRUE

View File

@@ -61,7 +61,12 @@
/turf/open/transparent/glass/Initialize()
icon_state = "" //Prevent the normal icon from appearing behind the smooth overlays
return ..()
..()
return INITIALIZE_HINT_LATELOAD
/turf/open/floor/glass/LateInitialize()
. = ..()
// AddElement(/datum/element/turf_z_transparency, TRUE)
/turf/open/transparent/glass/wrench_act(mob/living/user, obj/item/I)
to_chat(user, "<span class='notice'>You begin removing glass...</span>")

View File

@@ -20,6 +20,7 @@
dynamic_lighting = DYNAMIC_LIGHTING_DISABLED
bullet_bounce_sound = null
vis_flags = VIS_INHERIT_ID //when this be added to vis_contents of something it be associated with something on clicking, important for visualisation of turf in openspace and interraction with openspace that show you turf.
/turf/open/space/basic/New() //Do not convert to Initialize
//This is used to optimize the map loader

View File

@@ -176,6 +176,14 @@ GLOBAL_LIST(topic_status_cache)
/world/Topic(T, addr, master, key)
TGS_TOPIC //redirect to server tools if necessary
if(!SSfail2topic)
return "Server not initialized."
if(SSfail2topic.IsRateLimited(addr))
return "Rate limited."
if(length(T) > CONFIG_GET(number/topic_max_size))
return "Payload too large!"
var/static/list/topic_handlers = TopicHandlers()
var/list/input = params2list(T)

View File

@@ -22,7 +22,7 @@
. = ..()
desc = initial(desc)
obj/item/shield/riot/ratvarian/proc/calc_bash_mult()
/obj/item/shield/riot/ratvarian/proc/calc_bash_mult()
var/bash_mult = 0
if(!dam_absorbed)
return 1

View File

@@ -149,7 +149,7 @@
transform = matrix() * 2
animate(src, transform = matrix() * 0.5, time = 30, flags = ANIMATION_END_NOW)
obj/structure/destructible/clockwork/massive/celestial_gateway/Destroy()
/obj/structure/destructible/clockwork/massive/celestial_gateway/Destroy()
STOP_PROCESSING(SSprocessing, src)
if(!purpose_fulfilled)
var/area/gate_area = get_area(src)

View File

@@ -103,29 +103,29 @@
name = "knotted dildo"
attack_verb = list("penetrated", "knotted", "slapped", "inseminated")
obj/item/dildo/human
/obj/item/dildo/human
dildo_shape = "human"
name = "human dildo"
attack_verb = list("penetrated", "slapped", "inseminated")
obj/item/dildo/plain
/obj/item/dildo/plain
dildo_shape = "plain"
name = "plain dildo"
attack_verb = list("penetrated", "slapped", "inseminated")
obj/item/dildo/flared
/obj/item/dildo/flared
dildo_shape = "flared"
name = "flared dildo"
attack_verb = list("penetrated", "slapped", "neighed", "gaped", "prolapsed", "inseminated")
obj/item/dildo/flared/huge
/obj/item/dildo/flared/huge
name = "literal horse cock"
desc = "THIS THING IS HUGE!"
dildo_size = 4
force = 10
hitsound = 'sound/weapons/klonk.ogg'
obj/item/dildo/custom
/obj/item/dildo/custom
name = "customizable dildo"
desc = "Thanks to significant advances in synthetic nanomaterials, this dildo is capable of taking on many different forms to fit the user's preferences! Pricy!"
can_customize = TRUE
@@ -136,9 +136,9 @@ obj/item/dildo/custom
// Suicide acts, by request
/obj/item/dildo/proc/manual_suicide(mob/living/user)
user.visible_message("<span class='suicide'>[user] finally finishes deepthroating the [src], and their life.</span>")
user.adjustOxyLoss(200)
user.death(0)
user.visible_message("<span class='suicide'>[user] finally finishes deepthroating the [src], and their life.</span>")
user.adjustOxyLoss(200)
user.death(0)
/obj/item/dildo/suicide_act(mob/living/user)
// is_knotted = ((src.dildo_shape == "knotted")?"They swallowed the knot":"Their face is turning blue")

View File

@@ -259,7 +259,7 @@
new /obj/item/stack/sheet/metal (loc, 5)
qdel(src)
obj/machinery/portable_atmospherics/canister/welder_act(mob/living/user, obj/item/I)
/obj/machinery/portable_atmospherics/canister/welder_act(mob/living/user, obj/item/I)
..()
if(user.a_intent == INTENT_HARM)
return FALSE

View File

@@ -1,4 +1,5 @@
obj/machinery/atmospherics/pipe/simple/multiz ///This is an atmospherics pipe which can relay air up a deck (Z+1). It currently only supports being on pipe layer 1
/// This is an atmospherics pipe which can relay air up/down a deck.
/obj/machinery/atmospherics/pipe/simple/multiz
name = "multi deck pipe adapter"
desc = "An adapter which allows pipes to connect to other pipenets on different decks."
icon_state = "multiz_pipe"
@@ -24,6 +25,4 @@ obj/machinery/atmospherics/pipe/simple/multiz ///This is an atmospherics pipe wh
if(above)
nodes += above
above.nodes += src //Two way travel :)
return ..()
else
return ..()
return ..()

View File

@@ -35,7 +35,7 @@
name = "Simple Drink"
reward = 1500
datum/bounty/reagent/simple_drink/New()
/datum/bounty/reagent/simple_drink/New()
// Don't worry about making this comprehensive. It doesn't matter if some drinks are skipped.
var/static/list/possible_reagents = list(\
/datum/reagent/consumable/ethanol/antifreeze,\
@@ -91,7 +91,7 @@ datum/bounty/reagent/simple_drink/New()
name = "Complex Drink"
reward = 4000
datum/bounty/reagent/complex_drink/New()
/datum/bounty/reagent/complex_drink/New()
// Don't worry about making this comprehensive. It doesn't matter if some drinks are skipped.
var/static/list/possible_reagents = list(\
/datum/reagent/consumable/ethanol/atomicbomb,\
@@ -124,7 +124,7 @@ datum/bounty/reagent/complex_drink/New()
reward = 2750
required_volume = 30
datum/bounty/reagent/chemical/New()
/datum/bounty/reagent/chemical/New()
// Don't worry about making this comprehensive. It doesn't matter if some chems are skipped.
var/static/list/possible_reagents = list(\
/datum/reagent/medicine/leporazine,\

View File

@@ -473,7 +473,7 @@
//Soft Suits
//Blanket
datum/export/gear/space/helmet
/datum/export/gear/space/helmet
cost = 55
unit_name = "space helmet"
export_types = list(/obj/item/clothing/head/helmet/space)
@@ -485,7 +485,7 @@ datum/export/gear/space/helmet
export_types = list(/obj/item/clothing/suit/space)
include_subtypes = TRUE
datum/export/gear/space/helmet/plasma
/datum/export/gear/space/helmet/plasma
cost = 100
unit_name = "plasmaman space helmet"
export_types = list(/obj/item/clothing/suit/space/eva/plasmaman)
@@ -495,7 +495,7 @@ datum/export/gear/space/helmet/plasma
unit_name = "plasmaman space suit"
export_types = list(/obj/item/clothing/suit/space/eva/plasmaman)
datum/export/gear/space/helmet/synda
/datum/export/gear/space/helmet/synda
cost = 150 //Flash proof
unit_name = "syndicate space helmet"
export_types = list(/obj/item/clothing/head/helmet/space/syndicate)
@@ -510,7 +510,7 @@ datum/export/gear/space/helmet/synda
//Glasses
//Blanket
datum/export/gear/glasses //glasses are not worth selling
/datum/export/gear/glasses //glasses are not worth selling
cost = 3
unit_name = "glasses"
export_types = list(/obj/item/clothing/glasses)

View File

@@ -17,7 +17,7 @@
/obj/item/clothing/mask/gas/examine(mob/user)
. = ..()
if(flavor_adjust)
. += "<span class='info'>Alt-click to toggle identity concealment. it's currently <b>[flags_inv & HIDEFACE ? "on" : "off"]</b>.</span>"
. += "<span class='info'>Alt-click to toggle identity concealment. It's currently <b>[flags_inv & HIDEFACE ? "on" : "off"]</b>.</span>"
/obj/item/clothing/mask/gas/AltClick(mob/user)
. = ..()
@@ -143,14 +143,17 @@
"Blanc" = image(icon = src.icon, icon_state = "mime"),
"Excité" = image(icon = src.icon, icon_state = "sexymime"),
"Triste" = image(icon = src.icon, icon_state = "sadmime"),
"Effrayé" = image(icon = src.icon, icon_state = "scaredmime")
"Effrayé" = image(icon = src.icon, icon_state = "scaredmime"),
"Timid Woman" = image(icon = src.icon, icon_state = "timidwoman"),
"Timid Man" = image(icon = src.icon, icon_state = "timidman")
)
/obj/item/clothing/mask/gas/mime/ui_action_click(mob/user)
if(!istype(user) || user.incapacitated())
return
var/static/list/options = list("Blanc" = "mime", "Triste" = "sadmime", "Effrayé" = "scaredmime", "Excité" ="sexymime")
var/static/list/options = list("Blanc" = "mime", "Triste" = "sadmime", "Effrayé" = "scaredmime", "Excité" ="sexymime",
"Timid Woman" = "timidwoman", "Timid Man" = "timidman")
var/choice = show_radial_menu(user,src, mimemask_designs, custom_check = FALSE, radius = 36, require_near = TRUE)
@@ -170,6 +173,20 @@
item_state = "sexymime"
actions_types = list()
/obj/item/clothing/mask/gas/timidcostume
name = "timid woman mask"
desc = "Most people who wear these are not really that timid."
clothing_flags = ALLOWINTERNALS
icon_state = "timidwoman"
item_state = "timidwoman"
flags_cover = MASKCOVERSEYES
resistance_flags = FLAMMABLE
/obj/item/clothing/mask/gas/timidcostume/man
name = "timid man mask"
icon_state = "timidman"
item_state = "timidman"
/obj/item/clothing/mask/gas/monkeymask
name = "monkey mask"
desc = "A mask used when acting as a monkey."

View File

@@ -289,7 +289,7 @@
//VERY SUPER BADASS NECKERCHIEFS//
//////////////////////////////////
obj/item/clothing/neck/neckerchief
/obj/item/clothing/neck/neckerchief
icon = 'icons/obj/clothing/masks.dmi' //In order to reuse the bandana sprite
w_class = WEIGHT_CLASS_TINY
var/sourceBandanaType

View File

@@ -413,6 +413,22 @@
var/wallcharges = 4
var/newlocobject = null
/obj/item/clothing/shoes/timidcostume
name = "timid woman boots"
desc = "Ready to rock your hips back and forth? These boots have a polychromic finish."
icon_state = "timidwoman"
item_state = "timidwoman"
/obj/item/clothing/shoes/timidcostume/ComponentInitialize()
. = ..()
AddElement(/datum/element/polychromic, list("#0094FF"), 1)
/obj/item/clothing/shoes/timidcostume/man
name = "timid man shoes"
desc = "Ready to go kart racing? These shoes have a polychromic finish."
icon_state = "timidman"
item_state = "timidman"
/obj/item/clothing/shoes/wallwalkers/equipped(mob/user,slot)
. = ..()
if(slot == SLOT_SHOES)

View File

@@ -1088,6 +1088,36 @@
icon_state = "winterhood_poly"
item_state = "winterhood_poly"
/obj/item/clothing/suit/hooded/wintercoat/timidcostume
name = "timid woman hoodie"
desc = "A snug, tight yet warm outfit with belts wrapped around it. Looks to be made of polychromic materials."
icon_state = "timidwoman"
item_state = "timidwoman"
hoodtype = /obj/item/clothing/head/hooded/winterhood/timidcostume
/obj/item/clothing/suit/hooded/wintercoat/timidcostume/ComponentInitialize()
. = ..()
AddElement(/datum/element/polychromic, list("#EB0C07", "#5E2400", "#CEA100"), 3)
/obj/item/clothing/head/hooded/winterhood/timidcostume
name = "timid woman hood"
desc = "A hood attached to the hoodie."
icon_state = "timidwoman"
item_state = "timidwoman"
/obj/item/clothing/suit/hooded/wintercoat/timidcostume/man
name = "timid man hoodie"
desc = "A snug, tight yet warm outfit a belt wrapped around it. Looks to be made of polychromic materials."
icon_state = "timidman"
item_state = "timidman"
hoodtype = /obj/item/clothing/head/hooded/winterhood/timidcostume/man
/obj/item/clothing/head/hooded/winterhood/timidcostume/man
name = "timid man hood"
icon_state = "timidman"
item_state = "timidman"
/obj/item/clothing/suit/striped_sweater
name = "striped sweater"
desc = "Reminds you of someone, but you just can't put your finger on it..."

View File

@@ -61,8 +61,9 @@
if(!hood)
to_chat(loc, "<span class='warning'>[src] seems to be missing its hood..</span>")
return
hood.atom_colours = atom_colours.Copy()
hood.update_atom_colour()
if(atom_colours)
hood.atom_colours = atom_colours.Copy()
hood.update_atom_colour()
if(!suittoggled)
if(ishuman(src.loc))
var/mob/living/carbon/human/H = src.loc
@@ -198,8 +199,9 @@
if(!helmet)
to_chat(H, "<span class='warning'>[src] seems to be missing its helmet..</span>")
return
helmet.atom_colours = atom_colours.Copy()
helmet.update_atom_colour()
if(atom_colours)
helmet.atom_colours = atom_colours.Copy()
helmet.update_atom_colour()
if(!suittoggled)
if(ishuman(src.loc))
if(H.wear_suit != src)

View File

@@ -144,22 +144,23 @@ In my current plan for it, 'solid' will be defined as anything with density == 1
if(L && (L.density || prob(10)))
L.ex_act(EXPLODE_HEAVY)
obj/effect/immovablerod/on_attack_hand(mob/living/user, act_intent = user.a_intent, unarmed_attack_flags)
if(ishuman(user))
var/mob/living/carbon/human/U = user
if(U.job in list("Research Director"))
playsound(src, 'sound/effects/meteorimpact.ogg', 100, 1)
for(var/mob/M in urange(8, src))
if(!M.stat)
shake_camera(M, 2, 3)
if(wizard)
U.visible_message("<span class='boldwarning'>[src] transforms into [wizard] as [U] suplexes them!</span>", "<span class='warning'>As you grab [src], it suddenly turns into [wizard] as you suplex them!</span>")
to_chat(wizard, "<span class='boldwarning'>You're suddenly jolted out of rod-form as [U] somehow manages to grab you, slamming you into the ground!</span>")
wizard.Stun(60)
wizard.apply_damage(25, BRUTE)
qdel(src)
else
U.visible_message("<span class='boldwarning'>[U] suplexes [src] into the ground!</span>", "<span class='warning'>You suplex [src] into the ground!</span>")
new /obj/structure/festivus/anchored(drop_location())
new /obj/effect/anomaly/flux(drop_location())
qdel(src)
/obj/effect/immovablerod/on_attack_hand(mob/living/user, act_intent = user.a_intent, unarmed_attack_flags)
if(!ishuman(user))
return
var/mob/living/carbon/human/U = user
if(U.job in list("Research Director"))
playsound(src, 'sound/effects/meteorimpact.ogg', 100, TRUE)
for(var/mob/M in urange(8, src))
if(!M.stat)
shake_camera(M, 2, 3)
if(wizard)
U.visible_message("<span class='boldwarning'>[src] transforms into [wizard] as [U] suplexes them!</span>", "<span class='warning'>As you grab [src], it suddenly turns into [wizard] as you suplex them!</span>")
to_chat(wizard, "<span class='boldwarning'>You're suddenly jolted out of rod-form as [U] somehow manages to grab you, slamming you into the ground!</span>")
wizard.Stun(60)
wizard.apply_damage(25, BRUTE)
qdel(src)
else
U.visible_message("<span class='boldwarning'>[U] suplexes [src] into the ground!</span>", "<span class='warning'>You suplex [src] into the ground!</span>")
new /obj/structure/festivus/anchored(drop_location())
new /obj/effect/anomaly/flux(drop_location())
qdel(src)

View File

@@ -25,14 +25,14 @@
var/datum/effect_system/smoke_spread/smoke = new
smoke.set_up(1, spawn_location)
smoke.start()
trader.visible_message("<b>[src]</b> suddenly appears in a puff of smoke!")
trader.visible_message("<b>[trader]</b> suddenly appears in a puff of smoke!")
/datum/round_event/travelling_trader/announce(fake)
priority_announce("A mysterious figure has been detected on sensors at [get_area(spawn_location)]", "Mysterious Figure")
/datum/round_event/travelling_trader/end()
if(trader)
trader.visible_message("The <b>[src]</b> has given up on waiting!")
if(trader) // the /datum/round_event/travelling_trader has given up on waiting!
trader.visible_message("The <b>[trader]</b> has given up on waiting!")
qdel(trader)
//the actual trader mob
@@ -188,18 +188,18 @@
/mob/living/simple_animal/hostile/netherworld/blankbody = 1,
/mob/living/simple_animal/hostile/retaliate/goose = 1)
mob/living/carbon/human/dummy/travelling_trader/animal_hunter/Initialize()
/mob/living/carbon/human/dummy/travelling_trader/animal_hunter/Initialize()
. = ..()
acceptance_speech = pick(list("This lifeform shall make for a great stew, thank you.", "This lifeform shall be of a true use to our cause, thank you.", "The lifeform is adequate. Goodbye.", "This lifeform shall make a great addition to my collection."))
..()
/mob/living/carbon/human/dummy/travelling_trader/animal_hunter/check_item(var/obj/item/supplied_item) //item is likely to be in contents of whats supplied
/mob/living/carbon/human/dummy/travelling_trader/animal_hunter/check_item(obj/item/supplied_item) //item is likely to be in contents of whats supplied
for(var/atom/something in supplied_item.contents)
if(istype(something, requested_item))
qdel(something) //typically things holding mobs release the mob when the container is deleted, so delete the mob first here
return TRUE
return FALSE
/mob/living/carbon/human/dummy/travelling_trader/animal_hunter/give_reward(var/mob/giver) //the reward is actually given in a jar, because releasing it onto the station might be a bad idea
/mob/living/carbon/human/dummy/travelling_trader/animal_hunter/give_reward(mob/giver) //the reward is actually given in a jar, because releasing it onto the station might be a bad idea
var/obj/item/pet_carrier/bluespace/jar = new(get_turf(src))
var/chosen_animal = pickweight(possible_rewards)
var/mob/living/new_animal = new chosen_animal(jar)
@@ -223,6 +223,7 @@ mob/living/carbon/human/dummy/travelling_trader/animal_hunter/Initialize()
/obj/structure/reagent_dispensers/keg/quintuple_sec = 3)
/mob/living/carbon/human/dummy/travelling_trader/bartender/Initialize() //pick a subtype of ethanol that isn't found in the default set of the booze dispensers reagents
. = ..() // RETURN A HINT.
requested_item = pick(subtypesof(/datum/reagent/consumable/ethanol) - list(/datum/reagent/consumable/ethanol/beer,
/datum/reagent/consumable/ethanol/kahlua,
/datum/reagent/consumable/ethanol/whiskey,
@@ -242,7 +243,6 @@ mob/living/carbon/human/dummy/travelling_trader/animal_hunter/Initialize()
/datum/reagent/consumable/ethanol/triple_sec,
/datum/reagent/consumable/ethanol/sake,
/datum/reagent/consumable/ethanol/applejack))
..()
/mob/living/carbon/human/dummy/travelling_trader/bartender/check_item(var/obj/item/supplied_item) //you need to check its reagents
if(istype(supplied_item, /obj/item/reagent_containers))

View File

@@ -308,7 +308,7 @@
tastes = list("cake" = 5, "sweetness" = 1, "clouds" = 1)
foodtype = GRAIN | DAIRY | SUGAR
obj/item/reagent_containers/food/snacks/store/cake/pound_cake
/obj/item/reagent_containers/food/snacks/store/cake/pound_cake
name = "pound cake"
desc = "A condensed cake made for filling people up quickly."
icon_state = "pound_cake"

View File

@@ -21,7 +21,7 @@
)
result = /obj/item/reagent_containers/food/snacks/donut/chaos
datum/crafting_recipe/food/donut/meat
/datum/crafting_recipe/food/donut/meat
time = 15
name = "Meat donut"
reqs = list(

View File

@@ -34,16 +34,14 @@
/obj/item/grown/cotton/attack_self(mob/user)
user.show_message("<span class='notice'>You pull some [cotton_name] out of the [name]!</span>", MSG_VISUAL)
var/seed_modifier = 0
if(seed)
seed_modifier = round(seed.potency / 25)
var/obj/item/stack/cotton = new cotton_type(user.loc, 1 + seed_modifier)
var/old_cotton_amount = cotton.amount
for(var/obj/item/stack/ST in user.loc)
if(ST != cotton && istype(ST, cotton_type) && ST.amount < ST.max_amount)
ST.attackby(cotton, user)
if(cotton.amount > old_cotton_amount)
to_chat(user, "<span class='notice'>You add the newly-formed [cotton_name] to the stack. It now contains [cotton.amount] [cotton_name].</span>")
var/cottonAmt = 1 + round(seed.potency / 25) // cotton inhand we're holding
for(var/obj/item/grown/cotton/ctn in user.loc) // cotton on the floor
if(ctn.type != type)
continue
cottonAmt += 1 + round(ctn.seed.potency / 25)
qdel(ctn)
new cotton_type(user.drop_location(), cottonAmt)
// above code stolen from grass
qdel(src)
//reinforced mutated variant

View File

@@ -24,7 +24,7 @@
var/yield = 3 // Amount of growns created per harvest. If is -1, the plant/shroom/weed is never meant to be harvested.
var/potency = 10 // The 'power' of a plant. Generally effects the amount of reagent in a plant, also used in other ways.
var/growthstages = 6 // Amount of growth sprites the plant has.
var/instability = 5 //Chance that a plant will mutate in each stage of it's life.
var/instability = 5 //Chance that a plant will mutate in each stage of it's life.
var/rarity = 0 // How rare the plant is. Used for giving points to cargo when shipping off to CentCom.
var/list/mutatelist = list() // The type of plants that this plant can mutate into.
var/list/genes = list() // Plant genes are stored here, see plant_genes.dm for more info.
@@ -105,7 +105,7 @@
S.reagents_add = reagents_add.Copy() // Faster than grabbing the list from genes.
return S
obj/item/seeds/proc/is_gene_forbidden(typepath)
/obj/item/seeds/proc/is_gene_forbidden(typepath)
return (typepath in forbiddengenes)

View File

@@ -292,7 +292,7 @@
activate_pin(2)
// Required for making the connector port script work
obj/item/integrated_circuit/atmospherics/connector/portableConnectorReturnAir()
/obj/item/integrated_circuit/atmospherics/connector/portableConnectorReturnAir()
return air_contents

View File

@@ -1,4 +1,4 @@
datum/sprite_accessory/caps
/datum/sprite_accessory/caps
icon = 'icons/mob/mutant_bodyparts.dmi'
color_src = HAIR
relevant_layers = list(BODY_ADJ_LAYER)

View File

@@ -11,6 +11,11 @@
// please make sure they're sorted alphabetically and categorized
/datum/sprite_accessory/underwear/socks/garter
name = "Garter"
icon_state = "garter"
has_color = TRUE
/datum/sprite_accessory/underwear/socks/socks_knee
name = "Knee-high"
icon_state = "socks_knee"

View File

@@ -757,7 +757,7 @@
icon_state = "husky"
matrixed_sections = MATRIX_RED_GREEN
datum/sprite_accessory/tails/mam_tails/insect
/datum/sprite_accessory/tails/mam_tails/insect
name = "Insect"
icon_state = "insect"
matrixed_sections = MATRIX_RED

View File

@@ -923,7 +923,8 @@
/obj/item/cyborg_clamp,
/obj/item/stack/marker_beacon,
/obj/item/destTagger,
/obj/item/stack/packageWrap)
/obj/item/stack/packageWrap,
/obj/item/card/id/miningborg)
emag_modules = list(/obj/item/borg/stun)
ratvar_modules = list(
/obj/item/clockwork/slab/cyborg/miner,

View File

@@ -109,7 +109,7 @@
to_chat(user, "<span class='info'>You strap the armor plating to [A] and sharpen [A.p_their()] claws with the nail filer. This was a great idea.</span>")
qdel(src)
mob/living/simple_animal/hostile/bear/butter //The mighty companion to Cak. Several functions used from it.
/mob/living/simple_animal/hostile/bear/butter //The mighty companion to Cak. Several functions used from it.
name = "Terrygold"
icon_state = "butterbear"
icon_living = "butterbear"
@@ -155,7 +155,7 @@ mob/living/simple_animal/hostile/bear/butter //The mighty companion to Cak. Seve
to_chat(src, "<span class='notice'>Your name is now <b>\"new_name\"</b>!</span>")
name = new_name
mob/living/simple_animal/hostile/bear/butter/AttackingTarget() //Makes some attacks by the butter bear slip those who dare cross its path.
/mob/living/simple_animal/hostile/bear/butter/AttackingTarget() //Makes some attacks by the butter bear slip those who dare cross its path.
if(isliving(target))
var/mob/living/L = target
if((L.mobility_flags & MOBILITY_STAND))

View File

@@ -389,7 +389,6 @@
name = "Wrap"
panel = "Spider"
active = FALSE
datum/action/spell_action/action = null
desc = "Wrap something or someone in a cocoon. If it's a living being, you'll also consume them, allowing you to lay eggs."
ranged_mousepointer = 'icons/effects/wrap_target.dmi'
action_icon = 'icons/mob/actions/actions_animal.dmi'

View File

@@ -511,7 +511,7 @@
DestroyObjectsInDirection(direction)
mob/living/simple_animal/hostile/proc/DestroySurroundings() // for use with megafauna destroying everything around them
/mob/living/simple_animal/hostile/proc/DestroySurroundings() // for use with megafauna destroying everything around them
if(environment_smash)
EscapeConfinement()
for(var/dir in GLOB.cardinals)

View File

@@ -190,5 +190,5 @@
* Arguments:
* * datum/beam/vine - The vine to be removed from the list.
*/
mob/living/simple_animal/hostile/venus_human_trap/proc/remove_vine(datum/beam/vine, force)
/mob/living/simple_animal/hostile/venus_human_trap/proc/remove_vine(datum/beam/vine, force)
vines -= vine

View File

@@ -83,6 +83,8 @@
//Headset for Poly to yell at engineers :)
var/obj/item/radio/headset/ears = null
/// spawns with headset
var/spawns_with_headset = FALSE
//The thing the parrot is currently interested in. This gets used for items the parrot wants to pick up, mobs it wants to steal from,
//mobs it wants to attack or mobs that have attacked it
@@ -105,13 +107,14 @@
/mob/living/simple_animal/parrot/Initialize()
. = ..()
if(!ears)
var/headset = pick(/obj/item/radio/headset/headset_sec, \
/obj/item/radio/headset/headset_eng, \
/obj/item/radio/headset/headset_med, \
/obj/item/radio/headset/headset_sci, \
/obj/item/radio/headset/headset_cargo)
ears = new headset(src)
if(spawns_with_headset)
if(!ears)
var/headset = pick(/obj/item/radio/headset/headset_sec, \
/obj/item/radio/headset/headset_eng, \
/obj/item/radio/headset/headset_med, \
/obj/item/radio/headset/headset_sci, \
/obj/item/radio/headset/headset_cargo)
ears = new headset(src)
parrot_sleep_dur = parrot_sleep_max //In case someone decides to change the max without changing the duration var
@@ -881,6 +884,7 @@
speak = list("Poly wanna cracker!", ":e Check the crystal, you chucklefucks!",":e Wire the solars, you lazy bums!",":e WHO TOOK THE DAMN HARDSUITS?",":e OH GOD ITS ABOUT TO DELAMINATE CALL THE SHUTTLE")
gold_core_spawnable = NO_SPAWN
speak_chance = 3
spawns_with_headset = TRUE
var/memory_saved = FALSE
var/rounds_survived = 0
var/longest_survival = 0

View File

@@ -3,14 +3,14 @@
//////////////////////////////////////////////////////
/mob/proc/get_top_level_mob()
if(istype(src.loc,/mob)&&src.loc!=src)
var/mob/M=src.loc
if(ismob(src.loc) && src.loc != src)
var/mob/M = src.loc
return M.get_top_level_mob()
return src
proc/get_top_level_mob(var/mob/S)
if(istype(S.loc,/mob)&&S.loc!=S)
var/mob/M=S.loc
/proc/get_top_level_mob(mob/S)
if(ismob(S.loc) && S.loc != S)
var/mob/M = S.loc
return M.get_top_level_mob()
return S

View File

@@ -8,7 +8,7 @@
projectile_type = /obj/item/projectile/bullet/shotgun_slug
custom_materials = list(/datum/material/iron=4000)
obj/item/ammo_casing/shotgun/executioner
/obj/item/ammo_casing/shotgun/executioner
name = "executioner slug"
desc = "A 12 gauge lead slug purpose built to annihilate flesh on impact."
icon_state = "stunshell"

View File

@@ -1,4 +1,4 @@
obj/item/projectile/energy/plasmabolt
/obj/item/projectile/energy/plasmabolt
name = "plasma bolt"
icon_state = "plasma"
flag = "energy"

View File

@@ -2288,6 +2288,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
//Race-Base-Drinks//
////////////////////
/datum/reagent/consumable/ethanol/species_drink
name = "Species Drink"
var/species_required
var/disgust = 26
boozepwr = 50

View File

@@ -272,10 +272,10 @@
overdose_threshold = 50
/datum/reagent/medicine/silver_sulfadiazine/reaction_obj(obj/O, reac_volume)
if(istype(O, /obj/item/stack/medical/gauze))
if(istype(O, /obj/item/stack/medical/gauze/adv))
var/obj/item/stack/medical/gauze/G = O
reac_volume = min((reac_volume / 10), G.amount)
new/obj/item/stack/medical/mesh(get_turf(G), reac_volume)
reac_volume = min((reac_volume / 5), G.amount)
new /obj/item/stack/medical/mesh/five(get_turf(G), reac_volume)
G.use(reac_volume)
/datum/reagent/medicine/silver_sulfadiazine/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1)
@@ -358,10 +358,10 @@
..()
/datum/reagent/medicine/styptic_powder/reaction_obj(obj/O, reac_volume)
if(istype(O, /obj/item/stack/medical/gauze))
if(istype(O, /obj/item/stack/medical/gauze/adv))
var/obj/item/stack/medical/gauze/G = O
reac_volume = min((reac_volume / 10), G.amount)
new/obj/item/stack/medical/suture(get_turf(G), reac_volume)
reac_volume = min((reac_volume / 5), G.amount)
new /obj/item/stack/medical/suture/five(get_turf(G), reac_volume)
G.use(reac_volume)
/datum/reagent/medicine/styptic_powder/on_mob_life(mob/living/carbon/M)

View File

@@ -2528,7 +2528,7 @@
M.adjustStaminaLoss(-0.25*REM) // the more wounds, the more stamina regen
..()
datum/reagent/eldritch
/datum/reagent/eldritch
name = "Eldritch Essence"
description = "Strange liquid that defies the laws of physics"
taste_description = "Ag'hsj'saje'sh"

View File

@@ -104,31 +104,44 @@
return ..()
/obj/item/reagent_containers/blood/attack(mob/living/carbon/C, mob/user, def_zone)
if(user.a_intent == INTENT_HELP && reagents.total_volume > 0 && iscarbon(C) && user.a_intent == INTENT_HELP)
if(C.is_mouth_covered())
to_chat(user, "<span class='notice'>You cant drink from the [src] while your mouth is covered.</span>")
return
if(user != C)
user.visible_message("<span class='danger'>[user] forces [C] to drink from the [src].</span>", \
"<span class='notice'>You force [C] to drink from the [src]</span>")
if(!do_mob(user, C, 50))
return
else
if(!do_mob(user, C, 10))
return
if(!iscarbon(C) || user.a_intent != INTENT_HELP || reagents.total_volume <= 0)
..()
to_chat(user, "<span class='notice'>You take a sip from the [src].</span>")
user.visible_message("<span class='notice'>[user] puts the [src] up to their mouth.</span>")
if(reagents.total_volume <= 0) // Safety: In case you spam clicked the blood bag on yourself, and it is now empty (below will divide by zero)
if(C.is_mouth_covered())
if(user != C)
to_chat(user, "<span class='notice'>You can't force [C] to drink from [src] while their mouth is covered.</span>")
return
var/gulp_size = 3
var/fraction = min(gulp_size / reagents.total_volume, 1)
reagents.reaction(C, INGEST, fraction) //checkLiked(fraction, M) // Blood isn't food, sorry.
reagents.trans_to(C, gulp_size)
reagents.remove_reagent(src, 2) //Inneficency, so hey, IVs are usefull.
playsound(C.loc,'sound/items/drink.ogg', rand(10, 50), TRUE)
to_chat(user, "<span class='notice'>You can't drink from [src] while your mouth is covered.</span>")
return
..()
if(!user.CheckActionCooldown())
return
if(user != C)
user.visible_message("<span class='danger'>[user] forces [C] to drink from [src].</span>", \
"<span class='notice'>You force [C] to drink from [src]</span>")
user.DelayNextAction(50)
if(do_mob(user, C, 50))
do_drink(C, user)
else
user.DelayNextAction(10)
if(do_mob(user, C, 10))
user.visible_message("<span class='notice'>[user] puts [src] up to their mouth.</span>", \
"<span class='notice'>You take a sip from [src].</span>")
do_drink(C, user)
/obj/item/reagent_containers/blood/proc/do_drink(mob/living/carbon/C, mob/user)
if(reagents.total_volume <= 0) // Safety: In case you spam clicked the blood bag on yourself, and it is now empty (below will divide by zero)
to_chat(user, "<span class='notice'>...and notice [src] is empty.</span>")
return
var/gulp_size = 3
var/fraction = min(gulp_size / reagents.total_volume, 1)
reagents.reaction(C, INGEST, fraction) //checkLiked(fraction, M) // Blood isn't food, sorry.
reagents.remove_any(5) //Inneficency, so hey, IVs are usefull.
reagents.trans_to(C, gulp_size)
playsound(C.loc,'sound/items/drink.ogg', rand(10, 50), TRUE)
/obj/item/reagent_containers/blood/bluespace
name = "bluespace blood pack"

View File

@@ -44,8 +44,7 @@
else
. += "<span class='notice'>Alt-click to seal it.</span>"
obj/item/reagent_containers/chem_pack/attack_self(mob/user)
/obj/item/reagent_containers/chem_pack/attack_self(mob/user)
if(sealed)
return
..()

View File

@@ -236,7 +236,7 @@
duration = -1
alert_type = null
datum/status_effect/rebreathing/tick()
/datum/status_effect/rebreathing/tick()
owner.adjustOxyLoss(-6, 0) //Just a bit more than normal breathing.
///////////////////////////////////////////////////////
@@ -524,7 +524,7 @@ datum/status_effect/rebreathing/tick()
ADD_TRAIT(owner, TRAIT_NOSLIPWATER, "slimestatus")
return ..()
datum/status_effect/stabilized/blue/on_remove()
/datum/status_effect/stabilized/blue/on_remove()
REMOVE_TRAIT(owner, TRAIT_NOSLIPWATER, "slimestatus")
return ..()

View File

@@ -5,6 +5,24 @@
name = "alien drone"
mob_name = "alien drone"
/obj/effect/mob_spawn/alien/corpse/humanoid/hunter
mob_type = /mob/living/carbon/alien/humanoid/hunter
death = TRUE
name = "alien hunter"
mob_name = "alien hunter"
/obj/effect/mob_spawn/alien/corpse/humanoid/sentinel
mob_type = /mob/living/carbon/alien/humanoid/sentinel
death = TRUE
name = "alien sentinel"
mob_name = "alien sentinel"
/obj/effect/mob_spawn/alien/corpse/humanoid/praetorian
mob_type = /mob/living/carbon/alien/humanoid/royal/praetorian
death = TRUE
name = "alien praetorian"
mob_name = "alien praetorian"
/obj/effect/mob_spawn/alien/corpse/humanoid/queen
mob_type = /mob/living/carbon/alien/humanoid/royal/queen
death = TRUE

View File

@@ -21,7 +21,7 @@
. = ..()
SSshuttle.beacons |= src
obj/machinery/spaceship_navigation_beacon/emp_act()
/obj/machinery/spaceship_navigation_beacon/emp_act()
locked = TRUE
/obj/machinery/spaceship_navigation_beacon/Destroy()

View File

@@ -231,7 +231,7 @@
/obj/item/melee/smith/twohand/katana
name = "katana"
icon_state = "katana"
icon_state = "katana-s"
overlay_state = "katanahilt"
force = 7
wielded_mult = 2

View File

@@ -97,7 +97,7 @@
owner.set_heartattack(TRUE)
failed = TRUE
obj/item/organ/heart/slime
/obj/item/organ/heart/slime
name = "slime heart"
desc = "It seems we've gotten to the slimy core of the matter."
icon_state = "heart-s-on"
@@ -221,7 +221,7 @@ obj/item/organ/heart/slime
var/rid = /datum/reagent/medicine/epinephrine
var/ramount = 10
obj/item/organ/heart/cybernetic/upgraded/on_life()
/obj/item/organ/heart/cybernetic/upgraded/on_life()
. = ..()
if(!.)
return

View File

@@ -115,7 +115,7 @@
cost = 4
exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops)
datum/uplink_item/stealthy_weapons/taeclowndo_shoes
/datum/uplink_item/stealthy_weapons/taeclowndo_shoes
name = "Tae-clown-do Shoes"
desc = "A pair of shoes for the most elite agents of the honkmotherland. They grant the mastery of taeclowndo with some honk-fu moves as long as they're worn."
cost = 12

View File

@@ -120,7 +120,14 @@
/obj/item/clothing/ears/headphones = 2,
/obj/item/clothing/head/wig/random = 3,
/obj/item/clothing/suit/ran = 2,
/obj/item/clothing/head/ran = 2)
/obj/item/clothing/head/ran = 2,
/obj/item/clothing/mask/gas/timidcostume = 3,
/obj/item/clothing/suit/hooded/wintercoat/timidcostume = 3,
/obj/item/clothing/shoes/timidcostume = 3,
/obj/item/clothing/mask/gas/timidcostume/man = 3,
/obj/item/clothing/suit/hooded/wintercoat/timidcostume/man = 3,
/obj/item/clothing/shoes/timidcostume/man = 3,
)
contraband = list(/obj/item/clothing/suit/judgerobe = 1,
/obj/item/clothing/head/powdered_wig = 1,
/obj/item/gun/magic/wand = 2,

File diff suppressed because it is too large Load Diff

View File

@@ -27524,3 +27524,730 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
- bugfix: limb id entry in mutant bodyparts now supports switching to/from species
with gendered body parts
- tweak: the minimum brightness of mutant parts is now a define
2021-01-21:
Acer202:
- bugfix: Main mining shuttle should no longer look at the public mining shuttle
and attempt to dock ontop of it. Monastery shuttle should now function again.
Acer202, with minor help from The0bserver:
- rscadd: After internal deliberation, CentCom has decided to run a limited reinstatement
of public mining shuttles for use in more tried and true station classes. CentCom
would like to remind you that this privilege is easily revoked, and that abuse
may result in immediate detonation.
- rscadd: Restores the mining shuttle on Pubby, Box, Delta, Meta, and Lambda Station.
ArcaneMusic, The0bserver-sys:
- rscadd: 'New from Hydrowear LLC: The Botanical Belt! This handy yellow belt lets
you hold most of your botany gear, and a few beakers for reduced bag and floor
clutter!'
- tweak: Gives Hydrotrays plumbing pipes automatically, allowing you to make a self
sustaining tray via plumbing.
- tweak: Gives Service access to Bluespace Beakers, at last, gives Cargo, Science,
and Medical the ability to construct reinforced plungers for use on lavaland.
ArchieBeepBoop:
- rscadd: Upgraded Advanced RTG Machine Preset
- bugfix: Outlet Injector Mapping Asset Layer Fix
- bugfix: Jacqueen and the Christmas tree should no longer spawn abstract things
that can cause shittons of runtimes.
Arturlang:
- bugfix: You can't tackle in nograv anymore
- tweak: You cannot spam drink from blood bags anymore
- bugfix: Blood bag drinking inefficiency is now the right way, so you loose some
of the blood drinking it straight
- bugfix: Handles more edge cases with construct soul returning
- tweak: Being sacrificed by the cult no longer removes all hope of rescue.
- bugfix: Makes construct mind returning more robust
- tweak: Prayers to admins now do a wee ding sound for all prayers, instead of just
chaplains
- bugfix: Fixes the mint machine's UI
- bugfix: Hopefully fixes whitescreen issues for TGUI UI's by giving assets more
time to get to the client
- bugfix: Fixes hijack implant APC UI, again
- code_imp: Comments out spaceman dmm do not sleeps for mob/proc/CommonClickOn,
atom/proc/attack_hand, datum/proc/keyLoop and mob/living/proc/Life
- bugfix: Bloodsuckers tresspass ability can no longer work while they are not awake.
- tweak: The cursed heart now only takes away half as much blood every loop, and
can be used as long as you are alive, instead if only you are awake/able to
use your hands
Bhijn:
- tweak: Changeling loudness is now determined as an average of all their abilities,
rather than the sum
- tweak: To compensate for this, blood tests now require a loudness value of 1 or
higher to detect ling blood. Additionally, blood test explosions are now triggered
only when the loudness value is higher than 2.
BlackMajor:
- tweak: Cyborg hypospray no longer injects if it means OD'ing while on help intent.
BlueWildrose:
- tweak: Nyctophobia quirk now has some light lag compensation.
- bugfix: Fixes cloning computer UI not updating when pressing certain buttons -
also adds extra check for names to update a message
- rscdel: Removes oversized genitalia analysis from medical scanners, since huge
dick and titty are no longer a problem anymore thanks to advancements in that
kind of technology when it comes to chemical fun times growth.
- bugfix: Fixed species-specific drinks not giving a mood boost if you are that
species.
- tweak: You will now only unbuckle fireman-carried/piggybacked people on disarm
or harm intent.
- balance: The traitor AI can no longer activate the doomsday device while carded.
- bugfix: Fixes noodle size appearance for 12+ inch members.
- bugfix: Fixed the subtle hotkey being weird with its input prompts.
- rscadd: Adds a subtler anti-ghost hotkey. Default key is 6.
- tweak: No more straining when your cock or breasts are growing via incubus draft
or succubus milk.
- rscadd: PubbyStation now has two Christmas Tree spawners.
- tweak: You can now have a max-roundstart-dicksize-config inch long johnson before
you start suffering blood loss and slowdowns instead of a 20 inch one.
- rscadd: Color Mates have been added to all stations (except Snaxi). Enjoy coloring
your attire without having to bug science!
- bugfix: Polychromic hoodies that were obtained from the loadout have functional
colorable hoods now.
- rscadd: Adds in timid woman/man costumes. Available at your autodrobe! Also adds
in garters as some new socks.
- spellcheck: Corrected the capitalization in gasmask concealment examine text
Chiirno:
- rscadd: Added the paramedics EVA suit as a purchase from the cargo console.
- rscadd: Paramedics office and Surgery Storage Room
- tweak: Remodeled the surgery room, as well as shrunk Morgue and Starboard Emergency
Storage. Fiddled with some areas for better map edit clarity and fixed one runtime
in Vacant Office A.
- imageadd: Added the paramedic closet sprite, a paramedic colored medical3 closet.
- code_imp: Added a paramedic closet, which is the standard medical3 closet with
their suit, a pinpointer, and a crew monitor added.
- tweak: Nightmare now deals additional damage to most light sources.
- bugfix: Nightmare now one-shots miners beacons and glowshrooms
- bugfix: Portable Chem Mixer now researchable from biotech node.
- tweak: Chem masters can now dispense 20 instances of its outputs instead of 10.
Delams-The-SM:
- rscadd: Added 3 new emotes *hiss *purr *meow
- soundadd: ported sounds from Citadel RP for *purr and *meow
- bugfix: fixed randomization of colors for things like mulligan and Stabilized
green slime extract for matrixed body parts
DeltaFire15:
- balance: Biomechanical (hybrid) bodyparts now have access to wound-fixing surgeries.
- tweak: A wound being fixed no longer just qdel()s surgeries connected to it.
- tweak: Some robotic surgery steps are now a bit more clear.
- bugfix: Organs no longer get fed to people after successfully being inserted into
them.
- tweak: Not completing the do_after of a surgery no longer causes you to attack
the target with whatever you were holding.
- rscadd: IPC cells & power cords are now printable after they are researched.
- rscadd: A new surgery, allowing revival of synths without a defib at hand.
- balance: 'Semi-permanent damage of Synth limbs caused by passing the damage threshold:
10 <- 15.'
- tweak: The embed removal surgery now has a version for Synths.
- balance: EMPs no longer hardstun Synths.
- bugfix: Portals no longer runtime because of incorrect args.
- tweak: Abductors now can use experimental organ replacement surgery on robots
/ synthetics.
- bugfix: Fixes a minor incorrectness in ratvarian borg slabs (ratvar_act -> ui_act)
- bugfix: Changelings no longer double-deathgasp when activating the regen stasis
ability while not dead.
- bugfix: People installing KA modkits in miner borgs is no longer broken.
- bugfix: Fixes the tail entwine messages displaying incorrectly.
- bugfix: Antagging / Deantagging Heretics now properly sets their special role.
- bugfix: The borg VTEC ability now actually gets removed when the upgrade is removed.
- bugfix: Supplypods shouldn't cause runtimes anymore, and shrapnel (pelletclouds)
should work for them.
- rscadd: Robots (anyone with the robotic_organism trait) have toxins damage replaced
with system corruption. See the PR for details.
- code_imp: Clockwork rites now support hiding specific rites from neutered servants.
- tweak: AIs now only have to kill people once instead of permanently.
- bugfix: Scripture no longer sometimes eats part of its invocation.
- balance: APCs and silicons are now more susceptible to powerdrains (by the power_drain()
proc, which is rare)
- balance: Void Volt has been modified from a chant to a singular pulse.
- balance: Robotpeople are now fully immune to the effects of alcohol (drunkness
etc.)
- tweak: Renames the alcohol intolerance trait in the code to make what it does
more clear.
- bugfix: Self-fueling weldingtools recharge fuel properly again.
- bugfix: Brass welders now actually recharge faster than experimental ones.
- bugfix: Repeatable surgery steps can no longer cause an infinite loop if not completing
the do_after
- bugfix: The Revenant self-revive ability is no longer broken.
- bugfix: Loot items mobs drop are no longer always failing to initialize.
- tweak: Instant summons can no longer do wacky stuff with disposals (and nukes).
- bugfix: Objectives are no longer very broken.
- bugfix: Bloodcult stunhands now work against clockies like they were supposed
to instead of hardstunning.
- balance: zeolites are now actual fermichems instead of being incredibly easy to
make.
- bugfix: Using syringes / droppers on chem heaters with beakers in them works again.
- bugfix: Some edge cases causing issues with system corruption shouldn't be able
to occur anymore.
- bugfix: Cyborg B.o.r.i.s. installation now checks for if the chest has a cell,
just like how it does with MMIs.
- bugfix: The 'Your body is in a cloner' notification works again
- bugfix: Hijack implants should work properly again (or, at least better)
- bugfix: Liches are now good skeletons again instead of weak ones
- bugfix: The piratepad control cannot be destroyed again.
- bugfix: Pirates have received new supplies of jetpacks instead of useless oxygen
tanks
- bugfix: Ratvarian AIs are once again able to show their linked borgs Ratvar's
light
- bugfix: Hijackers are once again unable to detonate borgs without being adjacent
to the console
- bugfix: Automated annoucement systems and gulag ore consoles no longer waste emag
charges
- bugfix: Automated announcement systems once again can be remote controlled by
non-AIs with silicon access
- bugfix: APCs being hijacked multiple times at once is no longer possible, preventing
some issues
- bugfix: Recharging APCs no longer use 0.2% of the power they should be using.
- bugfix: APCs no longer always use as much power as they can for their cell, even
if it is full.
- bugfix: Vampire shapeshifting should now behave as intended
- balance: Some synth damage stuff has been a bit rebalanced, see the PR for details.
- rscadd: Nanogel, available at medical and robotics, which fixes internal damage
in sufficiently repaired robotic limbs.
- balance: Robotic Limbs now each have their own damage threshhold values
- balance: Robotic Limb damage threshholds are now seperated into threshhold itself
and mindamage when passed balance; Hybrid limbs can now be injected with hypos,
but not sprayed (Still not healed by chems)
- tweak: Brain surgery has been tweaked back to allowing robotic limbs, blacklisting
IPC brains instead.
- tweak: Robot brain surgery can now be used on organic heads, if there is a IPC
brain in them somehow.
- tweak: The robot limb heal surgery can now be used even if the target's torso
is not robotic, as long as they have robotic limbs
- refactor: BODYPART_ROBOTIC / BODYPART_ORGANIC checks replaced with helper-procs
whereever possible.
- code_imp: Added a BODYPART_HYBRID define for robotic bodyparts that behave organic
in some regards.
- bugfix: The transmission sigil power drain works now
- bugfix: A certain lizard (totally not me) being stupid is no longer going to break
regenerate_bodyparts
- bugfix: Combat mode now will not stay permanently disabled due to status effects
not working as intended.
- bugfix: Attacking some certain objects no longer has no clickdelay.
- bugfix: the blacksmithing skill now works properly
- tweak: Anvils cannot be interacted with with hammers whilst they are already being
used
- tweak: If someone has no gloves when interacting with heated ingots, they no longer
ignore their effects.
- bugfix: A runtime caused by hallucinations is gone.
- bugfix: Cargo packs marked as 'no private buying' now actually register as such.
- balance: Fleshmend, Anatomic Panacea and bloodsucker healing now work for Synths
/ IPCs.
- tweak: Medibots now ignore people they cannot help due to their biology.
- bugfix: get_damaged_bodyparts() is no longer broken.
- bugfix: Your target cryoing will no longer give you a free greentext.
- bugfix: Sleeper UI interactiveness now behaves correctly.
Detective-Google:
- rscadd: arcade carpet
- rscadd: explosions now get broadcasted to deadchat.
- rscadd: Lick radial
- bugfix: Hilbert's jukebox works
- bugfix: arcade carpets now actually work
- tweak: the snow taxi is no longer the slow taxi
ERP mains:
- rscadd: Subtler Around Table is now a verb
EdgeLordExe, MoonFalcon:
- balance: Ported a bunch of heretic-related tweaks and changes from tg
EmeraldSundisk:
- rscadd: Adds a few new area designations primarily for CogStation, incorporates
them into said map
- tweak: Reorganizes some area designations for ease of use, along with renaming
the central "Router" to "Routing Depot"
- bugfix: Fixes an incorrectly designated area in CogStation
- bugfix: Changes the area designations to be not varedited since the code didn't
like that anymore
- bugfix: The cargo bay conveyor belts not only work with the shuttle now but go
in the right direction to boot
- tweak: Slight visual adjustments to cargo in light of this
- rscadd: The arcade's got RAD carpet now
- bugfix: Fixes the conveyor belt issues in Delta Station's cargo wing
- rscdel: Removes some of the dirt around the affected area (presumably they would
have cleaned it up while working on it)
- rscadd: Adds a floor light to fix the "dark spot" cargo had
- rscadd: Adds a new "Computer Core" area designation for CogStation
- bugfix: Fixes some missing area strings
- tweak: Replaces some firelocks with directional ones as to ensure desks/counters
can still be accessed
- balance: The "Skelter ruin" now has stechkins as opposed to M1911s
- tweak: Skelter's decorative bullet casings replaced to factor in the change in
caliber
- rscadd: Skelter now has a combat knife and fluff note
Ghommie:
- bugfix: You can access the mime / clown mask skins radial menu once again.
- bugfix: Dice bags no longer act like cardboard boxes.
- bugfix: Abductors should be no longer mute.
- bugfix: Item action buttons should now properly show the item current overlays,
most times.
- bugfix: The blackbox should now go into your hand slot when pried out, rather
than tumbling on the ground everytime.
- tweak: The Quick Equip hotkey is now usable by all living mobs (so long they have
hands and equipment slots)
Ghommie, porting PRs by MMMiracles and pireamaineach, credits to BlueWildrose too.:
- rscadd: You can now draw on plasmaman helmets with a crayon to turn their frown
upside-down.
- balance: Plasmaman helmets no longer hide your identity when worn by themselves.
- balance: Plasmaman helmets now have welding visors, which can't stack with their
torches in the helmet and are visible.
Hatterhat:
- rscadd: Energy sabre reskin for the energy sword - access via alt-click.
- bugfix: Alt-click reskins are fixed.
- tweak: Defibrillators and their many, many overlays were moved to another .dmi.
- tweak: You can now change the color of an energy sword via multitool. Not deswords.
Yet.
- imageadd: The Syndicate appear to be issuing new revolver variants.
- rscadd: Basic sticky technology is now a roundstart tech. Advanced sticky technology
is BEPIS-locked, though. Theoretically.
- tweak: Non-smithed katanas (including the temporal katana) can now fit in the
twin sheath.
- tweak: Cotton and durathread processing by hand now acts like grass. Stand on
a pile of cotton (or durathread) and use a single bundle from it.
- spellcheck: Utility uniforms now comply with the "nonproper equipment names" thing.
- bugfix: The CapDrobe now allows the captain to get his own clothes for free. Probably.
- tweak: All captains' clothes now offer 15 woundarmor, up from the 5. Because apparently
only the suit and tie and its suitskirt subtype have this wound armor, which
is dumb.
- rscadd: The nature interaction shuttle with the monkeys now has tiny fans on the
airlocks in, because that's apparently a feature that was missing.
- rscadd: More bags have been added to department vendors.
- balance: Every roundstart species (and also ash walkers) now has flesh and bone
that can be wounded.
- balance: Recipes for sutures, regen mesh, and sterilized gauze have been adjusted
to be easier, mostly.
- balance: Sterilized gauze is better at absorbing blood and being a splint.
- bugfix: Energy sabres now have an off inhand.
- balance: The bone gauntlets should be slightly less murderously punchy on the
fast punches mode.
- tweak: RPEDs now drop their lowest part tier first when quick-emptied (used inhand).
- tweak: Improvised gauzes can now be crafted in stacks up to 10, like their maximum
stacksize implies they should be capable of doing.
- bugfix: Pouring sterilizine on gauze now takes the proper 5u per sterilized gauze
instead of 10u.
- bugfix: Cryogenics now screams on common again when your fuckbuddy heads out.
- rscadd: Survival daggers! A slightly more expensive survival knife that comes
with a brighter flashlight. On the blade.
- tweak: Luxury pod capsules look different from normal capsules.
- rscadd: The wastes of Lavaland and the icy caverns of Snow Taxi rumble in unison.
- tweak: Exosuits sold on the Supply shuttle no longer leave wreckages.
- rscdel: Apparently, shrink rays were buyable again, despite a PR having been made
a while ago specifically for removing shrink rays. They're gone again.
- rscadd: Changeling bone gauntlets! They punch the shit out of people really good.
- tweak: Guerilla gloves and gorilla gloves inherit the strip modifiers of their
predecessors, because apparently they had those.
- balance: Pugilists now always hit the targeted limb and never miss.
- rscadd: The dock-silver standard set by Box and Meta has been enforced across
maps in rotation (Delta, Pubby, Lambda).
- bugfix: The Box whiteship now has its missing tiny fan back.
- bugfix: The survival dagger light on the sprite now actually turns on and off.
- balance: The survival dagger in the glaive kit that can also be bought by itself
is now better at butchering things.
HeroWithYay:
- bugfix: Changed description of Necrotizing Fasciitis symptom.
- tweak: Wormhole Projector and Gravity Gun now require anomaly cores to function
instead of firing pins.
KeRSedChaplain:
- imageadd: Resprited the brass claw
LetterN:
- rscadd: 2 more ways to get up from z1
- tweak: tweaked the z2 garden to be less blank
- bugfix: fixed telecomms pda log
- rscadd: Coin & Holochip support for slot machine
- admin: Stickybans are now saved in the DB too
- soundadd: Immersive &trade; audio reverbs. (also adds multiz audio)
- code_imp: Semi-hardsync from TG
- code_imp: Updates rust-g
- code_imp: Uses git CI instead of travis/appveyor now
- code_imp: Updates git and build tests.
- bugfix: minimap text
- code_imp: ports cinematic upgrades
Linzolle:
- bugfix: entertainment monitors no longer invisible
- rscadd: entertainment monitors now light up and display text when motion is detected
in thunderdome
- bugfix: lizard snouts are no longer *slightly* lighter than they are supposed
to be.
MrJWhit:
- rscadd: Expanded space hermit base
- tweak: Replaced engineering fuel tank with a large fuel tank
- tweak: Changed access to sec suit storage from armory access in every map to other
security access
- rscadd: Adds a space loop to every map in toxins
- rscadd: ''
- tweak: Added the ability for cargo to buy a large welding tank
- imageadd: Tweaked large tank reagent sprites to /tg/'s
- tweak: Gives metastation toxins storage a scrubber and a vent
- tweak: Updates suit storage info on Tip Of the Round.
- tweak: Increased christmas event from 22th to 27th to 10th to 27th
- tweak: Removes an opposum from the wall
- tweak: Donut boxes show what's inside of them now
- tweak: Updated meat icons
- admin: Canceling events gives more time to stop from 10 to 30
- tweak: Fixes two chairs on one table
- tweak: Removed the wires connecting the AI from the rest of the station on cogstation.
- tweak: Fixes experimenter on cogstation.
- tweak: Less pipes in the overall area in toxins on cogstation
- tweak: Small fixes on security on boxstation
- tweak: Updated jukebox sprite.
- tweak: Fixes maint area in boxstation
- tweak: Christmas starts on the 18th now
- rscadd: Adds a goose bar sign
- bugfix: Effects can no longer trigger landmines
- rscdel: Removes the screen flashing on climax.
- rscadd: Makes gas sensors fireproof.
- tweak: A small bucket of random fixes,
- tweak: Minor fixes to kilo
- tweak: Porting garbage collection tweak from /tg/
- tweak: Updates our dark gygax sprites to /tg/'s
- tweak: Bugfix of a morph becoming an AI eye
- tweak: Mining station oxygen locker on the cycling airlock starts out wrenched.
- balance: Nerf combat knife damage
- bugfix: Code improvement on ventcrawling
NT Cleaning Crews On Break:
- rscadd: Most kinds of dirt, grime, and debris are now persistent. Get to work,
jannies.
- rscadd: Dirt can now be removed by tile replacements. Other cleanable decals can't,
though.
Putnam3145:
- tweak: Replaces majority judgement with usual judgement.
- bugfix: Toilet loot spawners don't lag the server on server start with forced
hard dels.
- bugfix: vore prefs save now
- tweak: gear harness no longer magically covers up the body mechanically despite
covering up nothing visually
- balance: Regen coma now puts into a coma even from crit or while unconscious.
- bugfix: Regen coma now properly weakens while asleep.
- bugfix: Multi-surgery unit test no longer fails at random.
- refactor: Dwarf speech is no longer absolutely paranoid about word replacement.
- balance: Spontaneous brain trauma now requires minimum 5 players
- tweak: Grab bag works as advertised.
- balance: Xeno threat in dynamic tripled.
- code_imp: 'Vote system #defines are now strings'
- rscadd: Stat panel UI for ranked choice votes
- rscadd: A fallback for dynamic antag rolling that allows for it to just try between
traitor, blood brothers, heretics, changeling, bloodsucker and devil until there
are enough roundstart antags. This can also happen randomly anyway. Blood brothers
and devil are disabled for now, but the code is there to enable them.
- rscadd: A new storyteller, "Grab Bag", that forces the above round type.
- bugfix: atmos subsystem no longer dies if there's too many gases
- bugfix: Emotes can properly be filtered for in TGUI.
- bugfix: Holofirelocks work now.
- bugfix: adminhelping no longer removes entire admin tab
- bugfix: end of round no longer removes entire admin tab
- bugfix: Fixed a runtime in every healing nanite program.
- bugfix: removed a unit test causing master to fail
- tweak: Planetary atmos no longer does superconduction.
- bugfix: Dynamic vote no longer shows the none-storyteller.
- tweak: You can now exit polycircuit input
- bugfix: Polycircuits now check for range
- bugfix: gear harness alt-click is now sane
- code_imp: rolldown() and toggle_jumpsuit_adjust() now no longer mix behavior-that-should-be-overridden
and behavior-that-shouldn't-be-overridden in ways that make no sense.
- tweak: Gear harness now covers nothing.
- bugfix: Chemical stuff now displays fermichem stuff properly
- balance: Rad collectors now get 1.25x as much energy from radiation
- balance: Rad collectors now put out 1.25x as much stored energy per tick
- balance: Above two rad collector changes give a total 56.25% power output increase
- balance: Zeolites now only generate 1/5 the heat when reacting and don't require
a catalyst.
Ryll/Shaps:
- admin: Fixed an issue with player logs becoming confused when someone triggers
multiple events within one second (like being attacked by two people at the
same time) that would cause holes in the logs
SandPoot:
- tweak: You can attack a pile of money on the floor with your id to put it all
in quickly.
- refactor: Changes the limb grower a lot.
- bugfix: '"Limb" costs on limbgrower are actually displayed like it was meant to
all along.'
- code_imp: Swaps the gift static blacklist with a global list one.
SiliconMain:
- tweak: Engi department has gas masks in loadout
- tweak: hololocks (which haven't worked for god knows how long) commented out until
auxmos is merged
Sonic121x:
- rscadd: alarm ert hardsuit sprite for naga and canine
- tweak: adjust the naga ert hardsuit to cover the hand
- bugfix: cydonia hardsuit helmet
- rscadd: digi sprite uniform
- bugfix: digi leg suit
SpaceManiac:
- bugfix: Fixed the maphook
Thalpy:
- bugfix: fixes some bugs in jacqs code from edits to the codebase
The Grinch:
- rscdel: infinite presents from hilbert hotel
TheObserver:
- rscadd: Re-adds the rifle stock, and sets the improv shotgun to be as it was.
- rscdel: The maintenance rifle has been shelved - for now. Watch this space.
TheObserver-sys:
- bugfix: Drake? Where's the dead fairygrass sprite?
TheSpaghetti:
- bugfix: no more tumor bread double punctuation
Trilbyspaceclone:
- tweak: Zeolites now use gold rather then uranium for catalyst
- tweak: Zeolites are not as hard to make ph wise
- tweak: Making Zeolites heats up the beaker less allowing for better control
- tweak: ASP 9mm and M1911 can now have suppressers added
- balance: Brass welders are 50% faster at refueling
- code_imp: redoes self fueling welders in the code to be less speggie
- rscadd: the corporate unifoms can now be gotton in the clothing mate vender
TripleShades:
- rscadd: 'Firelock to Surgery Bay drapes change: Swapped Nanomed and Fire Alarm
button locations in both Surgery Bays change: Removes the double mirror in both
Surgery Bays to be a singular mirror change: Moved an intercom to not be doorstuck
below Paramedical Office remove: One Surgery Observation Fire Alarm button'
- rscadd: 'New Paramedic Office next to Genetics where the old Genetics Reception
used to be change: Surgery, Surgery Observation, and Recovery Hall layout revamped
drastically change: Maints below Surgery lowered by one tile to recover lost
tile space from Surgery expansion'
Tupinambis:
- rscadd: Arachnids (spider people) with limited night vision, flash vulnerability,
and webbing.
Vynzill:
- rscadd: 'new gateway mission mapadd: jungleresort map'
- bugfix: fixes high luminosity eyes
Xantholne:
- bugfix: Fixed new birds changing back to basic parrot when sitting
- rscadd: New parrots from the RP server, can be found in Bird Crate in Cargo
- rscadd: You can now tuck disky into bed
- rscadd: You can now make beds by applying a bed sheet to them
- rscadd: You can now tuck in pai cards into bed
- rscadd: Added bed tucking element, can be added to any held object to allow tucking
into beds
- bugfix: Twin Sword Sheaths have an equipment icon and icon when worn now and make
a sound when sheathed/unsheathed
Yakumo Chen:
- balance: Slime Jelly is no longer obtainable from slimepeople. Go ask Xenobio
YakumoChen:
- balance: "To lower production costs, Buzz Fuzz is now manufactured with Real\u2122\
\uFE0F Synthetic honey."
Zandario:
- code_imp: Added some framework for future species expansions, including clothing
refitting.
- refactor: Made majority of the relevant Species IDs and Categories pre-defined,
also for easier expansion and use.
- bugfix: lum slime sprites work again
- code_imp: Slapped the Species Defines where relevant
corin9090:
- tweak: The chaplain's prayer beads can now be worn on your belt slot
kappa-sama:
- bugfix: super saiyan
- tweak: ishotgun crafting recipe no longer requires plasteel and is slightly more
convenient
- balance: ishotgun does 45 damage now instead of 40.5
- rscadd: s
- tweak: s
- balance: s
- bugfix: s
- rscadd: A new spell for the wizard and his martial apprentices, the Inner Mantra
technique. It makes you punch people really good and makes you durable, but
drains your energy while it's active.
- rscadd: A self-buffing spell for valiant bubblegum slayers that is ultimately
useless on lavaland and probably overpowered for miner antagonists. Go figure.
At least all it does is let you punch hard while draining your health every
second.
- balance: bubblegum now drops a book that makes you into an abusive father instead
of a shotgun that plays like pre-nerf shotguns
- soundadd: a powerup and powerdown sound effect
- imageadd: two icons for two buff spells
keronshb:
- bugfix: Allows Energy Bola to be caught
- balance: This also allows them to be dropped/picked up.
- rscadd: Adds a reduced stamina buffer for SCarp users
- rscadd: Gives SCarp users a better parry
- rscadd: Adds the SCarp bundle which includes a bo staff
- rscadd: Lets Carp costumes carry Bo Staffs
- balance: reduces the stamina damage of scarp slightly
- balance: reduced the blockchance of the bo staff
- rscadd: Adds more room to northwest maint
- rscadd: Adds a bridge between Atmos and the Turbine.
- balance: Blob Resource Tower to 2 points per instead of 1 point per.
- balance: Blob Factory Towers can be placed 5 tiles apart instead of 7.
- bugfix: Fixes Blobbernaut Factories consuming Factories if no naut is chosen.
- bugfix: Fixes Reflective Blobs
- rscadd: Re-adds the Clown Car to the clown uplink
- balance: 15 >16 TC cost
- balance: bonks on external airlocks
- bugfix: Fixes the parry data for scarp
kittycat2002:
- rscadd: set the name of /datum/reagent/consumable/ethanol/species_drink to Species
Drink
kiwedespars:
- balance: balanced bone gauntlets.
- rscadd: the robust dildo weapon now has sound.
necromanceranne:
- bugfix: Fixes various sprites for bokken, as well as being unable to craft certain
parts and duplicate entries.
- rscadd: 'Bokken now come in two lengths; full and wakizashi, and two varieties:
wood and ironwood. They have different stats for all four.'
- rscadd: Bokken require menu crafting and part construction, as well as more complicated
materials.
- tweak: Bokken (long and short) require wood, cloth and leather to craft with a
hatchet and screwdriver.
- tweak: Ironwood bokken (long and short) require ironcap logs, cloth and leather
to craft with a hatchet, screwdriver and welder.
- balance: Twin sheathes can only fit a pair of blades (longsword + shortsword)
or they can fit two shortswords.
- bugfix: Fixed a twin sheath runtime.
- imageadd: A lot of bokken related sprites received an overhaul. Added overlay
sprites for weapons sheathed in the twin sheathes.
- imageadd: The extradimensional blade received improved sprites for inhands/back
sprites.
- bugfix: You can now make all the variants of the bokken.
- bugfix: Removes a duplicate sprite.
- tweak: Renames all instances of 'ironwood' to 'steelwood'.
- rscadd: Adds new roboticist labcoat sprites!
qwertyquerty:
- bugfix: Flash the screen on climax
raspy-on-osu:
- spellcheck: salicylic acid
- tweak: space heater heating range and power
- tweak: windoor open length
shellspeed1:
- rscadd: Wings from Cit RP have been ported over
- rscadd: Moth wings from cit have been ported over
- bugfix: Cleaned up some pixels on existing moth wings.
- tweak: Organized the lists for wings by if they are for moths or not and than
by alphabetical.
- balance: Lings now have infinite space for DNA.
- rscadd: All xenomorph types have been added as corpses for mapping purposes
- balance: The dead xenomorphs in the lavaland xenomorph hive now have more variety.
- tweak: Floor bots are now buildable with all toolboxes.
- rscadd: 'Xenomorph hybrids can now select wings ~~add: Xenomorph hybrids can now
speak xenomorph~~'
- rscadd: Xenomorph tongues are available for customization.
- rscadd: Mining borgs can claim points again
- rscadd: Construction bags have been added, use them to carry all sorts of construction
bits.
- rscadd: A recipe has been added to cloth stacks to make material and construction
bags.
- balance: Material bags and construction bags are now available in engineering
lockers.
- rscadd: Adds the disposable sentry gun from tg for 11tc each.
- rscadd: The exofab can now print prosthetic limbs
- bugfix: The exofab was missing access to multiple cybernetic organs. This has
now been rectified.
- rscadd: A new recipe for a spicy has been given to us by a strange business man.
- rscadd: The bluespace navigation gigabeacon design has been added to shuttle research
for those wanting to take their ships around space more.
- tweak: Xenomorph powers now list plasma cost in their description.
silicons:
- tweak: nanite resistances tweaked
- rscadd: new nanite programs added for locking the user out from being modified
by consoles or antivirals.
- rscdel: anomalies no longer spawn in walls
- rscadd: 'Twitch Plays: Clown Car'
- rscadd: pugilists can now parry
- balance: c4 can no longer gib mobs
- tweak: medium screens are better now
- tweak: text formatting now uses one character instead of two around the text to
emphasize.
- rscadd: colormates
- balance: shoving yourself up now costs 50% more
- bugfix: dullahans enabled
- rscadd: tailed individuals can now target groin to intertwine tails on grab intent.
- rscadd: Clowns now have unpredictable effects on supermatter crystals when dusting
from contact.
- tweak: anyone new to the server is lucky enough to have their sprint default to
toggle instead of hold
- balance: stamina crit is only removed when at or under 100 stamina, rather than
140. stamina crit threshold is still at 140.
- tweak: luxury shuttle no longer has noteleport
- rscdel: now only poly gets a headset on spawn, not all birds.
- tweak: the warp implant now actually warps you back 10 seconds. leaves a trail,
though. now unlimited us.
- bugfix: things in DEATHCOMA do not deathgasp on death
- tweak: Meth and changeling adrenals no longer ignore all slowdowns, rather damage
slowdowns.
- rscadd: you can now be an angel using a magic mirror again
- tweak: command headsets are 120% instead of 160%
- bugfix: no more emote italics
- rscadd: players can now respawn/return to lobby as a ghost after a 15 minute (default)
delay and rejoin on another character with some/many restrictions
- rscadd: cryo now preserves everything
- bugfix: Magrifle ammo no longer glows.
- tweak: temperature slowdown divisor nerfed to 35 from 20.
- balance: dna melt drops all items being destroying you
- bugfix: keybinds generate anti-collision bindings where necessary automatically
now
- balance: changeling combat mutations rebalanced. most of them take chemicals to
upkeep now.
- rscadd: set-pose has been added
- tweak: temporary flavor text renamed to set pose, fully visible in examine
- bugfix: ninja gloves no longer hardstun
- balance: ninja gloves now cost half as much to use to compensate
- bugfix: simple mobs are now immune to radioactive contamination
timothyteakettle:
- bugfix: time for memory loss message to show up when being revived is now correctly
300 seconds, instead of 30
- bugfix: the load away mission verb won't crash the server now
- rscadd: roundstart slimes can turn into puddles now
- rscadd: all gas masks (but welding + glass) can be alt clicked to show/hide identity
- tweak: autosurgeons from travelling trader rewards now only have one use
- bugfix: fixes held items proccing crossed when passing someone
- tweak: you can now get a family heirlooms based off your species instead of job
- tweak: changeling stings retract upon turning into a slime puddle
- tweak: you cannot transform into a slime puddle with a no drop item in your hands
- tweak: slime puddles are now transparent and their colour looks more natural in
comparison to the user
- tweak: slime puddles are now even slower
- tweak: slime puddles now get no protection from worn clothing
- rscdel: removes two debug messages left in from my prior eye customization pr
- rscadd: adds unlockable loadout items, corresponding category in loadouts, etc
- rscadd: added in-game age verification as an alternative to access requests
- bugfix: disabling adminhelp noises no longer disables looc
- bugfix: apids render now
- bugfix: you can now only entwine tails with people who have a tail
- bugfix: custom eyes and tongues now properly carry across cloning
- rscadd: re-adds the holoform verb for people who want to use it over going through
the char list
- bugfix: eye sprites should look normal once more
- rscadd: licking people washes pie off their face
- rscadd: you can now pick your eye sprites from customization
- tweak: looking at loadout equips loadout items on your preview image instead of
job items
- tweak: custom holoforms are now accessible through an action instead of through
verbs
- tweak: AI holoforms can now emote
- tweak: cloning now correctly copies your blood colour, body sprite type and eye
type
- bugfix: species with NOTRANSSTING cannot have envy's knife used on them
- rscadd: avian/digitigrade legs have been added for slimes
- rscadd: you can teleport bread
- tweak: slime puddles are no longer layered down one layer
- tweak: you cannot tackle with two paralysed arms
- tweak: tackling with a single paralysed arm lowers your tackle roll by 2
- bugfix: circuits get pin data proc is sanitized when text is returned as data
- rscadd: loadout now has save slot support and colour choosing/saving for polychromic
items
- rscadd: polychromic maid outfit
- rscadd: you can rebind communication hotkeys and they're the default now
- rscadd: you can now customize your size from 90% to 130%, going below 100% makes
you have 10 less max health
- rscadd: '*squeak'
- rscadd: anthromorphic synth species
- rscadd: improvements to the automatic age gate
- tweak: antag items are now of critical importance and wont fail to be placed on
the character
- bugfix: a tonne of fixes to colourisation of parts, too many to name, including
some sprite fixes
- rscadd: things now have their own individual primary/(secondary)/(tertiary) colours
as required, and these can be modified by you
uomo91:
- bugfix: Fixed "Show All" tab in player panel logs being broken.
- bugfix: Whispers, OOC, and various other things display differently in logs, visually
distinguishing them from say logs.
- refactor: Player panel logs will now show all logs chronologically, so you'll
see commingled say and attack logs if you're on the "Show All" tab, etc...
yorii:
- bugfix: fixed botany rounding error that caused grass and other plants to misbehave
zeroisthebiggay:
- bugfix: legion now drops chests
- rscadd: Traitor assistants can now purchase the patented POGBox! Put TC into it
for even higher damage!
- balance: MEGAFAUNA DROPS ARE LAVAPROOF
- imageadd: cool codex cicatrix inhands
- rscadd: gravitokinetic stands from tg
- balance: buffs stands overall
- bugfix: protector stands no longer become tposing invisible apes sometimes
- bugfix: jacqueline spawns on boxstation
- rscadd: secsheath for your cool stunsword at your local security vendor. you gotta
hack it first though.
- imageadd: fuck the r*d cr*ss
- rscadd: The legion megafauna has been reworked. The fight should now be both slightly
harder and faster.
- balance: You can no longer cheese the colossus by being a sand golem and simply
being immune.

View File

@@ -1,4 +0,0 @@
author: "Hatterhat"
delete-after: True
changes:
- rscadd: "The wastes of Lavaland and the icy caverns of Snow Taxi rumble in unison."

View File

@@ -1,4 +0,0 @@
author: "silicons"
delete-after: True
changes:
- tweak: "medium screens are better now"

View File

@@ -1,6 +0,0 @@
author: "Hatterhat"
delete-after: True
changes:
- rscadd: "Changeling bone gauntlets! They punch the shit out of people really good."
- tweak: "Guerilla gloves and gorilla gloves inherit the strip modifiers of their predecessors, because apparently they had those."
- balance: "Pugilists now always hit the targeted limb and never miss."

View File

@@ -1,4 +0,0 @@
author: "timothyteakettle"
delete-after: True
changes:
- tweak: "looking at loadout equips loadout items on your preview image instead of job items"

View File

@@ -1,4 +0,0 @@
author: "Putnam3145"
delete-after: True
changes:
- refactor: "Dwarf speech is no longer absolutely paranoid about word replacement."

View File

@@ -1,4 +0,0 @@
author: "LetterN"
delete-after: True
changes:
- code_imp: "Updates git and build tests."

View File

@@ -1,4 +0,0 @@
author: "silicons"
delete-after: True
changes:
- tweak: "the warp implant now actually warps you back 10 seconds. leaves a trail, though. now unlimited us."

View File

@@ -1,4 +0,0 @@
author: "timothyteakettle"
delete-after: True
changes:
- tweak: "you can now get a family heirlooms based off your species instead of job"

View File

@@ -1,4 +0,0 @@
author: "Detective-Google"
delete-after: True
changes:
- rscadd: "arcade carpet"

View File

@@ -1,4 +0,0 @@
author: "timothyteakettle"
delete-after: True
changes:
- rscadd: "roundstart slimes can turn into puddles now"

View File

@@ -1,4 +0,0 @@
author: "Tupinambis"
delete-after: True
changes:
- rscadd: "Arachnids (spider people) with limited night vision, flash vulnerability, and webbing."

View File

@@ -1,5 +0,0 @@
author: "LetterN"
delete-after: True
changes:
- bugfix: "minimap text"
- code_imp: "ports cinematic upgrades"

View File

@@ -1,6 +0,0 @@
author: "DeltaFire15"
delete-after: True
changes:
- bugfix: "the blacksmithing skill now works properly"
- tweak: "Anvils cannot be interacted with with hammers whilst they are already being used"
- tweak: "If someone has no gloves when interacting with heated ingots, they no longer ignore their effects."

View File

@@ -1,4 +0,0 @@
author: "DeltaFire15"
delete-after: True
changes:
- bugfix: "The Revenant self-revive ability is no longer broken."

View File

@@ -1,4 +0,0 @@
author: "DeltaFire15"
delete-after: True
changes:
- bugfix: "People installing KA modkits in miner borgs is no longer broken."

View File

@@ -1,4 +0,0 @@
author: "Detective-Google"
delete-after: True
changes:
- rscadd: "explosions now get broadcasted to deadchat."

View File

@@ -1,5 +0,0 @@
author: "Zandario"
delete-after: True
changes:
- code_imp: "Added some framework for future species expansions, including clothing refitting."
- refactor: "Made majority of the relevant Species IDs and Categories pre-defined, also for easier expansion and use."

View File

@@ -1,5 +0,0 @@
author: "Bhijn"
delete-after: True
changes:
- tweak: "Changeling loudness is now determined as an average of all their abilities, rather than the sum"
- tweak: "To compensate for this, blood tests now require a loudness value of 1 or higher to detect ling blood. Additionally, blood test explosions are now triggered only when the loudness value is higher than 2."

View File

@@ -1,4 +0,0 @@
author: "Putnam3145"
delete-after: True
changes:
- bugfix: "Toilet loot spawners don't lag the server on server start with forced hard dels."

View File

@@ -1,5 +0,0 @@
author: "LetterN"
delete-after: True
changes:
- rscadd: "2 more ways to get up from z1"
- tweak: "tweaked the z2 garden to be less blank"

View File

@@ -1,4 +0,0 @@
author: "Putnam3145"
delete-after: True
changes:
- bugfix: "Holofirelocks work now."

View File

@@ -1,5 +0,0 @@
author: "Hatterhat"
delete-after: True
changes:
- rscadd: "Survival daggers! A slightly more expensive survival knife that comes with a brighter flashlight. On the blade."
- tweak: "Luxury pod capsules look different from normal capsules."

View File

@@ -1,6 +0,0 @@
author: "zeroisthebiggay"
delete-after: True
changes:
- rscadd: "gravitokinetic stands from tg"
- balance: "buffs stands overall"
- bugfix: "protector stands no longer become tposing invisible apes sometimes"

View File

@@ -1,6 +0,0 @@
author: "EmeraldSundisk"
delete-after: True
changes:
- balance: "The \"Skelter ruin\" now has stechkins as opposed to M1911s"
- tweak: "Skelter's decorative bullet casings replaced to factor in the change in caliber"
- rscadd: "Skelter now has a combat knife and fluff note"

View File

@@ -1,4 +0,0 @@
author: "Hatterhat"
delete-after: True
changes:
- imageadd: "The Syndicate appear to be issuing new revolver variants."

View File

@@ -1,4 +0,0 @@
author: "Hatterhat"
delete-after: True
changes:
- bugfix: "Cryogenics now screams on common again when your fuckbuddy heads out."

View File

@@ -1,4 +0,0 @@
author: "timothyteakettle"
delete-after: True
changes:
- rscadd: "you can now pick your eye sprites from customization"

View File

@@ -1,4 +0,0 @@
author: "Thalpy"
delete-after: True
changes:
- bugfix: "fixes some bugs in jacqs code from edits to the codebase"

View File

@@ -1,4 +0,0 @@
author: "yorii"
delete-after: True
changes:
- bugfix: "fixed botany rounding error that caused grass and other plants to misbehave"

View File

@@ -1,4 +0,0 @@
author: "silicons"
delete-after: True
changes:
- bugfix: "simple mobs are now immune to radioactive contamination"

View File

@@ -1,4 +0,0 @@
author: "TheObserver-sys"
delete-after: True
changes:
- bugfix: "Drake? Where's the dead fairygrass sprite?"

View File

@@ -1,4 +0,0 @@
author: "Detective-Google"
delete-after: True
changes:
- rscadd: "Lick radial"

Some files were not shown because too many files have changed in this diff Show More