Merge remote-tracking branch 'upstream/master' into the-p-o-o-l

This commit is contained in:
Detective Google
2020-01-28 20:19:55 -06:00
279 changed files with 1896 additions and 2121 deletions
+3
View File
@@ -6,3 +6,6 @@ indent_size = 4
[*.yml]
indent_style = space
indent_size = 2
[*.txt]
insert_final_newline = false
+15 -15
View File
@@ -1,6 +1,5 @@
##Citadel Station 13 <BR>
Based and maintained from /tg/station.<BR>
## Citadel Station 13
Based and maintained from /tg/station.
[![forthebadge](http://forthebadge.com/images/badges/60-percent-of-the-time-works-every-time.svg)](https://forthebadge.com) [![forthebadge](http://forthebadge.com/images/badges/pretty-risque.svg)](https://forthebadge.com) [![forthebadge](http://forthebadge.com/images/badges/you-didnt-ask-for-this.svg)](http://forthebadge.com)
@@ -10,18 +9,19 @@ Based and maintained from /tg/station.<BR>
[![Percentage of issues still open](http://isitmaintained.com/badge/open/Citadel-Station-13/Citadel-Station-13.svg)](http://isitmaintained.com/project/Citadel-Station-13/Citadel-Station-13 "Percentage of issues still open") [![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/Citadel-Station-13/Citadel-Station-13.svg)](http://isitmaintained.com/project/Citadel-Station-13/Citadel-Station-13 "Average time to resolve an issue")
**Upstream Information** <BR>
**Website:** http://www.tgstation13.org <BR>
**Code:** https://github.com/tgstation/tgstation <BR>
**Wiki** http://tgstation13.org/wiki/Main_Page <BR>
**IRC:** irc://irc.rizon.net/coderbus or if you dont have an IRC client, you can click [here](https://kiwiirc.com/client/irc.rizon.net:6667/?&theme=cli#coderbus).<BR>
**Citadel Station Information** <BR>
**Forums:** http://citadel-station.net/forum/ <BR>
**Ban Appeals:** http://citadel-station.net/forum/forumdisplay.php?fid=8 <BR>
**Code:** https://github.com/Citadel-Station-13/Citadel-Station-13 <BR>
**Discord:** [Here](https://discord.gg/E6SQuhz). <BR>
**Upstream Information**
**Website:** https://tgstation13.org
**Code:** https://github.com/tgstation/tgstation
**Wiki** https://tgstation13.org/wiki/Main_Page
**IRC:** irc://irc.rizon.net/coderbus or if you dont have an IRC client, you can click [here](https://kiwiirc.com/client/irc.rizon.net:6667/?&theme=cli#coderbus).
**Citadel Station Information**
**Website:** http://citadel-station.net
**Forums:** http://citadel-station.net/forum
**Ban Appeals:** http://citadel-station.net/forum/forumdisplay.php?fid=8
**Code:** https://github.com/Citadel-Station-13/Citadel-Station-13
**Discord:** [Here](https://discord.gg/E6SQuhz)
## DOWNLOADING
There are a number of ways to download the source code. Some are described here, an alternative all-inclusive guide is also located at http://www.tgstation13.org/wiki/Downloading_the_source_code
+2 -2
View File
@@ -184,7 +184,7 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list(
#define BODY_ZONE_PRECISE_R_FOOT "r_foot"
//We will round to this value in damage calculations.
#define DAMAGE_PRECISION 0.1
#define DAMAGE_PRECISION 0.01
//items total mass, used to calculate their attacks' stamina costs. If not defined, the cost will be (w_class * 1.25)
#define TOTAL_MASS_TINY_ITEM 1.25
@@ -202,4 +202,4 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list(
#define BULLET_ACT_HIT "HIT" //It's a successful hit, whatever that means in the context of the thing it's hitting.
#define BULLET_ACT_BLOCK "BLOCK" //It's a blocked hit, whatever that means in the context of the thing it's hitting.
#define BULLET_ACT_FORCE_PIERCE "PIERCE" //It pierces through the object regardless of the bullet being piercing by default.
#define BULLET_ACT_TURF "TURF" //It hit us but it should hit something on the same turf too. Usually used for turfs.
#define BULLET_ACT_TURF "TURF" //It hit us but it should hit something on the same turf too. Usually used for turfs.
+1
View File
@@ -1,6 +1,7 @@
//config files
#define CONFIG_GET(X) global.config.Get(/datum/config_entry/##X)
#define CONFIG_SET(X, Y) global.config.Set(/datum/config_entry/##X, ##Y)
#define CONFIG_GET_ENTRY(X) global.config.GetEntryDatum(/datum/config_entry/##X)
#define CONFIG_MAPS_FILE "maps.txt"
+6 -1
View File
@@ -8,7 +8,7 @@
#define REAGENT_PURITY_ACCURACY 0.001
#define DEFAULT_SPECIFIC_HEAT 200
// container_type defines
//reagents_holder_flags defines
#define INJECTABLE (1<<0) // Makes it possible to add reagents through droppers and syringes.
#define DRAWABLE (1<<1) // Makes it possible to remove reagents through syringes.
@@ -29,6 +29,11 @@
#define PATCH 4 // patches
#define INJECT 5 // injection
//container_flags
#define PH_WEAK (1 << 0)
#define TEMP_WEAK (1 << 1)
#define APTFT_VERB (1 << 2) //APTFT stands for "amount per transfer from this"
#define APTFT_ALTCLICK (1 << 3)
//defines passed through to the on_reagent_change proc
#define DEL_REAGENT 1 // reagent deleted (fully cleared)
+6
View File
@@ -165,6 +165,12 @@
/proc/log_mapping(text)
WRITE_LOG(GLOB.world_map_error_log, text)
/proc/log_reagent(text)
WRITE_LOG(GLOB.reagent_log, text)
/proc/log_reagent_transfer(text)
log_reagent("TRANSFER: [text]")
/* For logging round startup. */
/proc/start_log(log)
WRITE_LOG(log, "Starting up round ID [GLOB.round_id].\n-------------------------")
+2
View File
@@ -227,6 +227,8 @@
/proc/get_sub_areas_contents(area/A, include_base = TRUE)
if(ispath(A))
A = GLOB.areas_by_type[A]
else
A = get_area(A) //in case it's called on other atoms.
if(!A)
return
if(A.base_area)
+15 -34
View File
@@ -145,20 +145,6 @@
turfs += T
return turfs
//This is the new version of recursive_mob_check, used for say().
//The other proc was left intact because morgue trays use it.
//Sped this up again for real this time
/proc/recursive_hear_check(O)
var/list/processing_list = list(O)
. = list()
while(processing_list.len)
var/atom/A = processing_list[1]
if(A.flags_1 & HEAR_1)
. += A
processing_list.Cut(1, 2)
processing_list += A.contents
/** recursive_organ_check
* inputs: O (object to start with)
* outputs:
@@ -238,35 +224,30 @@
return found_mobs
/proc/get_hearers_in_view(R, atom/source)
// Returns a list of hearers in view(R) from source (ignoring luminosity). Used in saycode.
var/turf/T = get_turf(source)
. = list()
if(!T)
return
var/list/processing_list = list()
if (R == 0) // if the range is zero, we know exactly where to look for, we can skip view
processing_list += T.contents // We can shave off one iteration by assuming turfs cannot hear
else // A variation of get_hear inlined here to take advantage of the compiler's fastpath for obj/mob in view
var/list/processing = list()
if(R == 0)
processing += T.contents
else
var/lum = T.luminosity
T.luminosity = 6 // This is the maximum luminosity
var/list/cachedview = view(R, T)
for(var/mob/M in cachedview)
processing_list += M
for(var/obj/O in cachedview)
processing_list += O
T.luminosity = 6
var/list/cached_view = view(R, T)
for(var/mob/M in cached_view)
processing += M
for(var/obj/O in cached_view)
processing += O
T.luminosity = lum
while(processing_list.len) // recursive_hear_check inlined here
var/atom/A = processing_list[1]
var/i = 0
while(i < length(processing))
var/atom/A = processing[++i]
if(A.flags_1 & HEAR_1)
. += A
SEND_SIGNAL(A, COMSIG_ATOM_HEARER_IN_VIEW, processing_list, .)
processing_list.Cut(1, 2)
processing_list += A.contents
SEND_SIGNAL(A, COMSIG_ATOM_HEARER_IN_VIEW, processing, .)
processing += A.contents
/proc/get_mobs_in_radio_ranges(list/obj/item/radio/radios)
. = list()
+15 -16
View File
@@ -457,36 +457,35 @@ Turf and target are separate in case you want to teleport some distance from a t
/atom/proc/GetAllContents(var/T)
var/list/processing_list = list(src)
var/list/assembled = list()
if(T)
while(processing_list.len)
var/atom/A = processing_list[1]
processing_list.Cut(1, 2)
. = list()
var/i = 0
while(i < length(processing_list))
var/atom/A = processing_list[++i]
//Byond does not allow things to be in multiple contents, or double parent-child hierarchies, so only += is needed
//This is also why we don't need to check against assembled as we go along
processing_list += A.contents
if(istype(A,T))
assembled += A
. += A
else
while(processing_list.len)
var/atom/A = processing_list[1]
processing_list.Cut(1, 2)
var/i = 0
while(i < length(processing_list))
var/atom/A = processing_list[++i]
processing_list += A.contents
assembled += A
return assembled
return processing_list
/atom/proc/GetAllContentsIgnoring(list/ignore_typecache)
if(!length(ignore_typecache))
return GetAllContents()
var/list/processing = list(src)
var/list/assembled = list()
while(processing.len)
var/atom/A = processing[1]
processing.Cut(1,2)
. = list()
var/i = 0
while(i < length(processing))
var/atom/A = processing[++i]
if(!ignore_typecache[A.type])
processing += A.contents
assembled += A
return assembled
. += A
//Step-towards method of determining whether one atom can see another. Similar to viewers()
/proc/can_see(atom/source, atom/target, length=5) // I couldnt be arsed to do actual raycasting :I This is horribly inaccurate.
+2
View File
@@ -32,6 +32,8 @@ GLOBAL_VAR(world_map_error_log)
GLOBAL_PROTECT(world_map_error_log)
GLOBAL_VAR(subsystem_log)
GLOBAL_PROTECT(subsystem_log)
GLOBAL_VAR(reagent_log)
GLOBAL_PROTECT(reagent_log)
GLOBAL_VAR(world_crafting_log)
GLOBAL_PROTECT(world_crafting_log)
@@ -193,6 +193,13 @@
stat("[name]:", statclick)
/datum/controller/configuration/proc/Get(entry_type)
var/datum/config_entry/E = GetEntryDatum(entry_type)
if((E.protection & CONFIG_ENTRY_HIDDEN) && IsAdminAdvancedProcCall() && GLOB.LastAdminCalledProc == "Get" && GLOB.LastAdminCalledTargetRef == "[REF(src)]")
log_admin_private("Config access of [entry_type] attempted by [key_name(usr)]")
return
return E.config_entry_value
/datum/controller/configuration/proc/GetEntryDatum(entry_type)
var/datum/config_entry/E = entry_type
var/entry_is_abstract = initial(E.abstract_type) == entry_type
if(entry_is_abstract)
@@ -200,10 +207,7 @@
E = entries_by_type[entry_type]
if(!E)
CRASH("Missing config entry for [entry_type]!")
if((E.protection & CONFIG_ENTRY_HIDDEN) && IsAdminAdvancedProcCall() && GLOB.LastAdminCalledProc == "Get" && GLOB.LastAdminCalledTargetRef == "[REF(src)]")
log_admin_private("Config access of [entry_type] attempted by [key_name(usr)]")
return
return E.config_entry_value
return E
/datum/controller/configuration/proc/Set(entry_type, new_val)
var/datum/config_entry/E = entry_type
@@ -249,6 +249,18 @@
/datum/config_entry/number/movedelay/walk_delay
/datum/config_entry/number/movedelay/sprint_speed_increase
config_entry_value = 1
/datum/config_entry/number/movedelay/sprint_buffer_max
config_entry_value = 42
/datum/config_entry/number/movedelay/sprint_stamina_cost
config_entry_value = 0.7
/datum/config_entry/number/movedelay/sprint_buffer_regen_per_ds
config_entry_value = 0.3
/////////////////////////////////////////////////Outdated move delay
/datum/config_entry/number/outdated_movedelay
deprecated_by = /datum/config_entry/keyed_list/multiplicative_movespeed
+1 -1
View File
@@ -110,7 +110,7 @@
// Randomly pick a symptom to activate.
/datum/disease/advance/stage_act()
..()
if(carrier)
if(carrier || QDELETED(src)) // Could be cured in parent call.
return
if(symptoms && symptoms.len)
+1
View File
@@ -15,6 +15,7 @@
/datum/quirk/New(mob/living/quirk_mob, spawn_effects)
if(!quirk_mob || (human_only && !ishuman(quirk_mob)) || quirk_mob.has_quirk(type))
qdel(src)
return
quirk_holder = quirk_mob
SSquirks.quirk_objects += src
to_chat(quirk_holder, gain_text)
@@ -5,6 +5,7 @@
/datum/game_mode/traitor/bros
name = "traitor+brothers"
config_tag = "traitorbro"
required_players = 25
restricted_jobs = list("AI", "Cyborg")
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
+1 -1
View File
@@ -527,7 +527,7 @@ GLOBAL_LIST_EMPTY(possible_items)
else if(targetinfo.check_special_completion(I))//Returns 1 by default. Items with special checks will return 1 if the conditions are fulfilled.
return TRUE
if(targetinfo && I.type in targetinfo.altitems) //Ok, so you don't have the item. Do you have an alternative, at least?
if(targetinfo && (I.type in targetinfo.altitems)) //Ok, so you don't have the item. Do you have an alternative, at least?
if(targetinfo.check_special_completion(I))//Yeah, we do! Don't return 0 if we don't though - then you could fail if you had 1 item that didn't pass and got checked first!
return TRUE
return FALSE
+2 -1
View File
@@ -319,7 +319,8 @@
if(status)
change_msg = "reactivates"
triggerCameraAlarm()
addtimer(CALLBACK(src, .proc/cancelCameraAlarm), 100)
if(!QDELETED(src)) //We'll be doing it anyway in destroy
addtimer(CALLBACK(src, .proc/cancelCameraAlarm), 100)
if(displaymessage)
if(user)
visible_message("<span class='danger'>[user] [change_msg] [src]!</span>")
@@ -119,6 +119,9 @@
if(istype(P, /obj/item/circuitboard/machine))
var/obj/item/circuitboard/machine/B = P
if(!B.build_path)
to_chat(user, "<span class'warning'>This circuitboard seems to be broken.</span>")
return
if(!anchored && B.needs_anchored)
to_chat(user, "<span class='warning'>The frame needs to be secured first!</span>")
return
+2 -3
View File
@@ -288,9 +288,10 @@
return
operating = TRUE
do_animate("closing")
layer = closingLayer
if(!safe)
crush()
sleep(5)
density = TRUE
sleep(5)
@@ -302,8 +303,6 @@
update_freelook_sight()
if(safe)
CheckForMobs()
else
crush()
return 1
/obj/machinery/door/proc/CheckForMobs()
+1 -1
View File
@@ -198,7 +198,7 @@
return
else if(W.force) //hit and turn it on
..()
var/area/A = get_area(src)
var/area/A = get_base_area(src)
if(!A.fire)
alarm()
return
+2 -2
View File
@@ -456,7 +456,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player)
if(!SSmapping.station_room_templates[t])
log_world("Station room spawner placed at ([T.x], [T.y], [T.z]) has invalid ruin name of \"[t]\" in its list")
templates -= t
template_name = pickweight(templates)
template_name = pickweightAllowZero(templates)
if(!template_name)
GLOB.stationroom_landmarks -= src
qdel(src)
@@ -485,4 +485,4 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player)
// Landmark for the mining station
/obj/effect/landmark/stationroom/lavaland/station
templates = list("Public Mining Base" = 3)
icon = 'icons/rooms/Lavaland/Mining.dmi'
icon = 'icons/rooms/Lavaland/Mining.dmi'
+4 -5
View File
@@ -146,7 +146,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
if(!proximity || lit) //can't dip if cigarette is lit (it will heat the reagents in the glass instead)
return
if(istype(glass)) //you can dip cigarettes into beakers
if(glass.reagents.trans_to(src, chem_volume)) //if reagents were transfered, show the message
if(glass.reagents.trans_to(src, chem_volume, log = "cigar fill: dip cigarette")) //if reagents were transfered, show the message
to_chat(user, "<span class='notice'>You dip \the [src] into \the [glass].</span>")
else //if not, either the beaker was empty, or the cigarette was full
if(!glass.reagents.total_volume)
@@ -154,7 +154,6 @@ CIGARETTE PACKETS ARE IN FANCY.DM
else
to_chat(user, "<span class='notice'>[src] is full.</span>")
/obj/item/clothing/mask/cigarette/proc/light(flavor_text = null)
if(lit)
return
@@ -438,7 +437,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
packeditem = 1
name = "[O.name]-packed [initial(name)]"
if(O.reagents)
O.reagents.trans_to(src, O.reagents.total_volume)
O.reagents.trans_to(src, O.reagents.total_volume, log = "cigar fill: pipe pack")
qdel(O)
else
to_chat(user, "<span class='warning'>It has to be dried first!</span>")
@@ -687,7 +686,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
if(O.dry)
var/obj/item/clothing/mask/cigarette/rollie/R = new /obj/item/clothing/mask/cigarette/rollie(user.loc)
R.chem_volume = target.reagents.total_volume
target.reagents.trans_to(R, R.chem_volume)
target.reagents.trans_to(R, R.chem_volume, log = "cigar fill: rolling paper afterattack")
qdel(target)
qdel(src)
user.put_in_active_hand(R)
@@ -903,7 +902,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
//Transfer reagents and remove the plant
user.show_message("<span class='notice'>You stuff the [DP] into the [src]'s bowl.</span>", MSG_VISUAL)
DP.reagents.trans_to(src, 100)
DP.reagents.trans_to(src, 100, log = "cigar fill: bong")
qdel(DP)
return
else
@@ -14,6 +14,7 @@
var/last_use = 0
var/next_use = 0
var/obj/effect/abstract/sync_holder/sync_holder
var/resync_timer
/obj/item/desynchronizer/attack_self(mob/living/user)
if(world.time < next_use)
@@ -56,16 +57,20 @@
SEND_SIGNAL(AM, COMSIG_MOVABLE_SECLUDED_LOCATION)
last_use = world.time
icon_state = "desynchronizer-on"
addtimer(CALLBACK(src, .proc/resync), duration)
resync_timer = addtimer(CALLBACK(src, .proc/resync), duration , TIMER_STOPPABLE)
/obj/item/desynchronizer/proc/resync()
new /obj/effect/temp_visual/desynchronizer(sync_holder.drop_location())
QDEL_NULL(sync_holder)
if(resync_timer)
deltimer(resync_timer)
resync_timer = null
icon_state = initial(icon_state)
next_use = world.time + (world.time - last_use) // Could be 2*world.time-last_use but that would just be confusing
/obj/item/desynchronizer/Destroy()
resync()
if(sync_holder)
resync()
return ..()
/obj/effect/abstract/sync_holder
@@ -309,6 +309,15 @@ GLOBAL_LIST_INIT(bamboo_recipes, list ( \
recipes = GLOB.bamboo_recipes
return ..()
/obj/item/stack/sheet/mineral/bamboo/ten
amount = 10
/obj/item/stack/sheet/mineral/bamboo/twenty
amount = 20
/obj/item/stack/sheet/mineral/bamboo/fifty
amount = 50
/*
* Cloth
*/
+1 -1
View File
@@ -305,7 +305,7 @@
/datum/barsign/meow_mix
name = "Meow Mix"
icon = "meow_mix"
icon = "Meow Mix"
desc = "No, we don't serve catnip, officer!"
/datum/barsign/hiddensigns
@@ -532,7 +532,7 @@
/obj/structure/closet/CtrlShiftClick(mob/living/user)
if(!HAS_TRAIT(user, TRAIT_SKITTISH))
return ..()
if(!user.canUseTopic(src) || !isturf(user.loc))
if(!user.canUseTopic(src) || !isturf(user.loc) || !user.Adjacent(src) || !user.CanReach(src))
return
dive_into(user)
+3 -2
View File
@@ -42,8 +42,9 @@
if(.)
return
to_chat(user, "<span class='notice'>You take down [src].</span>")
victim.forceMove(drop_location())
victim = null
if(victim)
victim.forceMove(drop_location())
victim = null
spear.forceMove(drop_location())
spear = null
qdel(src)
+2
View File
@@ -116,6 +116,7 @@ GLOBAL_LIST(topic_status_cache)
GLOB.query_debug_log = "[GLOB.log_directory]/query_debug.log"
GLOB.world_job_debug_log = "[GLOB.log_directory]/job_debug.log"
GLOB.subsystem_log = "[GLOB.log_directory]/subsystem.log"
GLOB.reagent_log = "[GLOB.log_directory]/reagents.log"
GLOB.world_crafting_log = "[GLOB.log_directory]/crafting.log"
#ifdef UNIT_TESTS
@@ -132,6 +133,7 @@ GLOBAL_LIST(topic_status_cache)
start_log(GLOB.world_runtime_log)
start_log(GLOB.world_job_debug_log)
start_log(GLOB.subsystem_log)
start_log(GLOB.reagent_log)
start_log(GLOB.world_crafting_log)
GLOB.changelog_hash = md5('html/changelog.html') //for telling if the changelog has changed recently
+1 -1
View File
@@ -231,7 +231,7 @@
if (!vr_area)
qdel(src)
return
var/list/contents = get_sub_areas_contents(src)
var/list/contents = get_sub_areas_contents(vr_area)
for (var/obj/item/ammo_casing/casing in contents)
qdel(casing)
for(var/obj/effect/decal/cleanable/C in contents)
@@ -29,6 +29,11 @@
var/stealth_armor = list("melee" = 15, "bullet" = 15, "laser" = 15, "energy" = 15, "bomb" = 15, "bio" = 15, "rad" = 15, "fire" = 70, "acid" = 70)
var/combat_armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 50, "bomb" = 50, "bio" = 50, "rad" = 50, "fire" = 90, "acid" = 90)
/obj/item/clothing/suit/armor/abductor/vest/Initialize()
. = ..()
stealth_armor = getArmor(arglist(stealth_armor))
combat_armor = getArmor(arglist(combat_armor))
/obj/item/clothing/suit/armor/abductor/vest/proc/toggle_nodrop()
if(HAS_TRAIT_FROM(src, TRAIT_NODROP, ABDUCTOR_VEST_TRAIT))
REMOVE_TRAIT(src, TRAIT_NODROP, ABDUCTOR_VEST_TRAIT)
+2 -1
View File
@@ -274,7 +274,8 @@
/obj/machinery/camera/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
S.DisIntegrate(src)
toggle_cam(S, 0)
if(!QDELETED(S)) //If it got blown up no need to turn it off.
toggle_cam(S, 0)
return TRUE
/obj/machinery/particle_accelerator/control_box/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
@@ -5,6 +5,7 @@
icon_state = "relief_valve-t-map"
can_unwrench = TRUE
construction_type = /obj/item/pipe/binary
interaction_flags_machine = INTERACT_MACHINE_OFFLINE | INTERACT_MACHINE_WIRES_IF_OPEN | INTERACT_MACHINE_ALLOW_SILICON | INTERACT_MACHINE_OPEN_SILICON | INTERACT_MACHINE_SET_MACHINE
var/opened = FALSE
var/open_pressure = ONE_ATMOSPHERE * 3
var/close_pressure = ONE_ATMOSPHERE
@@ -50,9 +51,11 @@
if(!is_operational())
return
var/datum/gas_mixture/air_contents = airs[1]
var/our_pressure = air_contents.return_pressure()
if(opened && our_pressure < close_pressure)
var/datum/gas_mixture/air_one = airs[1]
var/datum/gas_mixture/air_two = airs[2]
var/air_one_pressure = air_one.return_pressure()
var/our_pressure = abs(air_one_pressure - air_two.return_pressure())
if(opened && air_one_pressure < close_pressure)
close()
else if(!opened && our_pressure >= open_pressure)
open()
@@ -4,6 +4,7 @@
icon = 'icons/obj/atmospherics/components/relief_valve.dmi'
icon_state = "relief_valve-e-map"
can_unwrench = TRUE
interaction_flags_machine = INTERACT_MACHINE_OFFLINE | INTERACT_MACHINE_WIRES_IF_OPEN | INTERACT_MACHINE_ALLOW_SILICON | INTERACT_MACHINE_OPEN_SILICON | INTERACT_MACHINE_SET_MACHINE
var/opened = FALSE
var/open_pressure = ONE_ATMOSPHERE * 3
var/close_pressure = ONE_ATMOSPHERE
@@ -7,8 +7,6 @@
#define AMMO_DROP_LIFETIME 300
#define CTF_REQUIRED_PLAYERS 4
/obj/item/twohanded/ctf
name = "banner"
icon = 'icons/obj/items_and_weapons.dmi'
@@ -210,7 +208,6 @@
toggle_all_ctf(user)
return
people_who_want_to_play |= user.ckey
var/num = people_who_want_to_play.len
var/remaining = CTF_REQUIRED_PLAYERS - num
@@ -438,9 +435,9 @@
. = FALSE
if(istype(target, /obj/structure/barricade/security/ctf))
. = TRUE
if(ishuman(target))
var/mob/living/carbon/human/H = target
if(istype(H.wear_suit, /obj/item/clothing/suit/space/hardsuit/shielded/ctf))
if(isliving(target))
var/mob/living/H = target
if((RED_TEAM in H.faction) || (BLUE_TEAM in H.faction))
. = TRUE
// RED TEAM GUNS
-16
View File
@@ -201,22 +201,6 @@
var/item = pick(contains)
new item(C)
/datum/supply_pack/security/armory/spinfusor
name = "Stormhammer Spinfusor Crate"
cost = 14000
desc = "Got yourself a code red? Blob, nukies or even worst knocking on your door? Well with the Stormhammer Spinfusor you can stop crime in one shot, dont miss! Contains two Stormhammer Spinfusors (Note, guns may or may not be loaded). Requires Armory access to open."
contains = list(/obj/item/gun/ballistic/automatic/spinfusor,
/obj/item/gun/ballistic/automatic/spinfusor)
crate_name = "spinfusor crate"
/datum/supply_pack/security/armory/spinfusorammo
name = "Spinfusor Disk Crate"
cost = 7000
desc = "Need more ammo for a Stormhammer? Well we got some for a price! Contains two boxes of Spinfusor disks. Requires Armory access to open."
contains = list(/obj/item/ammo_box/aspinfusor,
/obj/item/ammo_box/aspinfusor)
crate_name = "spinfusor disk crate"
/datum/supply_pack/security/armory/swat
name = "SWAT Crate"
desc = "Contains two fullbody sets of tough, fireproof, pressurized suits designed in a joint effort by IS-ERI and Nanotrasen. Each set contains a suit, helmet, mask, combat belt, and combat gloves. Requires Armory access to open."
+81 -149
View File
@@ -3,7 +3,7 @@
// If you add something to this list, please group it by type and sort it alphabetically instead of just jamming it in like an animal
// cost = 700- Minimum cost, or infinite points are possible.
//////////////////////////////////////////////////////////////////////////////
//////////////////////////// Costumes & Toys /////////////////////////////////
////////////////////////////////// Toys //////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
/datum/supply_pack/costumes_toys
@@ -98,40 +98,6 @@
/obj/item/ammo_box/magazine/toy/pistol)
crate_name = "foam force crate"
/datum/supply_pack/costumes_toys/formalwear
name = "Formalwear Crate"
desc = "You're gonna like the way you look, I guaranteed it. Contains an asston of fancy clothing."
cost = 4750 //Lots of fancy clothing that can be sold back!
contains = list(/obj/item/clothing/under/blacktango,
/obj/item/clothing/under/assistantformal,
/obj/item/clothing/under/assistantformal,
/obj/item/clothing/under/lawyer/bluesuit,
/obj/item/clothing/suit/toggle/lawyer,
/obj/item/clothing/under/lawyer/purpsuit,
/obj/item/clothing/suit/toggle/lawyer/purple,
/obj/item/clothing/under/lawyer/blacksuit,
/obj/item/clothing/suit/toggle/lawyer/black,
/obj/item/clothing/accessory/waistcoat,
/obj/item/clothing/neck/tie/blue,
/obj/item/clothing/neck/tie/red,
/obj/item/clothing/neck/tie/black,
/obj/item/clothing/head/bowler,
/obj/item/clothing/head/fedora,
/obj/item/clothing/head/flatcap,
/obj/item/clothing/head/beret,
/obj/item/clothing/head/that,
/obj/item/clothing/shoes/laceup,
/obj/item/clothing/shoes/laceup,
/obj/item/clothing/shoes/laceup,
/obj/item/clothing/under/suit_jacket/charcoal,
/obj/item/clothing/under/suit_jacket/navy,
/obj/item/clothing/under/suit_jacket/burgundy,
/obj/item/clothing/under/suit_jacket/checkered,
/obj/item/clothing/under/suit_jacket/tan,
/obj/item/lipstick/random)
crate_name = "formalwear crate"
crate_type = /obj/structure/closet/crate/wooden
/datum/supply_pack/costumes_toys/clownpin
name = "Hilarious Firing Pin Crate"
desc = "I uh... I'm not really sure what this does. Wanna buy it?"
@@ -173,47 +139,6 @@
contains = list(/obj/item/storage/box/lasertagpins)
crate_name = "laser tag crate"
/datum/supply_pack/costumes_toys/costume_original
name = "Original Costume Crate"
desc = "Reenact Shakespearean plays with this assortment of outfits. Contains eight different costumes!"
cost = 1750
contains = list(/obj/item/clothing/head/snowman,
/obj/item/clothing/suit/snowman,
/obj/item/clothing/head/chicken,
/obj/item/clothing/suit/chickensuit,
/obj/item/clothing/mask/gas/monkeymask,
/obj/item/clothing/suit/monkeysuit,
/obj/item/clothing/head/cardborg,
/obj/item/clothing/suit/cardborg,
/obj/item/clothing/head/xenos,
/obj/item/clothing/suit/xenos,
/obj/item/clothing/suit/hooded/ian_costume,
/obj/item/clothing/suit/hooded/carp_costume,
/obj/item/clothing/suit/hooded/bee_costume)
crate_name = "original costume crate"
crate_type = /obj/structure/closet/crate/wooden
/datum/supply_pack/costumes_toys/costume
name = "Standard Costume Crate"
desc = "Supply the station's entertainers with the equipment of their trade with these Nanotrasen-approved costumes! Contains a full clown and mime outfit, along with a bike horn and a bottle of nothing."
cost = 1300
access = ACCESS_THEATRE
contains = list(/obj/item/storage/backpack/clown,
/obj/item/clothing/shoes/clown_shoes,
/obj/item/clothing/mask/gas/clown_hat,
/obj/item/clothing/under/rank/clown,
/obj/item/bikehorn,
/obj/item/clothing/under/rank/mime,
/obj/item/clothing/shoes/sneakers/black,
/obj/item/clothing/gloves/color/white,
/obj/item/clothing/mask/gas/mime,
/obj/item/clothing/head/beret,
/obj/item/clothing/suit/suspenders,
/obj/item/reagent_containers/food/drinks/bottle/bottleofnothing,
/obj/item/storage/backpack/mime)
crate_name = "standard costume crate"
crate_type = /obj/structure/closet/crate/wooden
/datum/supply_pack/costumes_toys/randomised/toys
name = "Toy Crate"
desc = "Who cares about pride and accomplishment? Skip the gaming and get straight to the sweet rewards with this product! Contains five random toys. Warranty void if used to prank research directors."
@@ -284,6 +209,86 @@
crate_name = "plushie crate"
crate_type = /obj/structure/closet/crate/wooden
//////////////////////////////////////////////////////////////////////////////
///////////////////////////////// Costumes //////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
/datum/supply_pack/costumes_toys/formalwear
name = "Formalwear Crate"
desc = "You're gonna like the way you look, I guaranteed it. Contains an asston of fancy clothing."
cost = 4750 //Lots of fancy clothing that can be sold back!
contains = list(/obj/item/clothing/under/blacktango,
/obj/item/clothing/under/assistantformal,
/obj/item/clothing/under/assistantformal,
/obj/item/clothing/under/lawyer/bluesuit,
/obj/item/clothing/suit/toggle/lawyer,
/obj/item/clothing/under/lawyer/purpsuit,
/obj/item/clothing/suit/toggle/lawyer/purple,
/obj/item/clothing/under/lawyer/blacksuit,
/obj/item/clothing/suit/toggle/lawyer/black,
/obj/item/clothing/accessory/waistcoat,
/obj/item/clothing/neck/tie/blue,
/obj/item/clothing/neck/tie/red,
/obj/item/clothing/neck/tie/black,
/obj/item/clothing/head/bowler,
/obj/item/clothing/head/fedora,
/obj/item/clothing/head/flatcap,
/obj/item/clothing/head/beret,
/obj/item/clothing/head/that,
/obj/item/clothing/shoes/laceup,
/obj/item/clothing/shoes/laceup,
/obj/item/clothing/shoes/laceup,
/obj/item/clothing/under/suit_jacket/charcoal,
/obj/item/clothing/under/suit_jacket/navy,
/obj/item/clothing/under/suit_jacket/burgundy,
/obj/item/clothing/under/suit_jacket/checkered,
/obj/item/clothing/under/suit_jacket/tan,
/obj/item/lipstick/random)
crate_name = "formalwear crate"
crate_type = /obj/structure/closet/crate/wooden
/datum/supply_pack/costumes_toys/costume_original
name = "Original Costume Crate"
desc = "Reenact Shakespearean plays with this assortment of outfits. Contains eight different costumes!"
cost = 1750
contains = list(/obj/item/clothing/head/snowman,
/obj/item/clothing/suit/snowman,
/obj/item/clothing/head/chicken,
/obj/item/clothing/suit/chickensuit,
/obj/item/clothing/mask/gas/monkeymask,
/obj/item/clothing/suit/monkeysuit,
/obj/item/clothing/head/cardborg,
/obj/item/clothing/suit/cardborg,
/obj/item/clothing/head/xenos,
/obj/item/clothing/suit/xenos,
/obj/item/clothing/suit/hooded/ian_costume,
/obj/item/clothing/suit/hooded/carp_costume,
/obj/item/clothing/suit/hooded/bee_costume)
crate_name = "original costume crate"
crate_type = /obj/structure/closet/crate/wooden
/datum/supply_pack/costumes_toys/costume
name = "Standard Costume Crate"
desc = "Supply the station's entertainers with the equipment of their trade with these Nanotrasen-approved costumes! Contains a full clown and mime outfit, along with a bike horn and a bottle of nothing."
cost = 1300
access = ACCESS_THEATRE
contains = list(/obj/item/storage/backpack/clown,
/obj/item/clothing/shoes/clown_shoes,
/obj/item/clothing/mask/gas/clown_hat,
/obj/item/clothing/under/rank/clown,
/obj/item/bikehorn,
/obj/item/clothing/under/rank/mime,
/obj/item/clothing/shoes/sneakers/black,
/obj/item/clothing/gloves/color/white,
/obj/item/clothing/mask/gas/mime,
/obj/item/clothing/head/beret,
/obj/item/clothing/suit/suspenders,
/obj/item/reagent_containers/food/drinks/bottle/bottleofnothing,
/obj/item/storage/backpack/mime)
crate_name = "standard costume crate"
crate_type = /obj/structure/closet/crate/wooden
/datum/supply_pack/costumes_toys/wizard
name = "Wizard Costume Crate"
desc = "Pretend to join the Wizard Federation with this full wizard outfit! Nanotrasen would like to remind its employees that actually joining the Wizard Federation is subject to termination of job and life."
@@ -294,76 +299,3 @@
/obj/item/clothing/head/wizard/fake)
crate_name = "wizard costume crate"
crate_type = /obj/structure/closet/crate/wooden
/datum/supply_pack/costumes_toys/wardrobes/autodrobe
name = "Autodrobe Supply Crate"
desc = "Autodrobe missing your favorite dress? Solve that issue today with this autodrobe refill."
cost = 1500
contains = list(/obj/item/vending_refill/autodrobe)
crate_name = "autodrobe supply crate"
/datum/supply_pack/costumes_toys/wardrobes/cargo
name = "Cargo Wardrobe Supply Crate"
desc = "This crate contains a refill for the CargoDrobe."
cost = 750
contains = list(/obj/item/vending_refill/wardrobe/cargo_wardrobe)
crate_name = "cargo department supply crate"
/datum/supply_pack/costumes_toys/wardrobes/engineering
name = "Engineering Wardrobe Supply Crate"
desc = "This crate contains refills for the EngiDrobe and AtmosDrobe."
cost = 1500
contains = list(/obj/item/vending_refill/wardrobe/engi_wardrobe,
/obj/item/vending_refill/wardrobe/atmos_wardrobe)
crate_name = "engineering department wardrobe supply crate"
/datum/supply_pack/costumes_toys/wardrobes/general
name = "General Wardrobes Supply Crate"
desc = "This crate contains refills for the CuraDrobe, BarDrobe, ChefDrobe, JaniDrobe, ChapDrobe."
cost = 3750
contains = list(/obj/item/vending_refill/wardrobe/curator_wardrobe,
/obj/item/vending_refill/wardrobe/bar_wardrobe,
/obj/item/vending_refill/wardrobe/chef_wardrobe,
/obj/item/vending_refill/wardrobe/jani_wardrobe,
/obj/item/vending_refill/wardrobe/chap_wardrobe)
crate_name = "general wardrobes vendor refills"
/datum/supply_pack/costumes_toys/wardrobes/hydroponics
name = "Hydrobe Supply Crate"
desc = "This crate contains a refill for the Hydrobe."
cost = 750
contains = list(/obj/item/vending_refill/wardrobe/hydro_wardrobe)
crate_name = "hydrobe supply crate"
/datum/supply_pack/costumes_toys/wardrobes/medical
name = "Medical Wardrobe Supply Crate"
desc = "This crate contains refills for the MediDrobe, ChemDrobe, GeneDrobe, and ViroDrobe."
cost = 3000
contains = list(/obj/item/vending_refill/wardrobe/medi_wardrobe,
/obj/item/vending_refill/wardrobe/chem_wardrobe,
/obj/item/vending_refill/wardrobe/gene_wardrobe,
/obj/item/vending_refill/wardrobe/viro_wardrobe)
crate_name = "medical department wardrobe supply crate"
/datum/supply_pack/costumes_toys/wardrobes/science
name = "Science Wardrobe Supply Crate"
desc = "This crate contains refills for the SciDrobe and RoboDrobe."
cost = 1500
contains = list(/obj/item/vending_refill/wardrobe/robo_wardrobe,
/obj/item/vending_refill/wardrobe/science_wardrobe)
crate_name = "science department wardrobe supply crate"
/datum/supply_pack/costumes_toys/wardrobes/security
name = "Security Wardrobe Supply Crate"
desc = "This crate contains refills for the SecDrobe and LawDrobe."
cost = 1500
contains = list(/obj/item/vending_refill/wardrobe/sec_wardrobe,
/obj/item/vending_refill/wardrobe/law_wardrobe)
crate_name = "security department supply crate"
/datum/supply_pack/costumes_toys/kinkmate
name = "Kinkmate construction kit"
cost = 2000
contraband = TRUE
contains = list(/obj/item/vending_refill/kink, /obj/item/circuitboard/machine/kinkmate)
crate_name = "Kinkmate construction kit"
+19 -17
View File
@@ -11,11 +11,13 @@
/datum/supply_pack/emergency/vehicle
name = "Biker Gang Kit" //TUNNEL SNAKES OWN THIS TOWN
desc = "TUNNEL SNAKES OWN THIS TOWN. Contains an unbranded All Terrain Vehicle, and a complete gang outfit -- consists of black gloves, a menacing skull bandanna, and a SWEET leather overcoat!"
desc = "TUNNEL SNAKES OWN THIS TOWN. Contains an unbranded All Terrain Vehicle, two cans of spraypaint, and a complete gang outfit -- consists of black gloves, a menacing skull bandanna, and a SWEET leather overcoat!"
cost = 2500
contraband = TRUE
contains = list(/obj/vehicle/ridden/atv,
/obj/item/key,
/obj/item/toy/crayon/spraycan,
/obj/item/toy/crayon/spraycan,
/obj/item/clothing/suit/jacket/leather/overcoat,
/obj/item/clothing/gloves/color/black,
/obj/item/clothing/head/soft,
@@ -126,21 +128,6 @@
crate_name = "emergency rcds"
crate_type = /obj/structure/closet/crate/internals
/datum/supply_pack/emergency/soft_suit
name = "Emergency Space Suit"
desc = "Are there bombs going off left and right? Are there meteors shooting around the station? Well then! Here's two fragile space suits for emergencies. Comes with air and masks."
cost = 1200
contains = list(/obj/item/tank/internals/air,
/obj/item/tank/internals/air,
/obj/item/clothing/mask/gas,
/obj/item/clothing/mask/gas,
/obj/item/clothing/suit/space/fragile,
/obj/item/clothing/suit/space/fragile,
/obj/item/clothing/head/helmet/space/fragile,
/obj/item/clothing/head/helmet/space/fragile)
crate_name = "emergency crate"
crate_type = /obj/structure/closet/crate/internals
/datum/supply_pack/emergency/bomb
name = "Explosive Emergency Crate"
desc = "Science gone bonkers? Beeping behind the airlock? Buy now and be the hero the station des... I mean needs! (Time not included.)"
@@ -208,7 +195,7 @@
crate_name = "metal foam grenade crate"
/datum/supply_pack/emergency/mre
name = "MRE supply kit (emergency rations)"
name = "MRE Packs (Emergency Rations)"
desc = "The lights are out. Oxygen's running low. You've run out of food except space weevils. Don't let this be you! Order our NT branded MRE kits today! This pack contains 5 MRE packs with a randomized menu and an oxygen tank."
cost = 2000
contains = list(/obj/item/storage/box/mre/menu1/safe,
@@ -296,6 +283,21 @@
crate_name = "space suit crate"
crate_type = /obj/structure/closet/crate/secure
/datum/supply_pack/emergency/soft_suit
name = "Space Suits (Fragile)"
desc = "Are there bombs going off left and right? Are there meteors shooting around the station? Well then! Here's two fragile space suits for emergencies. Comes with air and masks."
cost = 1200
contains = list(/obj/item/tank/internals/air,
/obj/item/tank/internals/air,
/obj/item/clothing/mask/gas,
/obj/item/clothing/mask/gas,
/obj/item/clothing/suit/space/fragile,
/obj/item/clothing/suit/space/fragile,
/obj/item/clothing/head/helmet/space/fragile,
/obj/item/clothing/head/helmet/space/fragile)
crate_name = "emergency crate"
crate_type = /obj/structure/closet/crate/internals
/datum/supply_pack/emergency/spacejets
name = "Spare EVA Jetpacks"
desc = "Contains three EVA grade jectpaks. Requires EVA access to open."
+19 -1
View File
@@ -3,7 +3,7 @@
// If you add something to this list, please group it by type and sort it alphabetically instead of just jamming it in like an animal
// cost = 700- Minimum cost, or infinite points are possible.
//////////////////////////////////////////////////////////////////////////////
//////////////////////////// Engineering /////////////////////////////////////
///////////////////////////// Engineering ////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
/datum/supply_pack/engineering
@@ -45,6 +45,7 @@
/obj/item/clothing/glasses/meson/engine,
/obj/item/clothing/glasses/meson/engine)
crate_name = "engineering gear crate"
crate_type = /obj/structure/closet/crate/secure/engineering
/datum/supply_pack/engineering/engihardsuit
name = "Engineering Hardsuit"
@@ -55,6 +56,7 @@
/obj/item/clothing/mask/gas,
/obj/item/clothing/suit/space/hardsuit/engine)
crate_name = "engineering hardsuit"
crate_type = /obj/structure/closet/crate/secure/engineering
/datum/supply_pack/engineering/atmoshardsuit
name = "Atmospherics Hardsuit"
@@ -114,6 +116,22 @@
crate_name = "PACMAN generator crate"
crate_type = /obj/structure/closet/crate/engineering/electrical
/datum/supply_pack/engineering/airpump
name = "Portable Air Pump Crate"
desc = "We all know you work in a high pressure workplace. Keep it that way with two additional air pumps!"
cost = 3000
contains = list(/obj/machinery/portable_atmospherics/pump,
/obj/machinery/portable_atmospherics/pump)
crate_name = "portable air pump crate"
/datum/supply_pack/engineering/airscrubber
name = "Portable Scrubber Crate"
desc = "Miasma got you down? Plasma in the vents? Freshen up with these two brand-new air scrubbers!"
cost = 3000
contains = list(/obj/machinery/portable_atmospherics/scrubber,
/obj/machinery/portable_atmospherics/scrubber)
crate_name = "portable scrubber crate"
/datum/supply_pack/engineering/power
name = "Power Cell Crate"
desc = "Looking for power overwhelming? Look no further. Contains three high-voltage power cells."
+68 -53
View File
@@ -10,6 +10,10 @@
group = "Medical"
crate_type = /obj/structure/closet/crate/medical
//////////////////////////////////////////////////////////////////////////////
/////////////////////////////// Equipment ////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
/datum/supply_pack/medical/bodybags
name = "Bodybags"
desc = "For when the bodies hit the floor. Contains 4 boxes of bodybags."
@@ -20,24 +24,6 @@
/obj/item/storage/box/bodybags,)
crate_name = "bodybag crate"
/datum/supply_pack/medical/firstaidbruises
name = "Bruise Treatment Kit Crate"
desc = "Contains three first aid kits focused on healing bruises and broken bones."
cost = 1000
contains = list(/obj/item/storage/firstaid/brute,
/obj/item/storage/firstaid/brute,
/obj/item/storage/firstaid/brute)
crate_name = "brute treatment kit crate"
/datum/supply_pack/medical/firstaidburns
name = "Burn Treatment Kit Crate"
desc = "Contains three first aid kits focused on healing severe burns."
cost = 1000
contains = list(/obj/item/storage/firstaid/fire,
/obj/item/storage/firstaid/fire,
/obj/item/storage/firstaid/fire)
crate_name = "burn treatment kit crate"
/datum/supply_pack/medical/bloodpacks
name = "Blood Pack Variety Crate"
desc = "Contains nine different blood packs for reintroducing blood to patients, plus two universal synthetic blood packs."
@@ -86,16 +72,6 @@
/obj/item/defibrillator/loaded)
crate_name = "defibrillator crate"
/datum/supply_pack/medical/firstaid
name = "First Aid Kit Crate"
desc = "Contains four first aid kits for healing most types of wounds."
cost = 1000
contains = list(/obj/item/storage/firstaid/regular,
/obj/item/storage/firstaid/regular,
/obj/item/storage/firstaid/regular,
/obj/item/storage/firstaid/regular)
crate_name = "first aid kit crate"
/datum/supply_pack/medical/iv_drip
name = "IV Drip Crate"
desc = "Contains a single IV drip stand for intravenous delivery."
@@ -140,13 +116,57 @@
/obj/item/storage/pill_bottle/stimulant)
crate_name = "medical supplies crate"
/datum/supply_pack/medical/vending
name = "Medical Vending Crate"
desc = "Contains refills for medical vending machines."
cost = 2000
contains = list(/obj/item/vending_refill/medical,
/obj/item/vending_refill/wallmed)
crate_name = "medical vending crate"
/datum/supply_pack/medical/adv_surgery_tools
name = "Med-Co Advanced Surgery Tools"
desc = "A full set of Med-Co advanced surgery tools, this crate also comes with a spay of synth flesh as well as a can of . Requires Surgery access to open."
cost = 5500
access = ACCESS_SURGERY
contains = list(/obj/item/storage/belt/medical/surgery_belt_adv,
/obj/item/reagent_containers/medspray/synthflesh,
/obj/item/reagent_containers/medspray/sterilizine)
crate_name = "medco surgery tools"
crate_type = /obj/structure/closet/crate/medical
/datum/supply_pack/medical/surgery
name = "Surgical Supplies Crate"
desc = "Do you want to perform surgery, but don't have one of those fancy shmancy degrees? Just get started with this crate containing a medical duffelbag, Sterilizine spray and collapsible roller bed."
cost = 1300
contains = list(/obj/item/storage/backpack/duffelbag/med/surgery,
/obj/item/reagent_containers/medspray/sterilizine,
/obj/item/roller)
crate_name = "surgical supplies crate"
//////////////////////////////////////////////////////////////////////////////
///////////////////////////// Medical Kits ///////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
/datum/supply_pack/medical/firstaidbruises
name = "Bruise Treatment Kit Crate"
desc = "Contains three first aid kits focused on healing bruises and broken bones."
cost = 1000
contains = list(/obj/item/storage/firstaid/brute,
/obj/item/storage/firstaid/brute,
/obj/item/storage/firstaid/brute)
crate_name = "brute treatment kit crate"
/datum/supply_pack/medical/firstaidburns
name = "Burn Treatment Kit Crate"
desc = "Contains three first aid kits focused on healing severe burns."
cost = 1000
contains = list(/obj/item/storage/firstaid/fire,
/obj/item/storage/firstaid/fire,
/obj/item/storage/firstaid/fire)
crate_name = "burn treatment kit crate"
/datum/supply_pack/medical/firstaid
name = "First Aid Kit Crate"
desc = "Contains four first aid kits for healing most types of wounds."
cost = 1000
contains = list(/obj/item/storage/firstaid/regular,
/obj/item/storage/firstaid/regular,
/obj/item/storage/firstaid/regular,
/obj/item/storage/firstaid/regular)
crate_name = "first aid kit crate"
/datum/supply_pack/medical/sprays
name = "Medical Sprays"
@@ -182,6 +202,15 @@
/obj/item/storage/firstaid/o2)
crate_name = "oxygen deprivation kit crate"
/datum/supply_pack/medical/firstaidtoxins
name = "Toxin Treatment Kit Crate"
desc = "Contains three first aid kits focused on healing damage dealt by heavy toxins."
cost = 1000
contains = list(/obj/item/storage/firstaid/toxin,
/obj/item/storage/firstaid/toxin,
/obj/item/storage/firstaid/toxin)
crate_name = "toxin treatment kit crate"
/datum/supply_pack/medical/advrad
name = "Radiation Treatment Crate Deluxe"
desc = "A crate for when radiation is out of hand... Contains two rad-b-gone kits, one bottle of anti radiation deluxe pills, as well as a radiation treatment deluxe pill bottle!"
@@ -195,23 +224,9 @@
crate_name = "radiation protection crate"
crate_type = /obj/structure/closet/crate/radiation
/datum/supply_pack/medical/surgery
name = "Surgical Supplies Crate"
desc = "Do you want to perform surgery, but don't have one of those fancy shmancy degrees? Just get started with this crate containing a medical duffelbag, Sterilizine spray and collapsible roller bed."
cost = 1300
contains = list(/obj/item/storage/backpack/duffelbag/med/surgery,
/obj/item/reagent_containers/medspray/sterilizine,
/obj/item/roller)
crate_name = "surgical supplies crate"
/datum/supply_pack/medical/firstaidtoxins
name = "Toxin Treatment Kit Crate"
desc = "Contains three first aid kits focused on healing damage dealt by heavy toxins."
cost = 1000
contains = list(/obj/item/storage/firstaid/toxin,
/obj/item/storage/firstaid/toxin,
/obj/item/storage/firstaid/toxin)
crate_name = "toxin treatment kit crate"
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////// Virology ////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
/datum/supply_pack/medical/virus
name = "Virus Crate"
@@ -255,4 +270,4 @@
/obj/item/storage/box/syringes,
/obj/item/storage/box/beakers)
crate_name = "virus containment unit crate"
crate_type = /obj/structure/closet/crate/secure/plasma
crate_type = /obj/structure/closet/crate/secure/plasma
+42 -19
View File
@@ -13,16 +13,6 @@
//////////////////// Paperwork and Writing Supplies //////////////////////////
//////////////////////////////////////////////////////////////////////////////
/datum/supply_pack/misc/abandonedcrate
name = "Loot Box"
desc = "Try your luck with these highly secure loot boxes! Solve the lock, win great prizes! WARNING: EXPLOSIVE FAILURE."
contraband = TRUE
cost = 15000
contains = list(/obj/structure/closet/crate/secure/loot)
crate_name = "abandoned crate"
crate_type = /obj/structure/closet/crate/large
dangerous = TRUE
/datum/supply_pack/misc/artsupply
name = "Art Supplies"
desc = "Make some happy little accidents with six canvasses, two easels, two boxes of crayons, and a rainbow crayon!"
@@ -214,10 +204,41 @@
for(var/i in 1 to 9)
new /obj/item/coin/silver(.)
/datum/supply_pack/misc/dirtymags
name = "Dirty Magazines"
desc = "Get your mind out of the gutter operative, you have work to do. Three items per order. Possible Results: .357 Speedloaders, Kitchen Gun Mags, Stetchkin Mags."
hidden = TRUE
cost = 12000
var/num_contained = 3
contains = list(/obj/item/ammo_box/a357,
/obj/item/ammo_box/a357,
/obj/item/ammo_box/a357,
/obj/item/ammo_box/magazine/pistolm9mm,
/obj/item/ammo_box/magazine/pistolm9mm,
/obj/item/ammo_box/magazine/pistolm9mm,
/obj/item/ammo_box/magazine/m45/kitchengun,
/obj/item/ammo_box/magazine/m45/kitchengun)
crate_name = "crate"
/datum/supply_pack/misc/dirtymags/fill(obj/structure/closet/crate/C)
var/list/L = contains.Copy()
for(var/i in 1 to num_contained)
var/item = pick_n_take(L)
new item(C)
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////// Misc Supplies ///////////////////////////////
///////////////////////////////// Misc Supplies //////////////////////////////
//////////////////////////////////////////////////////////////////////////////
/datum/supply_pack/misc/candles
name = "Candle Crate"
desc = "Set up a romantic dinner or host a séance with these extra candles and crayons."
cost = 850
contains = list(/obj/item/storage/fancy/candle_box,
/obj/item/storage/fancy/candle_box,
/obj/item/storage/box/matches)
crate_name = "candle crate"
/datum/supply_pack/misc/exoticfootwear
name = "Exotic Footwear Crate"
desc = "Popularised by lizards and exotic dancers, the footwear included in this shipment is sure to give your feet the breathing room they deserve. Sweet Kicks Inc. is not responsible for any damage, distress, or @r0u$a1 caused by this shipment."
@@ -234,14 +255,6 @@
/obj/item/clothing/shoes/kindleKicks)
crate_name = "footie crate"
/datum/supply_pack/misc/wrapping_paper
name = "Festive Wrapping Paper Crate"
desc = "Want to mail your loved ones gift-wrapped chocolates, stuffed animals, or the Clown's severed head? You can do all that, with this crate full of wrapping paper."
cost = 1000
contains = list(/obj/item/stack/wrapping_paper)
crate_type = /obj/structure/closet/crate/wooden
crate_name = "festive wrapping paper crate"
/datum/supply_pack/misc/funeral
name = "Funeral Supplies"
desc = "Mourn your dead properly buy sending them off with love filled notes, clean clothes, and a proper ceremony. Contains two candle packs, funeral garb, flowers, a paperbin , and crayons to help aid in religious rituals. Coffin included."
@@ -267,6 +280,16 @@
contains = list(/obj/machinery/jukebox)
crate_name = "Jukebox"
/datum/supply_pack/misc/abandonedcrate
name = "Loot Box"
desc = "Try your luck with these highly secure loot boxes! Solve the lock, win great prizes! WARNING: EXPLOSIVE FAILURE."
contraband = TRUE
cost = 15000
contains = list(/obj/structure/closet/crate/secure/loot)
crate_name = "abandoned crate"
crate_type = /obj/structure/closet/crate/large
dangerous = TRUE
/datum/supply_pack/misc/potted_plants
name = "Potted Plants Crate"
desc = "Spruce up the station with these lovely plants! Contains a random assortment of five potted plants from Nanotrasen's potted plant research division. Warranty void if thrown."
+197 -215
View File
@@ -3,22 +3,47 @@
// If you add something to this list, please group it by type and sort it alphabetically instead of just jamming it in like an animal
// cost = 700- Minimum cost, or infinite points are possible.
//////////////////////////////////////////////////////////////////////////////
//////////////////////////// Organic /////////////////////////////////////////
//////////////////////////////// Organic /////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
/datum/supply_pack/organic
group = "Food & Hydroponics"
crate_type = /obj/structure/closet/crate/freezer
/datum/supply_pack/organic/randomized
var/num_contained = 15
/datum/supply_pack/organic/randomized/fill(obj/structure/closet/crate/C)
for(var/i in 1 to num_contained)
var/item = pick(contains)
new item(C)
//////////////////////////////////////////////////////////////////////////////
/////////////////////////////// Food /////////////////////////////////////////
//////////////////////////////// Meals ///////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
/datum/supply_pack/organic/candy/randomised
/datum/supply_pack/organic/combomeal2
name = "Burger Combo #2"
desc = "We value our customers at the Greasy Griddle, so much so that we're willing to deliver -just for you.- This combo meal contains two burgers, a soda, fries, a toy, and some chicken nuggets."
cost = 3200
contains = list(/obj/item/reagent_containers/food/snacks/burger/bigbite,
/obj/item/reagent_containers/food/snacks/burger/cheese,
/obj/item/reagent_containers/food/snacks/fries,
/obj/item/reagent_containers/food/condiment/pack/ketchup,
/obj/item/reagent_containers/food/condiment/pack/ketchup,
/obj/item/reagent_containers/food/snacks/nugget,
/obj/item/reagent_containers/food/snacks/nugget,
/obj/item/reagent_containers/food/snacks/nugget,
/obj/item/reagent_containers/food/snacks/nugget,
/obj/item/toy/plush/random)
crate_name = "combo meal w/toy"
crate_type = /obj/structure/closet/crate/wooden
/datum/supply_pack/organic/randomized/candy
name = "Candy Crate"
desc = "For people that have an insatiable sweet tooth! Has ten candies to be eaten up.."
cost = 2500
var/num_contained = 10 //number of items picked to be contained in a randomised crate
num_contained = 10
contains = list(/obj/item/reagent_containers/food/snacks/candy,
/obj/item/reagent_containers/food/snacks/lollipop,
/obj/item/reagent_containers/food/snacks/gumball,
@@ -47,97 +72,6 @@
/obj/item/storage/fancy/donut_box)
crate_name = "candy crate"
/datum/supply_pack/organic/candy/randomised/fill(obj/structure/closet/crate/C)
var/list/L = contains.Copy()
for(var/i in 1 to num_contained)
var/item = pick_n_take(L)
new item(C)
/datum/supply_pack/organic/randomized/chef
name = "Excellent Meat Crate"
desc = "The best cuts in the whole galaxy."
cost = 2000
contains = list(/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/slime,
/obj/item/reagent_containers/food/snacks/meat/slab/killertomato,
/obj/item/reagent_containers/food/snacks/meat/slab/bear,
/obj/item/reagent_containers/food/snacks/meat/slab/xeno,
/obj/item/reagent_containers/food/snacks/meat/slab/spider,
/obj/item/reagent_containers/food/snacks/meat/rawbacon,
/obj/item/reagent_containers/food/snacks/spiderleg,
/obj/item/reagent_containers/food/snacks/carpmeat,
/obj/item/reagent_containers/food/snacks/meat/slab/human)
crate_name = "food crate"
/datum/supply_pack/organic/randomized/chef/fill(obj/structure/closet/crate/C)
for(var/i in 1 to 15)
var/item = pick(contains)
new item(C)
/datum/supply_pack/organic/exoticseeds
name = "Exotic Seeds Crate"
desc = "Any entrepreneuring botanist's dream. Contains twelve different seeds, including three replica-pod seeds and two mystery seeds!"
cost = 1500
contains = list(/obj/item/seeds/nettle,
/obj/item/seeds/replicapod,
/obj/item/seeds/replicapod,
/obj/item/seeds/replicapod,
/obj/item/seeds/plump,
/obj/item/seeds/liberty,
/obj/item/seeds/amanita,
/obj/item/seeds/reishi,
/obj/item/seeds/banana,
/obj/item/seeds/bamboo,
/obj/item/seeds/eggplant/eggy,
/obj/item/seeds/random,
/obj/item/seeds/random)
crate_name = "exotic seeds crate"
crate_type = /obj/structure/closet/crate/hydroponics
/datum/supply_pack/organic/food
name = "Food Crate"
desc = "Get things cooking with this crate full of useful ingredients! Contains a two dozen eggs, three bananas, and two bags of flour and rice, two cartons of milk, soymilk, as well as salt and pepper shakers, an enzyme and sugar bottle, and three slabs of monkeymeat."
cost = 1000
contains = list(/obj/item/reagent_containers/food/condiment/flour,
/obj/item/reagent_containers/food/condiment/flour,
/obj/item/reagent_containers/food/condiment/rice,
/obj/item/reagent_containers/food/condiment/rice,
/obj/item/reagent_containers/food/condiment/milk,
/obj/item/reagent_containers/food/condiment/milk,
/obj/item/reagent_containers/food/condiment/soymilk,
/obj/item/reagent_containers/food/condiment/saltshaker,
/obj/item/reagent_containers/food/condiment/peppermill,
/obj/item/storage/fancy/egg_box,
/obj/item/storage/fancy/egg_box,
/obj/item/reagent_containers/food/condiment/enzyme,
/obj/item/reagent_containers/food/condiment/sugar,
/obj/item/reagent_containers/food/snacks/meat/slab/monkey,
/obj/item/reagent_containers/food/snacks/meat/slab/monkey,
/obj/item/reagent_containers/food/snacks/meat/slab/monkey,
/obj/item/reagent_containers/food/snacks/grown/banana,
/obj/item/reagent_containers/food/snacks/grown/banana,
/obj/item/reagent_containers/food/snacks/grown/banana)
crate_name = "food crate"
/datum/supply_pack/organic/randomized/chef/fruits
name = "Fruit Crate"
desc = "Rich in vitamins, may contain oranges."
cost = 1500
contains = list(/obj/item/reagent_containers/food/snacks/grown/citrus/lime,
/obj/item/reagent_containers/food/snacks/grown/citrus/orange,
/obj/item/reagent_containers/food/snacks/grown/banana,
/obj/item/reagent_containers/food/snacks/grown/watermelon,
/obj/item/reagent_containers/food/snacks/grown/apple,
/obj/item/reagent_containers/food/snacks/grown/berries,
/obj/item/reagent_containers/food/snacks/grown/citrus/lemon,
/obj/item/reagent_containers/food/snacks/grown/pineapple,
/obj/item/reagent_containers/food/snacks/grown/cherries,
/obj/item/reagent_containers/food/snacks/grown/grapes,
/obj/item/reagent_containers/food/snacks/grown/grapes/green,
/obj/item/reagent_containers/food/snacks/grown/eggplant,
/obj/item/reagent_containers/food/snacks/grown/peach,
/obj/item/reagent_containers/food/snacks/grown/strawberry)
crate_name = "food crate"
/datum/supply_pack/organic/fiestatortilla
name = "Fiesta Crate"
desc = "Spice up the kitchen with this fiesta themed food order! Contains 8 tortilla based food items, as well as a sombrero, moustache, and cloak!"
@@ -157,102 +91,6 @@
/obj/item/reagent_containers/glass/bottle/capsaicin)
crate_name = "fiesta crate"
/datum/supply_pack/organic/grill
name = "Grilling Starter Kit"
desc = "Hey dad I'm Hungry. Hi Hungry I'm THE NEW GRILLING STARTER KIT ONLY 5000 BUX GET NOW! Contains a cooking grill and five fuel coal sheets."
cost = 3000
crate_type = /obj/structure/closet/crate
contains = list(/obj/item/stack/sheet/mineral/coal/five,
/obj/machinery/grill/unwrenched)
crate_name = "grilling starter kit crate"
/datum/supply_pack/organic/grillfuel
name = "Grilling Fuel Kit"
desc = "Contains coal and coal accessories. (Note: only ten coal sheets.)"
cost = 1000
crate_type = /obj/structure/closet/crate
contains = list(/obj/item/stack/sheet/mineral/coal/ten)
crate_name = "grilling fuel kit crate"
/datum/supply_pack/organic/cream_piee
name = "High-yield Clown-grade Cream Pie Crate"
desc = "Designed by Aussec's Advanced Warfare Research Division, these high-yield, Clown-grade cream pies are powered by a synergy of performance and efficiency. Guaranteed to provide maximum results."
cost = 6000
contains = list(/obj/item/storage/backpack/duffelbag/clown/cream_pie)
crate_name = "party equipment crate"
contraband = TRUE
access = ACCESS_THEATRE
crate_type = /obj/structure/closet/crate/secure
/datum/supply_pack/organic/fakemeat
name = "Meat Crate"
desc = "Run outta meat already? Keep the lizards content with this freezer filled with cruelty-free chemically compounded meat! Contains 12 slabs of meat product, and 4 slabs of *carp*."
cost = 1200 // Buying 3 food crates nets you 9 meat for 900 points, plus like, 6 bags of rice, flour, and egg boxes. This is 12 for 500, but you -only- get meat and carp.
contains = list(/obj/item/reagent_containers/food/snacks/meat/slab/meatproduct,
/obj/item/reagent_containers/food/snacks/meat/slab/meatproduct,
/obj/item/reagent_containers/food/snacks/meat/slab/meatproduct,
/obj/item/reagent_containers/food/snacks/meat/slab/meatproduct,
/obj/item/reagent_containers/food/snacks/meat/slab/meatproduct,
/obj/item/reagent_containers/food/snacks/meat/slab/meatproduct,
/obj/item/reagent_containers/food/snacks/meat/slab/meatproduct,
/obj/item/reagent_containers/food/snacks/meat/slab/meatproduct,
/obj/item/reagent_containers/food/snacks/meat/slab/meatproduct,
/obj/item/reagent_containers/food/snacks/meat/slab/meatproduct,
/obj/item/reagent_containers/food/snacks/meat/slab/meatproduct,
/obj/item/reagent_containers/food/snacks/meat/slab/meatproduct,
/obj/item/reagent_containers/food/snacks/carpmeat/imitation,
/obj/item/reagent_containers/food/snacks/carpmeat/imitation,
/obj/item/reagent_containers/food/snacks/carpmeat/imitation,
/obj/item/reagent_containers/food/snacks/carpmeat/imitation)
crate_name = "meaty crate"
crate_type = /obj/structure/closet/crate/freezer
/datum/supply_pack/organic/monkeydripmeat
name = "*Meat* Crate"
desc = "Need some meat? With this do-it-yourself kit you'll be swimming in it! Contains a monkey cube, an IV drip, and some cryoxadone!"
cost = 2150
contraband = TRUE
contains = list(/obj/item/reagent_containers/food/snacks/monkeycube,
/obj/item/restraints/handcuffs/cable,
/obj/machinery/iv_drip,
/obj/item/reagent_containers/glass/beaker/cryoxadone,
/obj/item/reagent_containers/glass/beaker/cryoxadone)
crate_name = "monkey meat crate"
/datum/supply_pack/organic/mixedboxes
name = "Mixed Ingredient Boxes"
desc = "Get overwhelmed with inspiration by ordering these boxes of surprise ingredients! Get four boxes filled with an assortment of products!"
cost = 2300
contains = list(/obj/item/storage/box/ingredients/wildcard,
/obj/item/storage/box/ingredients/wildcard,
/obj/item/storage/box/ingredients/wildcard,
/obj/item/storage/box/ingredients/wildcard)
crate_name = "wildcard food crate"
crate_type = /obj/structure/closet/crate/freezer
/datum/supply_pack/organic/party
name = "Party Equipment"
desc = "Celebrate both life and death on the station with Nanotrasen's Party Essentials(tm)! Contains seven colored glowsticks, four beers, two ales, a drinking shaker, and a bottle of patron & goldschlager!"
cost = 2000
contains = list(/obj/item/storage/box/drinkingglasses,
/obj/item/reagent_containers/food/drinks/shaker,
/obj/item/reagent_containers/food/drinks/bottle/patron,
/obj/item/reagent_containers/food/drinks/bottle/goldschlager,
/obj/item/reagent_containers/food/drinks/ale,
/obj/item/reagent_containers/food/drinks/ale,
/obj/item/reagent_containers/food/drinks/beer,
/obj/item/reagent_containers/food/drinks/beer,
/obj/item/reagent_containers/food/drinks/beer,
/obj/item/reagent_containers/food/drinks/beer,
/obj/item/flashlight/glowstick,
/obj/item/flashlight/glowstick/red,
/obj/item/flashlight/glowstick/blue,
/obj/item/flashlight/glowstick/cyan,
/obj/item/flashlight/glowstick/orange,
/obj/item/flashlight/glowstick/yellow,
/obj/item/flashlight/glowstick/pink)
crate_name = "party equipment crate"
/datum/supply_pack/organic/pizza
name = "Pizza Crate"
desc = "Best prices on this side of the galaxy. All deliveries are guaranteed to be 99% anomaly-free!"
@@ -287,9 +125,129 @@
considered <b>\[REDACTED\]</b> and returned at your leisure. Note that objects the anomaly produces are specifically attuned exactly to the individual opening the anomaly; regardless \
of species, the individual will find the object edible and it will taste great according to their personal definitions, which vary significantly based on person and species.")
/datum/supply_pack/organic/randomized/chef/vegetables
name = "Vegetables Crate"
desc = "Grown in vats."
//////////////////////////////////////////////////////////////////////////////
//////////////////////////// Raw Ingredients /////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
/datum/supply_pack/organic/food
name = "Food Crate"
desc = "Get things cooking with this crate full of useful ingredients! Contains a two dozen eggs, three bananas, and two bags of flour and rice, two cartons of milk, soymilk, as well as salt and pepper shakers, an enzyme and sugar bottle, and three slabs of monkeymeat."
cost = 1000
contains = list(/obj/item/reagent_containers/food/condiment/flour,
/obj/item/reagent_containers/food/condiment/flour,
/obj/item/reagent_containers/food/condiment/rice,
/obj/item/reagent_containers/food/condiment/rice,
/obj/item/reagent_containers/food/condiment/milk,
/obj/item/reagent_containers/food/condiment/milk,
/obj/item/reagent_containers/food/condiment/soymilk,
/obj/item/reagent_containers/food/condiment/saltshaker,
/obj/item/reagent_containers/food/condiment/peppermill,
/obj/item/storage/fancy/egg_box,
/obj/item/storage/fancy/egg_box,
/obj/item/reagent_containers/food/condiment/enzyme,
/obj/item/reagent_containers/food/condiment/sugar,
/obj/item/reagent_containers/food/snacks/meat/slab/monkey,
/obj/item/reagent_containers/food/snacks/meat/slab/monkey,
/obj/item/reagent_containers/food/snacks/meat/slab/monkey,
/obj/item/reagent_containers/food/snacks/grown/banana,
/obj/item/reagent_containers/food/snacks/grown/banana,
/obj/item/reagent_containers/food/snacks/grown/banana)
crate_name = "food crate"
/datum/supply_pack/organic/randomized/fruits
name = "Fruit Crate"
desc = "Rich in vitamins and possibly sugar. Contains 15 assorted fruits."
cost = 1500
contains = list(/obj/item/reagent_containers/food/snacks/grown/citrus/lime,
/obj/item/reagent_containers/food/snacks/grown/citrus/orange,
/obj/item/reagent_containers/food/snacks/grown/banana,
/obj/item/reagent_containers/food/snacks/grown/watermelon,
/obj/item/reagent_containers/food/snacks/grown/apple,
/obj/item/reagent_containers/food/snacks/grown/berries,
/obj/item/reagent_containers/food/snacks/grown/citrus/lemon,
/obj/item/reagent_containers/food/snacks/grown/pineapple,
/obj/item/reagent_containers/food/snacks/grown/cherries,
/obj/item/reagent_containers/food/snacks/grown/grapes,
/obj/item/reagent_containers/food/snacks/grown/grapes/green,
/obj/item/reagent_containers/food/snacks/grown/eggplant,
/obj/item/reagent_containers/food/snacks/grown/peach,
/obj/item/reagent_containers/food/snacks/grown/strawberry)
crate_name = "fruit crate"
/datum/supply_pack/organic/cream_piee
name = "High-yield Clown-grade Cream Pie Crate"
desc = "Designed by Aussec's Advanced Warfare Research Division, these high-yield, Clown-grade cream pies are powered by a synergy of performance and efficiency. Guaranteed to provide maximum results."
cost = 6000
contains = list(/obj/item/storage/backpack/duffelbag/clown/cream_pie)
crate_name = "party equipment crate"
contraband = TRUE
access = ACCESS_THEATRE
crate_type = /obj/structure/closet/crate/secure
/datum/supply_pack/organic/randomized
name = "Meat Crate (Exotic)"
desc = "The best cuts in the whole galaxy. Contains 15 assorted exotic meats."
cost = 2000
contains = list(/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/slime,
/obj/item/reagent_containers/food/snacks/meat/slab/killertomato,
/obj/item/reagent_containers/food/snacks/meat/slab/bear,
/obj/item/reagent_containers/food/snacks/meat/slab/xeno,
/obj/item/reagent_containers/food/snacks/meat/slab/spider,
/obj/item/reagent_containers/food/snacks/meat/rawbacon,
/obj/item/reagent_containers/food/snacks/spiderleg,
/obj/item/reagent_containers/food/snacks/carpmeat,
/obj/item/reagent_containers/food/snacks/meat/slab/human)
crate_name = "exotic meat crate"
/datum/supply_pack/organic/monkeydripmeat
name = "Meat Crate (Fresh)"
desc = "Need some meat? With this do-it-yourself kit you'll be swimming in it! Contains a monkey cube, an IV drip, and some cryoxadone!"
cost = 2150
contraband = TRUE
contains = list(/obj/item/reagent_containers/food/snacks/monkeycube,
/obj/item/restraints/handcuffs/cable,
/obj/machinery/iv_drip,
/obj/item/reagent_containers/glass/beaker/cryoxadone,
/obj/item/reagent_containers/glass/beaker/cryoxadone)
crate_name = "monkey meat crate"
/datum/supply_pack/organic/fakemeat
name = "Meat Crate 'Synthetic'"
desc = "Run outta meat already? Keep the lizards content with this freezer filled with cruelty-free chemically compounded meat! Contains 12 slabs of meat product, and 4 slabs of *carp*."
cost = 1200 // Buying 3 food crates nets you 9 meat for 900 points, plus like, 6 bags of rice, flour, and egg boxes. This is 12 for 500, but you -only- get meat and carp.
contains = list(/obj/item/reagent_containers/food/snacks/meat/slab/meatproduct,
/obj/item/reagent_containers/food/snacks/meat/slab/meatproduct,
/obj/item/reagent_containers/food/snacks/meat/slab/meatproduct,
/obj/item/reagent_containers/food/snacks/meat/slab/meatproduct,
/obj/item/reagent_containers/food/snacks/meat/slab/meatproduct,
/obj/item/reagent_containers/food/snacks/meat/slab/meatproduct,
/obj/item/reagent_containers/food/snacks/meat/slab/meatproduct,
/obj/item/reagent_containers/food/snacks/meat/slab/meatproduct,
/obj/item/reagent_containers/food/snacks/meat/slab/meatproduct,
/obj/item/reagent_containers/food/snacks/meat/slab/meatproduct,
/obj/item/reagent_containers/food/snacks/meat/slab/meatproduct,
/obj/item/reagent_containers/food/snacks/meat/slab/meatproduct,
/obj/item/reagent_containers/food/snacks/carpmeat/imitation,
/obj/item/reagent_containers/food/snacks/carpmeat/imitation,
/obj/item/reagent_containers/food/snacks/carpmeat/imitation,
/obj/item/reagent_containers/food/snacks/carpmeat/imitation)
crate_name = "meaty crate"
crate_type = /obj/structure/closet/crate/freezer
/datum/supply_pack/organic/mixedboxes
name = "Mixed Ingredient Boxes"
desc = "Get overwhelmed with inspiration by ordering these boxes of surprise ingredients! Get four boxes filled with an assortment of products!"
cost = 2300
contains = list(/obj/item/storage/box/ingredients/wildcard,
/obj/item/storage/box/ingredients/wildcard,
/obj/item/storage/box/ingredients/wildcard,
/obj/item/storage/box/ingredients/wildcard)
crate_name = "wildcard food crate"
crate_type = /obj/structure/closet/crate/freezer
/datum/supply_pack/organic/randomized/vegetables
name = "Vegetable Crate"
desc = "Grown in vats. Contains 15 assorted vegetables."
cost = 1300
contains = list(/obj/item/reagent_containers/food/snacks/grown/chili,
/obj/item/reagent_containers/food/snacks/grown/corn,
@@ -299,7 +257,7 @@
/obj/item/reagent_containers/food/snacks/grown/mushroom/chanterelle,
/obj/item/reagent_containers/food/snacks/grown/onion,
/obj/item/reagent_containers/food/snacks/grown/pumpkin)
crate_name = "food crate"
crate_name = "veggie crate"
//////////////////////////////////////////////////////////////////////////////
//////////////////////////// Hydroponics /////////////////////////////////////
@@ -331,25 +289,6 @@
crate_name = "beekeeping starter crate"
crate_type = /obj/structure/closet/crate/hydroponics
/datum/supply_pack/organic/exoticseeds
name = "Exotic Seeds Crate"
desc = "Any entrepreneuring botanist's dream. Contains twelve different seeds, including three replica-pod seeds and two mystery seeds!"
cost = 1500
contains = list(/obj/item/seeds/nettle,
/obj/item/seeds/replicapod,
/obj/item/seeds/replicapod,
/obj/item/seeds/replicapod,
/obj/item/seeds/plump,
/obj/item/seeds/liberty,
/obj/item/seeds/amanita,
/obj/item/seeds/reishi,
/obj/item/seeds/banana,
/obj/item/seeds/eggplant/eggy,
/obj/item/seeds/random,
/obj/item/seeds/random)
crate_name = "exotic seeds crate"
crate_type = /obj/structure/closet/crate/hydroponics
/datum/supply_pack/organic/hydroponics/hydrotank
name = "Hydroponics Backpack Crate"
desc = "Bring on the flood with this high-capacity backpack crate. Contains 500 units of life-giving H2O. Requires hydroponics access to open."
@@ -402,10 +341,30 @@
/obj/item/seeds/sunflower,
/obj/item/seeds/chanter,
/obj/item/seeds/potato,
/obj/item/seeds/sugarcane)
/obj/item/seeds/sugarcane,
/obj/item/seeds/ambrosia)
crate_name = "seeds crate"
crate_type = /obj/structure/closet/crate/hydroponics
/datum/supply_pack/organic/exoticseeds
name = "Seeds Crate (Exotic)"
desc = "Any entrepreneuring botanist's dream. Contains twelve different seeds, including three replica-pod seeds and two mystery seeds!"
cost = 1500
contains = list(/obj/item/seeds/nettle,
/obj/item/seeds/replicapod,
/obj/item/seeds/replicapod,
/obj/item/seeds/replicapod,
/obj/item/seeds/plump,
/obj/item/seeds/liberty,
/obj/item/seeds/amanita,
/obj/item/seeds/reishi,
/obj/item/seeds/banana,
/obj/item/seeds/eggplant/eggy,
/obj/item/seeds/random,
/obj/item/seeds/random)
crate_name = "exotic seeds crate"
crate_type = /obj/structure/closet/crate/hydroponics
//////////////////////////////////////////////////////////////////////////////
/////////////////////////////////// Misc /////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
@@ -426,6 +385,29 @@
crate_name = "sporting crate"
crate_type = /obj/structure/closet/crate/secure // Would have liked a wooden crate but access >:(
/datum/supply_pack/organic/party
name = "Party Equipment"
desc = "Celebrate both life and death on the station with Nanotrasen's Party Essentials(tm)! Contains seven colored glowsticks, four beers, two ales, a drinking shaker, and a bottle of patron & goldschlager!"
cost = 2000
contains = list(/obj/item/storage/box/drinkingglasses,
/obj/item/reagent_containers/food/drinks/shaker,
/obj/item/reagent_containers/food/drinks/bottle/patron,
/obj/item/reagent_containers/food/drinks/bottle/goldschlager,
/obj/item/reagent_containers/food/drinks/ale,
/obj/item/reagent_containers/food/drinks/ale,
/obj/item/reagent_containers/food/drinks/beer,
/obj/item/reagent_containers/food/drinks/beer,
/obj/item/reagent_containers/food/drinks/beer,
/obj/item/reagent_containers/food/drinks/beer,
/obj/item/flashlight/glowstick,
/obj/item/flashlight/glowstick/red,
/obj/item/flashlight/glowstick/blue,
/obj/item/flashlight/glowstick/cyan,
/obj/item/flashlight/glowstick/orange,
/obj/item/flashlight/glowstick/yellow,
/obj/item/flashlight/glowstick/pink)
crate_name = "party equipment crate"
/datum/supply_pack/organic/vday
name = "Surplus Valentine Crate"
desc = "Turns out we got warehouses of this love-y dove-y crap. We're sending out small bargain buddle of Valentine gear. This crate has two boxes of chocolate, three poppy flowers, five candy hearts, and three cards."
+2 -13
View File
@@ -29,7 +29,7 @@
crate_name = "alien bro alloy crate"
/datum/supply_pack/science/beakers
name = "Chemistry Beackers Crate"
name = "Chemistry Beakers Crate"
desc = "Glassware for any chemistry lab! Contains four small beakers, three large, two plastic, and one metamaterial. As well as three droppers and two pairs of latex gloves."
cost = 1500
contains = list(/obj/item/reagent_containers/glass/beaker,
@@ -82,7 +82,7 @@
crate_name = "circuitry starter pack crate"
/datum/supply_pack/science/glasswork
name = "Glass blower kit Crate"
name = "Glass Blower Kit Crate"
desc = "Learn and make glassworks of usefull things for a profit! Contains glassworking tools and blowing rods. Glass not included."
cost = 1000
contains = list(/obj/item/glasswork/glasskit,
@@ -91,17 +91,6 @@
/obj/item/glasswork/blowing_rod)
crate_name = "glassblower gear crate"
/datum/supply_pack/science/adv_surgery_tools
name = "Med-Co Advanced surgery tools"
desc = "A full set of Med-Co advanced surgery tools, this crate also comes with a spay of synth flesh as well as a can of . Requires Surgery access to open."
cost = 5500
access = ACCESS_SURGERY
contains = list(/obj/item/storage/belt/medical/surgery_belt_adv,
/obj/item/reagent_containers/medspray/synthflesh,
/obj/item/reagent_containers/medspray/sterilizine)
crate_name = "medco newest surgery tools"
crate_type = /obj/structure/closet/crate/medical
/datum/supply_pack/science/monkey
name = "Monkey Cube Crate"
desc = "Stop monkeying around! Contains seven monkey cubes. Just add water!"
-7
View File
@@ -163,13 +163,6 @@
/obj/item/storage/box/handcuffs)
crate_name = "security supply crate"
/datum/supply_pack/security/vending/security
name = "SecTech Supply Crate"
desc = "Officer Paul bought all the donuts? Then refill the security vendor with ths crate."
cost = 1500
contains = list(/obj/machinery/vending/security)
crate_name = "SecTech supply crate"
/datum/supply_pack/security/firingpins
name = "Standard Firing Pins Crate"
desc = "Upgrade your arsenal with 10 standard firing pins. Requires Security access to open."
+33 -43
View File
@@ -10,9 +10,24 @@
group = "Service"
//////////////////////////////////////////////////////////////////////////////
/////////////////////////////// Cargo ////////////////////////////////////////
//////////////////////////////// Cargo ///////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
/datum/supply_pack/service/wrapping_paper
name = "Cargo Packaging Crate"
desc = "Want to mail your loved ones gift-wrapped chocolates, stuffed animals, or the Clown's severed head? You can do all that, with this crate full of festive (and normal) wrapping paper. Also contains a hand labeler and a destination tagger for easy shipping!"
cost = 1000
contains = list(/obj/item/stack/wrapping_paper,
/obj/item/stack/wrapping_paper,
/obj/item/stack/wrapping_paper,
/obj/item/stack/packageWrap,
/obj/item/stack/packageWrap,
/obj/item/stack/packageWrap,
/obj/item/destTagger,
/obj/item/hand_labeler)
crate_type = /obj/structure/closet/crate/wooden
crate_name = "wrapping paper crate"
/datum/supply_pack/service/cargo_supples
name = "Cargo Supplies Crate"
desc = "Sold everything that wasn't bolted down? You can get right back to work with this crate containing stamps, an export scanner, destination tagger, hand labeler and some package wrapping. Now with extra toner cartidges!"
@@ -101,6 +116,23 @@
crate_name = "ice cream vat crate"
crate_type = /obj/structure/closet/crate
/datum/supply_pack/service/grill
name = "Grilling Starter Kit"
desc = "Hey dad I'm Hungry. Hi Hungry I'm THE NEW GRILLING STARTER KIT ONLY 5000 BUX GET NOW! Contains a cooking grill and five fuel coal sheets."
cost = 3000
contains = list(/obj/item/stack/sheet/mineral/coal/five,
/obj/machinery/grill/unwrenched)
crate_name = "grilling starter kit crate"
crate_type = /obj/structure/closet/crate
/datum/supply_pack/service/grillfuel
name = "Grilling Fuel Kit"
desc = "Contains coal and coal accessories. (Note: only ten coal sheets.)"
cost = 1000
contains = list(/obj/item/stack/sheet/mineral/coal/ten)
crate_name = "grilling fuel kit crate"
crate_type = /obj/structure/closet/crate
/datum/supply_pack/service/cutlery
name = "Kitchen Cutlery Deluxe Set"
desc = "Need to slice and dice away those \"Tomatoes\"? Well we got what you need! From a nice set of knifes, forks, plates, glasses, and a whetstone for when you got some grizzle that is a bit harder to slice then normal."
@@ -240,45 +272,3 @@
crate_name = "janitorial cart crate"
crate_type = /obj/structure/closet/crate/large
//////////////////////////////////////////////////////////////////////////////
//////////////////////////// Vendor Refills //////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
/datum/supply_pack/service/vending/bartending
name = "Bartending Supply Crate"
desc = "Bring on the booze with vending machine refills, as well as a free book containing the well-kept secrets to the bartending trade!"
cost = 2000
contains = list(/obj/item/vending_refill/boozeomat,
/obj/item/vending_refill/coffee,
/obj/item/book/granter/action/drink_fling)
crate_name = "bartending supply crate"
/datum/supply_pack/service/vending/cigarette
name = "Cigarette Supply Crate"
desc = "Don't believe the reports - smoke today! Contains a cigarette vending machine refill."
cost = 1500
contains = list(/obj/item/vending_refill/cigarette)
crate_name = "cigarette supply crate"
crate_type = /obj/structure/closet/crate
/datum/supply_pack/service/vending/games
name = "Games Supply Crate"
desc = "Get your game on with this game vending machine refill."
cost = 1000
contains = list(/obj/item/vending_refill/games)
crate_name = "games supply crate"
crate_type = /obj/structure/closet/crate
/datum/supply_pack/service/vending/snack
name = "Snack Supply Crate"
desc = "One vending machine refill of cavity-bringin' goodness! The number one dentist recommended order!"
cost = 1500
contains = list(/obj/item/vending_refill/snack)
crate_name = "snacks supply crate"
/datum/supply_pack/service/vending/cola
name = "Softdrinks Supply Crate"
desc = "Got whacked by a toolbox, but you still have those pesky teeth? Get rid of those pearly whites with this soda machine refill, today!"
cost = 1500
contains = list(/obj/item/vending_refill/cola)
crate_name = "soft drinks supply crate"
+148
View File
@@ -0,0 +1,148 @@
//Reminders-
// If you add something to this list, please group it by type and sort it alphabetically instead of just jamming it in like an animal
// cost = 700- Minimum cost, or infinite points are possible.
//////////////////////////////////////////////////////////////////////////////
/////////////////////////////// Vending //////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
/datum/supply_pack/vending
group = "Vending"
//////////////////////////////////////////////////////////////////////////////
///////////////////////// Service, Medical, Sec //////////////////////////////
//////////////////////////////////////////////////////////////////////////////
/datum/supply_pack/vending/bartending
name = "Bartending Supply Crate"
desc = "Bring on the booze with vending machine refills, as well as a free book containing the well-kept secrets to the bartending trade!"
cost = 2000
contains = list(/obj/item/vending_refill/boozeomat,
/obj/item/vending_refill/coffee,
/obj/item/book/granter/action/drink_fling)
crate_name = "bartending supply crate"
/datum/supply_pack/vending/cigarette
name = "Cigarette Supply Crate"
desc = "Don't believe the reports - smoke today! Contains a cigarette vending machine refill."
cost = 1500
contains = list(/obj/item/vending_refill/cigarette)
crate_name = "cigarette supply crate"
crate_type = /obj/structure/closet/crate
/datum/supply_pack/vending/games
name = "Games Supply Crate"
desc = "Get your game on with this game vending machine refill."
cost = 1000
contains = list(/obj/item/vending_refill/games)
crate_name = "games supply crate"
crate_type = /obj/structure/closet/crate
/datum/supply_pack/vending/kinkmate
name = "Kinkmate Supply and Construction Kit"
cost = 2000
contraband = TRUE
contains = list(/obj/item/vending_refill/kink, /obj/item/circuitboard/machine/kinkmate)
crate_name = "Kinkmate construction kit"
/datum/supply_pack/vending/medical
name = "Medical Vending Crate"
desc = "Contains refills for medical vending machines."
cost = 2000
contains = list(/obj/item/vending_refill/medical,
/obj/item/vending_refill/wallmed)
crate_name = "medical vending crate"
crate_type = /obj/structure/closet/crate/medical
/datum/supply_pack/vending/security
name = "SecTech Supply Crate"
desc = "Officer Paul bought all the donuts? Then refill the security vendor with ths crate. Requires Security Access to open."
cost = 1500
access = ACCESS_SECURITY
contains = list(/obj/machinery/vending/security)
crate_name = "SecTech supply crate"
crate_type = /obj/structure/closet/crate/secure/gear
/datum/supply_pack/vending/snack
name = "Snack Supply Crate"
desc = "One vending machine refill of cavity-bringin' goodness! The number one dentist recommended order!"
cost = 1500
contains = list(/obj/item/vending_refill/snack)
crate_name = "snacks supply crate"
/datum/supply_pack/vending/cola
name = "Softdrinks Supply Crate"
desc = "Got whacked by a toolbox, but you still have those pesky teeth? Get rid of those pearly whites with this soda machine refill, today!"
cost = 1500
contains = list(/obj/item/vending_refill/cola)
crate_name = "soft drinks supply crate"
//////////////////////////////////////////////////////////////////////////////
//////////////////////////// Wardrobe Vendors ////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
/datum/supply_pack/vending/wardrobes/autodrobe
name = "Autodrobe Supply Crate"
desc = "Autodrobe missing your favorite dress? Solve that issue today with this autodrobe refill."
cost = 1500
contains = list(/obj/item/vending_refill/autodrobe)
crate_name = "autodrobe supply crate"
/datum/supply_pack/vending/wardrobes/cargo
name = "Cargo Wardrobe Supply Crate"
desc = "This crate contains a refill for the CargoDrobe."
cost = 750
contains = list(/obj/item/vending_refill/wardrobe/cargo_wardrobe)
crate_name = "cargo department supply crate"
/datum/supply_pack/vending/wardrobes/engineering
name = "Engineering Wardrobe Supply Crate"
desc = "This crate contains refills for the EngiDrobe and AtmosDrobe."
cost = 1500
contains = list(/obj/item/vending_refill/wardrobe/engi_wardrobe,
/obj/item/vending_refill/wardrobe/atmos_wardrobe)
crate_name = "engineering department wardrobe supply crate"
/datum/supply_pack/vending/wardrobes/general
name = "General Wardrobes Supply Crate"
desc = "This crate contains refills for the CuraDrobe, BarDrobe, ChefDrobe, JaniDrobe, ChapDrobe."
cost = 3750
contains = list(/obj/item/vending_refill/wardrobe/curator_wardrobe,
/obj/item/vending_refill/wardrobe/bar_wardrobe,
/obj/item/vending_refill/wardrobe/chef_wardrobe,
/obj/item/vending_refill/wardrobe/jani_wardrobe,
/obj/item/vending_refill/wardrobe/chap_wardrobe)
crate_name = "general wardrobes vendor refills"
/datum/supply_pack/vending/wardrobes/hydroponics
name = "Hydrobe Supply Crate"
desc = "This crate contains a refill for the Hydrobe."
cost = 750
contains = list(/obj/item/vending_refill/wardrobe/hydro_wardrobe)
crate_name = "hydrobe supply crate"
/datum/supply_pack/vending/wardrobes/medical
name = "Medical Wardrobe Supply Crate"
desc = "This crate contains refills for the MediDrobe, ChemDrobe, GeneDrobe, and ViroDrobe."
cost = 3000
contains = list(/obj/item/vending_refill/wardrobe/medi_wardrobe,
/obj/item/vending_refill/wardrobe/chem_wardrobe,
/obj/item/vending_refill/wardrobe/gene_wardrobe,
/obj/item/vending_refill/wardrobe/viro_wardrobe)
crate_name = "medical department wardrobe supply crate"
/datum/supply_pack/vending/wardrobes/science
name = "Science Wardrobe Supply Crate"
desc = "This crate contains refills for the SciDrobe and RoboDrobe."
cost = 1500
contains = list(/obj/item/vending_refill/wardrobe/robo_wardrobe,
/obj/item/vending_refill/wardrobe/science_wardrobe)
crate_name = "science department wardrobe supply crate"
/datum/supply_pack/vending/wardrobes/security
name = "Security Wardrobe Supply Crate"
desc = "This crate contains refills for the SecDrobe and LawDrobe."
cost = 1500
contains = list(/obj/item/vending_refill/wardrobe/sec_wardrobe,
/obj/item/vending_refill/wardrobe/law_wardrobe)
crate_name = "security department supply crate"
+3 -2
View File
@@ -18,8 +18,9 @@
R.freqlock = TRUE
var/obj/item/card/id/W = H.wear_id
W.registered_name = H.real_name
W.update_label(W.registered_name, W.assignment)
if(W)
W.registered_name = H.real_name
W.update_label(W.registered_name, W.assignment)
/datum/outfit/ert/commander
name = "ERT Commander"
+2 -2
View File
@@ -81,7 +81,7 @@
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF | ACID_PROOF
resistance_flags = FIRE_PROOF | ACID_PROOF | GOLIATH_RESISTANCE
/obj/item/clothing/head/hooded/cloakhood/drake
name = "drake helm"
@@ -90,4 +90,4 @@
armor = list("melee" = 70, "bullet" = 30, "laser" = 50, "energy" = 40, "bomb" = 70, "bio" = 60, "rad" = 50, "fire" = 100, "acid" = 100)
heat_protection = HEAD
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF | ACID_PROOF
resistance_flags = FIRE_PROOF | ACID_PROOF | GOLIATH_RESISTANCE
+1 -2
View File
@@ -26,7 +26,6 @@
startWhen *= 1 - min(GLOB.singularity_counter * SINGULO_BEACON_DISTURBANCE, SINGULO_BEACON_MAX_DISTURBANCE)
endWhen = startWhen + 60
/datum/round_event/meteor_wave/New()
..()
if(!wave_type)
@@ -59,7 +58,7 @@
kill()
/datum/round_event/meteor_wave/announce(fake)
priority_announce("Meteors have been detected on collision course with the station. Estimated time until impact: [round(startWhen/60)] minutes.[GLOB.singularity_counter ? " Warning: Anomalous gravity pulse detected, Syndicate technology interference likely." : ""]", "Meteor Alert", "meteors")
priority_announce("Meteors have been detected on collision course with the station. Estimated time until impact: [round((startWhen * SSevents.wait) / 10, 0.1)] seconds.[GLOB.singularity_counter ? " Warning: Anomalous gravity pulse detected, Syndicate technology interference likely." : ""]", "Meteor Alert", "meteors")
/datum/round_event/meteor_wave/tick()
if(ISMULTIPLE(activeFor, 3))
+1 -1
View File
@@ -186,8 +186,8 @@ obj/item/seeds/proc/is_gene_forbidden(typepath)
product_name = parent.myseed.plantname
if(getYield() >= 1)
SSblackbox.record_feedback("tally", "food_harvested", getYield(), product_name)
parent.investigate_log("[user] harvested [getYield()] of [src], with seed traits [english_list(genes)] and reagents_add [english_list(reagents_add)] and potency [potency].", INVESTIGATE_BOTANY)
parent.update_tray(user)
return result
@@ -599,6 +599,10 @@
name = "Scully"
icon_state = "hair_scully"
/datum/sprite_accessory/hair/shaggy
name = "Shaggy"
icon_state = "hair_shaggy"
/datum/sprite_accessory/hair/shaved
name = "Shaved"
icon_state = "hair_shaved"
@@ -44,7 +44,8 @@
if(M.occupant == src)
M.go_out()
dna.species.spec_death(gibbed, src)
if(!QDELETED(dna)) //The gibbed param is bit redundant here since dna won't exist at this point if they got deleted.
dna.species.spec_death(gibbed, src)
if(SSticker.HasRoundStarted())
SSblackbox.ReportDeath(src)
+11 -14
View File
@@ -385,20 +385,17 @@
else if(isobserver(user) && traitstring)
. += "<span class='info'><b>Traits:</b> [traitstring]</span>"
if(print_flavor_text())
if(get_visible_name() == "Unknown") //Are we sure we know who this is? Don't show flavor text unless we can recognize them. Prevents certain metagaming with impersonation.
. += "...?"
else if(skipface) //Sometimes we're not unknown, but impersonating someone in a hardsuit, let's not reveal our flavor text then either.
. += "...?"
else
. += "[print_flavor_text()]"
if(print_flavor_text_2())
if(get_visible_name() == "Unknown") //Are we sure we know who this is? Don't show flavor text unless we can recognize them. Prevents certain metagaming with impersonation.
. += "...?"
else if(skipface) //Sometimes we're not unknown, but impersonating someone in a hardsuit, let's not reveal our flavor text then either.
. += "...?"
else
. += "[print_flavor_text_2()]"
//No flavor text unless the face can be seen. Prevents certain metagaming with impersonation.
var/invisible_man = skipface || get_visible_name() == "Unknown"
if(invisible_man)
. += "...?"
else
var/flavor = print_flavor_text()
if(flavor)
. += flavor
var/temp_flavor = print_flavor_text_2()
if(temp_flavor)
. += temp_flavor
. += "*---------*</span>"
/mob/living/proc/status_effect_examines(pronoun_replacement) //You can include this in any mob's examine() to show the examine texts of status effects!
@@ -849,6 +849,8 @@
linked_mobs.Add(M)
if(!selflink)
to_chat(M, "<span class='notice'>You are now connected to [slimelink_owner.real_name]'s Slime Link.</span>")
RegisterSignal(M, COMSIG_MOB_DEATH , .proc/unlink_mob)
RegisterSignal(M, COMSIG_PARENT_QDELETING, .proc/unlink_mob)
var/datum/action/innate/linked_speech/action = new(src)
linked_actions.Add(action)
action.Grant(M)
@@ -858,6 +860,7 @@
var/link_id = linked_mobs.Find(M)
if(!(link_id))
return
UnregisterSignal(M, list(COMSIG_MOB_DEATH, COMSIG_PARENT_QDELETING))
var/datum/action/innate/linked_speech/action = linked_actions[link_id]
action.Remove(M)
to_chat(M, "<span class='notice'>You are no longer connected to [slimelink_owner.real_name]'s Slime Link.</span>")
@@ -890,18 +893,11 @@
Remove(H)
return
if(QDELETED(H) || H.stat == DEAD)
species.unlink_mob(H)
return
if(message)
var/msg = "<i><font color=#008CA2>\[[species.slimelink_owner.real_name]'s Slime Link\] <b>[H]:</b> [message]</font></i>"
log_directed_talk(H, species.slimelink_owner, msg, LOG_SAY, "slime link")
for(var/X in species.linked_mobs)
var/mob/living/M = X
if(QDELETED(M) || M.stat == DEAD)
species.unlink_mob(M)
continue
to_chat(M, msg)
for(var/X in GLOB.dead_mob_list)
@@ -30,6 +30,9 @@
/mob/living/carbon/monkey/handle_mutations_and_radiation()
if(radiation)
if(radiation > RAD_MOB_MUTATE && prob((radiation - RAD_MOB_MUTATE) / 25))
gorillize()
return
if(radiation > RAD_MOB_KNOCKDOWN && prob(RAD_MOB_KNOCKDOWN_PROB))
if(!IsKnockdown())
emote("collapse")
@@ -41,10 +44,6 @@
randmutb()
emote("gasp")
domutcheck()
if(radiation > RAD_MOB_MUTATE * 2 && prob(50))
gorillize()
return
if(radiation > RAD_MOB_VOMIT && prob(RAD_MOB_VOMIT_PROB))
vomit(10, TRUE)
return ..()
+5 -3
View File
@@ -456,8 +456,10 @@ mob/visible_message(message, self_message, blind_message, vision_distance = DEFA
return
/mob/proc/transfer_ckey(mob/new_mob, send_signal = TRUE)
if(!ckey || !new_mob)
CRASH("transfer_ckey() called [ckey ? "" : "on a ckey-less mob[new_mob ? "" : " and "]"][new_mob ? "" : "without a valid mob target"]!")
if(!new_mob || (!ckey && new_mob.ckey))
CRASH("transfer_ckey() called [new_mob ? "on ckey-less mob with a player mob as target" : "without a valid mob target"]!")
if(!ckey)
return
SEND_SIGNAL(new_mob, COMSIG_MOB_PRE_PLAYER_CHANGE, new_mob, src)
if (client && client.prefs && client.prefs.auto_ooc)
if (client.prefs.chat_toggles & CHAT_OOC && isliving(new_mob))
@@ -964,4 +966,4 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0)
/mob/setMovetype(newval)
. = ..()
update_movespeed(FALSE)
update_movespeed(FALSE)
+2
View File
@@ -34,7 +34,9 @@
/obj/item/paperplane/handle_atom_del(atom/A)
if(A == internalPaper)
var/obj/item/paper/P = internalPaper
internalPaper = null
P.moveToNullspace() //So we're not deleting it twice when deleting our contents.
if(!QDELETED(src))
qdel(src)
return ..()
+10 -10
View File
@@ -193,9 +193,9 @@
var/on = FALSE // 1 if on, 0 if off
var/on_gs = FALSE
var/static_power_used = 0
var/brightness = 8 // luminosity when on, also used in power calculation
var/brightness = 11 // luminosity when on, also used in power calculation
var/bulb_power = 0.75 // basically the alpha of the emitted light source
var/bulb_colour = "#FFEEDD" // befault colour of the light.
var/bulb_colour = "#FFF6ED" // befault colour of the light.
var/status = LIGHT_OK // LIGHT_OK, _EMPTY, _BURNED or _BROKEN
var/flickering = FALSE
var/light_type = /obj/item/light/tube // the type of light item
@@ -231,7 +231,7 @@
icon_state = "bulb"
base_state = "bulb"
fitting = "bulb"
brightness = 4
brightness = 6
bulb_colour = "#FFDDBB"
desc = "A small lighting fixture."
light_type = /obj/item/light/bulb
@@ -272,11 +272,11 @@
spawn(2)
switch(fitting)
if("tube")
brightness = 8
brightness = 11
if(prob(2))
break_light_tube(1)
if("bulb")
brightness = 4
brightness = 6
if(prob(5))
break_light_tube(1)
spawn(1)
@@ -351,11 +351,11 @@
set_light(0)
update_icon()
active_power_usage = (brightness * 10)
active_power_usage = (brightness * 7.2)
if(on != on_gs)
on_gs = on
if(on)
static_power_used = brightness * 20 //20W per unit luminosity
static_power_used = brightness * 14.4 //20W per unit luminosity
addStaticPower(static_power_used, STATIC_LIGHT)
else
removeStaticPower(static_power_used, STATIC_LIGHT)
@@ -738,7 +738,7 @@
icon_state = "ltube"
base_state = "ltube"
item_state = "c_tube"
brightness = 8
brightness = 11
/obj/item/light/tube/broken
status = LIGHT_BROKEN
@@ -751,7 +751,7 @@
item_state = "contvapour"
lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
brightness = 4
brightness = 6
/obj/item/light/bulb/broken
status = LIGHT_BROKEN
@@ -820,7 +820,7 @@
icon = 'icons/obj/lighting.dmi'
base_state = "floor" // base description and icon_state
icon_state = "floor"
brightness = 4
brightness = 6
layer = 2.5
light_type = /obj/item/light/bulb
fitting = "bulb"
@@ -96,15 +96,20 @@
"Gold Trim" = "detective_gold",
"The Peacemaker" = "detective_peacemaker"
)
var/list/safe_calibers
/obj/item/gun/ballistic/revolver/detective/Initialize()
. = ..()
safe_calibers = magazine.caliber
/obj/item/gun/ballistic/revolver/detective/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0)
if(magazine.caliber != initial(magazine.caliber))
if(chambered && !(chambered.caliber in safe_calibers))
if(prob(70 - (magazine.ammo_count() * 10))) //minimum probability of 10, maximum of 60
playsound(user, fire_sound, 50, 1)
to_chat(user, "<span class='userdanger'>[src] blows up in your face!</span>")
user.take_bodypart_damage(0,20)
user.dropItemToGround(src)
return 0
return FALSE
..()
/obj/item/gun/ballistic/revolver/detective/screwdriver_act(mob/living/user, obj/item/I)
@@ -374,14 +374,18 @@
desc = "Decreases the cooldown of a kinetic accelerator. Not rated for minebot use."
modifier = 2.5
minebot_upgrade = FALSE
var/decreased
/obj/item/borg/upgrade/modkit/cooldown/install(obj/item/gun/energy/kinetic_accelerator/KA, mob/user)
. = ..()
if(.)
KA.overheat_time -= modifier
var/old = KA.overheat_time
KA.overheat_time = max(0, KA.overheat_time - modifier)
decreased = old - KA.overheat_time
/obj/item/borg/upgrade/modkit/cooldown/uninstall(obj/item/gun/energy/kinetic_accelerator/KA)
KA.overheat_time += modifier
KA.overheat_time += decreased
..()
/obj/item/borg/upgrade/modkit/cooldown/minebot
+15 -5
View File
@@ -171,7 +171,7 @@
return master
/datum/reagents/proc/trans_to(obj/target, amount=1, multiplier=1, preserve_data=1, no_react = 0)//if preserve_data=0, the reagents data will be lost. Usefull if you use data for some strange stuff and don't want it to be transferred.
/datum/reagents/proc/trans_to(obj/target, amount = 1, multiplier = 1, preserve_data = 1, no_react = 0, log = FALSE)//if preserve_data=0, the reagents data will be lost. Usefull if you use data for some strange stuff and don't want it to be transferred.
var/list/cached_reagents = reagent_list
if(!target || !total_volume)
return
@@ -188,17 +188,23 @@
amount = min(min(amount, src.total_volume), R.maximum_volume-R.total_volume)
var/part = amount / src.total_volume
var/trans_data = null
var/list/transferred = list()
for(var/reagent in cached_reagents)
var/datum/reagent/T = reagent
var/transfer_amount = T.volume * part
if(preserve_data)
trans_data = copy_data(T)
transferred += "[T] - [transfer_amount]"
R.add_reagent(T.type, transfer_amount * multiplier, trans_data, chem_temp, T.purity, pH, no_react = TRUE, ignore_pH = TRUE) //we only handle reaction after every reagent has been transfered.
remove_reagent(T.type, transfer_amount, ignore_pH = TRUE)
if(log && amount > 0)
var/atom/us = my_atom
var/atom/them = R.my_atom
var/location_string = "FROM [(us && "[us] ([REF(us)]) [COORD(us)]") || "NULL"] TO [(them && "[them] ([REF(them)]) [COORD(them)]") || "NULL"]"
log_reagent_transfer("[location_string] - [key_name(usr)][istext(log) ? " - [log]" : ""]: trans_to with arguments [target] [amount] [multiplier] [preserve_data] [no_react] and reagents [english_list(transferred)]")
update_total()
R.update_total()
if(!no_react)
@@ -237,7 +243,7 @@
src.handle_reactions()
return amount
/datum/reagents/proc/trans_id_to(obj/target, reagent, amount=1, preserve_data=1)//Not sure why this proc didn't exist before. It does now! /N
/datum/reagents/proc/trans_id_to(obj/target, reagent, amount = 1, preserve_data = TRUE, log = FALSE)//Not sure why this proc didn't exist before. It does now! /N
var/list/cached_reagents = reagent_list
if (!target)
return
@@ -257,8 +263,12 @@
if(preserve_data)
trans_data = current_reagent.data
R.add_reagent(current_reagent.type, amount, trans_data, chem_temp, current_reagent.purity, pH, no_react = TRUE)
remove_reagent(current_reagent.type, amount, 1)
if(log && amount > 0)
var/atom/us = my_atom
var/atom/them = R.my_atom
var/location_string = "FROM [(us && "[us] ([REF(us)]) [COORD(us)]") || "NULL"] TO [(them && "[them] ([REF(them)]) [COORD(them)]") || "NULL"]"
log_reagent_transfer("[location_string] - [key_name(usr)][istext(log) ? " - [log]" : ""]: trans_id_to with arguments [target] [reagent] [amount] [preserve_data]")
break
src.update_total()
@@ -153,20 +153,37 @@
color = "#669900" // rgb: 102, 153, 0
toxpwr = 0.5
taste_description = "death"
var/fakedeath_active = FALSE
pH = 13
/datum/reagent/toxin/zombiepowder/on_mob_metabolize(mob/living/L)
..()
L.fakedeath(type)
ADD_TRAIT(L, TRAIT_FAKEDEATH, type)
/datum/reagent/toxin/zombiepowder/on_mob_end_metabolize(mob/living/L)
L.cure_fakedeath(type)
..()
/datum/reagent/toxin/zombiepowder/on_mob_life(mob/living/carbon/M)
M.adjustOxyLoss(0.5*REM, 0)
/datum/reagent/toxin/zombiepowder/reaction_mob(mob/living/L, method=TOUCH, reac_volume)
L.adjustOxyLoss(0.5*REM, 0)
if(method == INGEST)
fakedeath_active = TRUE
L.fakedeath(type)
/datum/reagent/toxin/zombiepowder/on_mob_life(mob/living/M)
..()
. = 1
if(fakedeath_active)
return TRUE
switch(current_cycle)
if(1 to 5)
M.confused += 1
M.drowsyness += 1
M.slurring += 3
if(5 to 8)
M.adjustStaminaLoss(40, 0)
if(9 to INFINITY)
fakedeath_active = TRUE
M.fakedeath(type)
/datum/reagent/toxin/ghoulpowder
name = "Ghoul Powder"
@@ -70,6 +70,14 @@
required_other = TRUE
required_container = /obj/item/slime_extract/green
/datum/chemical_reaction/slime/slimemammal
name = "Mammal Mutation Toxin"
id = /datum/reagent/mutationtoxin/mammal
results = list(/datum/reagent/mutationtoxin/mammal = 1)
required_reagents = list(/datum/reagent/water = 1)
required_other = TRUE
required_container = /obj/item/slime_extract/green
//Metal
/datum/chemical_reaction/slime/slimemetal
name = "Slime Metal"
+10 -14
View File
@@ -1,6 +1,3 @@
#define PH_WEAK (1 << 0)
#define TEMP_WEAK (1 << 1)
/obj/item/reagent_containers
name = "Container"
desc = "..."
@@ -9,14 +6,13 @@
w_class = WEIGHT_CLASS_TINY
var/amount_per_transfer_from_this = 5
var/list/possible_transfer_amounts = list(5,10,15,20,25,30)
var/APTFT_altclick = TRUE //will the set amount_per_transfer_from_this proc be called on AltClick() ?
var/volume = 30
var/reagent_flags
var/reagent_flags //used to determine the reagent holder flags on add_initial_reagents()
var/list/list_reagents = null
var/spawned_disease = null
var/disease_amount = 20
var/spillable = FALSE
var/beaker_weakness_bitflag = NONE//Bitflag!
var/container_flags = APTFT_ALTCLICK|APTFT_VERB //the container item flags
var/container_HP = 2
var/cached_icon
@@ -24,7 +20,7 @@
. = ..()
if(isnum(vol) && vol > 0)
volume = vol
if(length(possible_transfer_amounts))
if(container_flags & APTFT_VERB && length(possible_transfer_amounts))
verbs += /obj/item/reagent_containers/proc/set_APTFT
create_reagents(volume, reagent_flags)
if(spawned_disease)
@@ -37,12 +33,12 @@
. = ..()
if(length(possible_transfer_amounts) > 1)
. += "Currently transferring [amount_per_transfer_from_this] units per use."
if(APTFT_altclick && user.Adjacent(src))
if(container_flags & APTFT_ALTCLICK && user.Adjacent(src))
. += "<span class='notice'>Alt-click it to set its transfer amount.</span>"
/obj/item/reagent_containers/AltClick(mob/user)
. = ..()
if(APTFT_altclick && length(possible_transfer_amounts) > 1 && user.canUseTopic(src, BE_CLOSE, NO_DEXTERY))
if(container_flags & APTFT_ALTCLICK && length(possible_transfer_amounts) > 1 && user.canUseTopic(src, BE_CLOSE, NO_DEXTERY))
set_APTFT()
return TRUE
@@ -157,7 +153,7 @@
//melts plastic beakers
/obj/item/reagent_containers/microwave_act(obj/machinery/microwave/M)
reagents.expose_temperature(1000)
if(beaker_weakness_bitflag & TEMP_WEAK)
if(container_flags & TEMP_WEAK)
var/list/seen = viewers(5, get_turf(src))
var/iconhtml = icon2html(src, seen)
for(var/mob/H in seen)
@@ -172,13 +168,13 @@
temp_check()
/obj/item/reagent_containers/proc/temp_check()
if(beaker_weakness_bitflag & TEMP_WEAK)
if(container_flags & TEMP_WEAK)
if(reagents.chem_temp >= 444)//assuming polypropylene
START_PROCESSING(SSobj, src)
//melts glass beakers
/obj/item/reagent_containers/proc/pH_check()
if(beaker_weakness_bitflag & PH_WEAK)
if(container_flags & PH_WEAK)
if((reagents.pH < 1.5) || (reagents.pH > 12.5))
START_PROCESSING(SSobj, src)
else if((reagents.pH < -3) || (reagents.pH > 17))
@@ -192,7 +188,7 @@
cached_icon = icon_state
var/damage
var/cause
if(beaker_weakness_bitflag & PH_WEAK)
if(container_flags & PH_WEAK)
if(reagents.pH < 2)
damage = (2 - reagents.pH)/20
cause = "from the extreme pH"
@@ -203,7 +199,7 @@
cause = "from the extreme pH"
playsound(get_turf(src), 'sound/FermiChem/bufferadd.ogg', 50, 1)
if(beaker_weakness_bitflag & TEMP_WEAK)
if(container_flags & TEMP_WEAK)
if(reagents.chem_temp >= 444)
if(damage)
damage += (reagents.chem_temp/444)/5
@@ -31,7 +31,8 @@
log_combat(user, M, "splashed", R)
reagents.clear_reagents()
else
if(M != user)
var/self_fed = M == user
if(!self_fed)
M.visible_message("<span class='danger'>[user] attempts to feed something to [M].</span>", \
"<span class='userdanger'>[user] attempts to feed something to you.</span>")
if(!do_mob(user, M))
@@ -44,7 +45,7 @@
to_chat(user, "<span class='notice'>You swallow a gulp of [src].</span>")
var/fraction = min(5/reagents.total_volume, 1)
reagents.reaction(M, INGEST, fraction)
addtimer(CALLBACK(reagents, /datum/reagents.proc/trans_to, M, 5), 5)
addtimer(CALLBACK(reagents, /datum/reagents.proc/trans_to, M, 5, null, null, null, self_fed? "self swallowed" : "fed by [user]"), 5)
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
/obj/item/reagent_containers/glass/afterattack(obj/target, mob/user, proximity)
@@ -61,7 +62,7 @@
to_chat(user, "<span class='warning'>[target] is full.</span>")
return
var/trans = reagents.trans_to(target, amount_per_transfer_from_this)
var/trans = reagents.trans_to(target, amount_per_transfer_from_this, log = "reagentcontainer-glass afterattack transfer to")
to_chat(user, "<span class='notice'>You transfer [trans] unit\s of the solution to [target].</span>")
else if(target.is_drainable()) //A dispenser. Transfer FROM it TO us.
@@ -73,7 +74,7 @@
to_chat(user, "<span class='warning'>[src] is full.</span>")
return
var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this)
var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this, log = "reagentcontainer-glass afterattack fill from")
to_chat(user, "<span class='notice'>You fill [src] with [trans] unit\s of the contents of [target].</span>")
else if(reagents.total_volume)
@@ -96,7 +97,7 @@
to_chat(user, "<span class='notice'>[src] is full.</span>")
else
to_chat(user, "<span class='notice'>You break [E] in [src].</span>")
E.reagents.trans_to(src, E.reagents.total_volume)
E.reagents.trans_to(src, E.reagents.total_volume, log = "reagentcontainer-glass break egg in")
qdel(E)
return
..()
@@ -110,7 +111,7 @@
item_state = "beaker"
materials = list(MAT_GLASS=500)
possible_transfer_amounts = list(5,10,15,20,25,30,50,60)
beaker_weakness_bitflag = PH_WEAK
container_flags = PH_WEAK|APTFT_ALTCLICK|APTFT_VERB
/obj/item/reagent_containers/glass/beaker/Initialize()
. = ..()
@@ -203,11 +204,7 @@
volume = 180
amount_per_transfer_from_this = 10
possible_transfer_amounts = list(5,10,15,20,25,30,40,50,60,120,180)
/obj/item/reagent_containers/glass/beaker/plastic/Initialize()
beaker_weakness_bitflag &= ~PH_WEAK
beaker_weakness_bitflag |= TEMP_WEAK
. = ..()
container_flags = TEMP_WEAK|APTFT_ALTCLICK|APTFT_VERB
/obj/item/reagent_containers/glass/beaker/plastic/update_icon()
icon_state = "beakerlarge" // hack to lets us reuse the large beaker reagent fill states
@@ -222,10 +219,7 @@
volume = 240
amount_per_transfer_from_this = 10
possible_transfer_amounts = list(5,10,15,20,25,30,40,50,60,120,200,240)
/obj/item/reagent_containers/glass/beaker/meta/Initialize() // why the fuck can't you just set the beaker weakness bitflags to nothing? fuck you
beaker_weakness_bitflag &= ~PH_WEAK
. = ..()
container_flags = APTFT_ALTCLICK|APTFT_VERB
/obj/item/reagent_containers/glass/beaker/noreact
name = "cryostasis beaker"
@@ -236,13 +230,9 @@
reagent_flags = OPENCONTAINER | NO_REACT
volume = 50
amount_per_transfer_from_this = 10
container_flags = APTFT_ALTCLICK|APTFT_VERB
container_HP = 10//shouldn't be needed
/obj/item/reagent_containers/glass/beaker/noreact/Initialize()
beaker_weakness_bitflag &= ~PH_WEAK
. = ..()
//reagents.set_reacting(FALSE) was this removed in a recent pr?
/obj/item/reagent_containers/glass/beaker/bluespace
name = "bluespace beaker"
desc = "A bluespace beaker, powered by experimental bluespace technology \
@@ -310,18 +300,15 @@
SLOT_L_STORE, SLOT_R_STORE,\
SLOT_GENERC_DEXTROUS_STORAGE
)
container_flags = APTFT_ALTCLICK|APTFT_VERB
container_HP = 1
/obj/item/reagent_containers/glass/bucket/Initialize()
beaker_weakness_bitflag |= TEMP_WEAK
. = ..()
/obj/item/reagent_containers/glass/bucket/attackby(obj/O, mob/user, params)
if(istype(O, /obj/item/mop))
if(reagents.total_volume < 1)
to_chat(user, "<span class='warning'>[src] is out of water!</span>")
else
reagents.trans_to(O, 5)
reagents.trans_to(O, 5, log = "reagentcontainer-bucket fill mop")
to_chat(user, "<span class='notice'>You wet [O] in [src].</span>")
playsound(loc, 'sound/effects/slosh.ogg', 25, 1)
else if(isprox(O))
@@ -365,12 +352,9 @@
volume = 50
amount_per_transfer_from_this = 10
possible_transfer_amounts = list(5,10,15,20,25,30,50)
container_flags = TEMP_WEAK|APTFT_ALTCLICK|APTFT_VERB
container_HP = 1
/obj/item/reagent_containers/glass/beaker/waterbottle/Initialize()
beaker_weakness_bitflag |= TEMP_WEAK
. = ..()
/obj/item/reagent_containers/glass/beaker/waterbottle/empty
list_reagents = list()
@@ -7,7 +7,7 @@
spillable = FALSE
volume = 10
possible_transfer_amounts = list(1,2,5,10)
APTFT_altclick = FALSE
container_flags = APTFT_VERB
obj_flags = UNIQUE_RENAME
unique_reskin = list("hypovial" = "hypovial",
"red hypovial" = "hypovial-b",
@@ -25,9 +25,6 @@
if(!icon_state)
icon_state = "hypovial"
update_icon()
// beaker_weakness_bitflag |= PH_WEAK // fuck you if you're using these like beakers
// beaker_weakness_bitflag |= TEMP_WEAK
/obj/item/reagent_containers/glass/bottle/vial/on_reagent_change()
update_icon()
@@ -8,7 +8,7 @@
reagent_flags = REFILLABLE | DRAINABLE
amount_per_transfer_from_this = 5
possible_transfer_amounts = list()
APTFT_altclick = FALSE
container_flags = APTFT_VERB
volume = 5
spillable = FALSE
var/wipe_sound
@@ -23,6 +23,7 @@
amount_per_transfer_from_this = 5
volume = 250
possible_transfer_amounts = list(5,10,15,20,25,30,50,100)
container_flags = NONE //APTFT is alternated between the initial value and stream_amount and shouldn't be exploited.
/obj/item/reagent_containers/spray/afterattack(atom/A, mob/user)
. = ..()
+1 -1
View File
@@ -39,7 +39,7 @@ WALK_DELAY 4
## Entries completely override all subtypes. Later entries have precedence over earlier entries.
## This means if you put /mob 0 on the last entry, it will null out all changes, while if you put /mob as the first entry and
## /mob/living/carbon/human on the last entry, the last entry will override the first.
##MULTIPLICATIVE_MOVESPEED /mob/living/carbon/human 0
MULTIPLICATIVE_MOVESPEED /mob/living/carbon/human 1
##MULTIPLICATIVE_MOVESPEED /mob/living/silicon/robot 0
##MULTIPLICATIVE_MOVESPEED /mob/living/carbon/monkey 0
##MULTIPLICATIVE_MOVESPEED /mob/living/carbon/alien 0
+457 -497
View File
@@ -50,6 +50,463 @@
-->
<div class="commit sansserif">
<h2 class="date">27 January 2020</h2>
<h3 class="author">4dplanner, CRITAWAKETS, XDTM, ninjanomnom updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">sepia slime extract has a delay before activating</li>
<li class="balance">the user of a sepia slime extract is no longer immune to the time field</li>
<li class="balance">chilling sepia is now the support extract - it always freezes the user, but not other marked people. give one to your golem!</li>
<li class="rscadd">burning sepia spawns the rewind camera. Take a selfie with someone and give it to them to make sure they remember the moment forever! You don't actually need to give them the photo, they'll remember anyway. Keep it as a reminder.</li>
<li class="rscadd">rewinding (deja vu) effect resets your location to the turf you were on after 10 seconds as well as resetting limbs/mobs/objects damage to the point it was added.</li>
<li class="rscadd">The deja vu effect cannot resurrect the dead, but will heal their corpse. New limbs fall off, old ones re-attach</li>
<li class="rscadd">Regenerative sepia cores add a deja vu effect before healing instead of a timestop remove: timefreeze camera is admin spawn only.</li>
<li class="rscadd">recurring sepia recalls to the hand of the last person to touch it after activating. Reusable timestop grenades!</li>
<li class="tweak">some special cameras don't prompt for customisation</li>
<li class="bugfix">timefreeze camera actually makes a photo</li>
<li class="bugfix">timestop stops pathing and mechs.</li>
<li class="bugfix">adds a check to make sure simple_animals don't get their AI toggled while sentient</li>
<li class="bugfix">Adds the timestop overlay to frozen projectiles</li>
<li class="bugfix">Timestopped things have INFINITY move_resist as opposed to being anchored</li>
<li class="bugfix">Timestop will now unfreeze things that somehow leave it</li>
<li class="bugfix">mobs in the middle of a walk_to will have their walk stopped by timestop</li>
<li class="bugfix">mobs that are stunned will be stopped mid walk as well</li>
<li class="bugfix">pulling respects changes in move_force</li>
<li class="bugfix">swapping places respects move_force if the participant is not willing</li>
<li class="bugfix">timestop is properly defeated by antimagic.</li>
<li class="bugfix">timestop only checks antimagic once</li>
<li class="tweak">Time stop now applies its visual effect on floors, walls and static structures (with no change otherwise)</li>
<li class="tweak">Movable structures are now anchored while time stopped.</li>
<li class="tweak">Timestop effects now prevent speech.</li>
</ul>
<h3 class="author">AffectedArc07 updated:</h3>
<ul class="changes bgimages16">
<li class="code_imp">All code files are now in the LF line format, please stick to it</li>
<li class="tweak">Added CI step to check for CRLF files</li>
<li class="code_imp">Line ending CI works now</li>
</ul>
<h3 class="author">Arkatos, Zxaber, Ghommie updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Certain AI abilities now dynamically show their remaining uses on the mouse hover over their respective action buttons.</li>
<li class="bugfix">Malfunctioning AIs can no longer abuse the confirmation popup to create extra (unstoppable) doomsdays.</li>
<li class="bugfix">Fixed AIs being able to use some of their abilities such as the doomsday whilst dead, and the doomsday loading phase not halting upon AI death.</li>
</ul>
<h3 class="author">Arturlang updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">Vampires are no longer as tanky</li>
<li class="rscadd">Added modular computers to the loadout</li>
</ul>
<h3 class="author">Bhijn updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Limbs now regenerate their stamina faster while disabled</li>
<li class="rscadd">Limbs now have the same incoming stamina damage multiplier mechanics as spacemen, where the more staminaloss they take while disabled, the less staminaloss they'll take.</li>
<li class="balance">Limbs have had their base stamina regen rate doubled to match the doubled stamina regen rate of standard spacemen.</li>
<li class="rscadd">Added a preference to make the sprint hotkey be a toggle instead of a hold bind</li>
<li class="rscadd">Added a preference to bind the sprint hotkey to space instead of shift.</li>
<li class="bugfix">server_hop can no longer be used to remotely lobotomize a spaceman</li>
</ul>
<h3 class="author">Bhijn helped updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">Fixes Dragon's Tooth Sword 50% armor penetration by making it 35%</li>
</ul>
<h3 class="author">BonniePandora updated:</h3>
<ul class="changes bgimages16">
<li class="admin">Added another SDQL option. Using "UPDATE selectors SET #null=value" will now resolve value and discard the return. This is useful if you only care about the side effect of a proc.</li>
</ul>
<h3 class="author">CameronWoof updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Ghost Cafe patrons now spawn with chameleon kits. Dress up! Be fancy!</li>
<li class="rscadd">Robots can now check the crew manifest from anywhere with the "View Crew Manifest" verb.</li>
<li class="tweak">Lizard tails are now viable options for humans and anthromorphs.</li>
</ul>
<h3 class="author">Commandersand updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">fixed some clothnig sprites</li>
<li class="balance">lightning bolt,tesla,forcewall,emp spells have lower cooldown</li>
<li class="balance">fireball has a 10 second starting cooldown</li>
</ul>
<h3 class="author">DeltaFire15 updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">Vitality matrixes now correctly succ slimes</li>
</ul>
<h3 class="author">Denton, ported by Hatterhat updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">Most upgradeable machines now show their upgrade status when examined while standing right next to them.</li>
<li class="tweak">Added examine messages to teleporter stations that hint at their multitool/wirecutter interactions.</li>
<li class="tweak">Renamed teleporter stations from station to teleporter station.</li>
<li class="code_imp">Changed the teleporter hub accurate var to accuracy; the old name misled people into thinking that it was a boolean.</li>
</ul>
<h3 class="author">Detective-Google updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">replaced the sprites with new ones requested.</li>
</ul>
<h3 class="author">EmeraldSundisk updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Adds a sign outside MetaStation's custodial closet</li>
</ul>
<h3 class="author">FantasticFwoosh, ported by Hatterhat updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Both reagent universal enzyme & sacks of flour are now available for their respective costs from the biogenerator.</li>
<li class="rscadd">New crafting recipies for donut boxes, eggboxes & candle boxes have been added to cardboard recipes for the collective benefit of service personnel and the station.</li>
</ul>
<h3 class="author">Ghommie updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">Attached kevlar/soft/plastic padding accessories are now stealthier and will no longer be displayed on mob examine.</li>
<li class="refactor">Refactored that mess of a code for alternate worn clothing sprites for digitigrade and taurs.</li>
<li class="bugfix">Fixed some issues with the aforementioned feature you may or may not have experienced because it was pretty lame.</li>
<li class="bugfix">Fixed missing digi versions fishnet sprites and wrong digitigrade left dir purple stockings sprite.</li>
<li class="imageadd">Add digitigrade versions for boxers and the long johns.</li>
<li class="bugfix">Fixed the secret sauce recipe being randomized every round.</li>
<li class="bugfix">Fixed singularity pulls duping rods out of engine floors.</li>
<li class="rscdel">Removed an old pair of zipties from the captain closet.</li>
<li class="bugfix">Chestbursters won't delete the host's brain somewhat anymore.</li>
<li class="bugfix">Fixed roundstart mushpeople being unable to MUSH PUUUUUUUUUUUUNCH!!</li>
<li class="bugfix">Lattices can be examined yet again.</li>
<li class="bugfix">Made reagent containers examine text less annoying.</li>
<li class="bugfix">Virus food dispensers dispense virus food again.</li>
<li class="bugfix">Borg hypos inputs do not display typepaths anymore.</li>
<li class="bugfix">Restored chem dispensers alphabetical order.</li>
<li class="bugfix">Sanitized cargo export messages for reagents.</li>
<li class="bugfix">Riot foam dart (not the ammo box) design cost is yet again consistent with the result's material amount.</li>
<li class="bugfix">Fixed a little exploit with ventcrawlers being capable of escaping closed turfs by printing scrubbers/vents into them.</li>
<li class="bugfix">deconstructing a rubber toolbox with the destructive analyzer won't "lock" the machine anymore.</li>
<li class="bugfix">Something about empty hand combat mode right click waving hands defying common sense and being spammy.</li>
<li class="imageadd">Towels are now "digitigrade-friendly".</li>
<li class="bugfix">The Barefoot drink and mousetraps will now work even if wearing certain "feet-less shoes".</li>
<li class="rscadd">Refactored code to allow all living mobs to use shields and not only humans.</li>
<li class="tweak">Monkys will now retaliate against aliens attacking them (as if they even posed a threat to start with).</li>
<li class="tweak">add a click cooldown to the overly spammable table slamming.</li>
</ul>
<h3 class="author">Ghommie (original PRs by Kevinz000, ShivCalez, 4dplanner, Barhandar, 81Denton, zxaber, Fox-McCloud) updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">All atom movables now have move force and move resist, and pull force An atom can only pull another atom if its pull force is stronger than that atom's move resist</li>
<li class="rscadd">Mobs with a higher move force than an atom's move resist will automatically try to force the atom out of its way. This might not always work, depending on how snowflakey code is. experimental: As of right now, everything has a move force and resist of 100, and a pull force of 101. Things take (resist - force) damage when bumped into experimental: Failing to move onto a tile will now still bump up your last move timer. However, successfully pushing something out of your way will result in you automatically moving into where it was.</li>
<li class="bugfix">Bolted AIs can no longer be teleported by launchpads.</li>
<li class="balance">Megafauna cannot teleport</li>
</ul>
<h3 class="author">Hatterhat updated:</h3>
<ul class="changes bgimages16">
<li class="balance">Beakers are generally more useful now, with slight capacity increases.</li>
<li class="tweak">Transfer amounts are different now. Adjust your muscle memory to compensate.</li>
<li class="balance">ore redemption machines actually get affected by lasers again kthx</li>
<li class="tweak">crusher trophy drop chance on mining mobs increased to 1 in 4 (from 1 in 20)</li>
<li class="bugfix">Blood-drunk buff from blood-drunk eye crusher trophy is less likely to cripple its user.</li>
<li class="tweak">Forcefield projectors now fit on toolbelts.</li>
<li class="imageadd">New sprites for ATMOS holofan and forcefield projectors!</li>
<li class="tweak">tweaks some values around with beaker transfer amounts, adds a transfer value verb (altclick)</li>
<li class="rscadd">Syndicate sleepers (read: the ones that're red and have controls in them) can now be recreated with a sufficient basis in nonstandard (read: illegal) technologies!</li>
<li class="bugfix">Explorer hoods on standard explorer suits can be reinforced with goliath hide plates again.</li>
<li class="rscadd">A shipment of Staff Assistant jumpsuits from the Goon-operated stations appear to have made their way into your loadout selections - and into the contraband list from ClothesMates...</li>
<li class="balance">Dropped Exo-suit armor to put it more in line with being an explorer suit sidegrade and not a straight upgrade for Lavaland usage.</li>
<li class="rscadd">You can now print .357 AP speedloaders from Security techfabs after you pick up the Advanced Non-Standard Ballistics node.</li>
<li class="rscdel">Forensic scanner removed from Advanced Biotechnology node.</li>
<li class="tweak">Ash Drake armor now has goliath resistance, same as the Exo-suit.</li>
</ul>
<h3 class="author">KathrinBailey updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Empty engineering lockers for mappers.</li>
<li class="rscadd">Industrial welding tools to the engineer welding locker.</li>
<li class="rscdel">Removed the multitool, airlock painter, mechanical toolbox, brown sneakers, hazard vest and airlock painter from the CE's locker.</li>
</ul>
<h3 class="author">KeRSedChaplain updated:</h3>
<ul class="changes bgimages16">
<li class="imageadd">The clockwork cuirass can now support slithering taur bodies.</li>
</ul>
<h3 class="author">Kevinz000 updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">Fixes successful projectile hits also striking another atom on the same turf should the first one be not the target the projectile was meant for.</li>
<li class="rscdel">Removes infinite reflector loops.</li>
</ul>
<h3 class="author">Kraseo updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">Jelly donuts and pink jelly donuts will now properly display sprinkled icon state.</li>
<li class="bugfix">Jelly donuts and its variants will properly spawn with berry juice.</li>
<li class="bugfix">Slime jelly donuts have slime jelly in them now. (thanks ghommie)</li>
<li class="bugfix">Virgo hairstyles no longer have those annoying quotation marks. Rejoice for you will no longer have to use the scrollbar.</li>
<li class="imagedel">Got rid of some strange-looking hairstyles. (Tbob, fingerweave, etc.)</li>
</ul>
<h3 class="author">LetterN updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Doppler logs</li>
<li class="tweak">Shockcolar and electropack uses the new signaler ui</li>
<li class="tweak">Renaming shockcolar requires a pen</li>
<li class="rscadd">Adds banjo</li>
</ul>
<h3 class="author">Linzolle updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">fixes matchboxes runtiming every time they spawn</li>
</ul>
<h3 class="author">MrJWhit updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">Increases plasma usage in radiation collectors</li>
</ul>
<h3 class="author">Naksu updated:</h3>
<ul class="changes bgimages16">
<li class="code_imp">reagent IDs have been removed in favor using reagent typepaths where applicable</li>
<li class="bugfix">mechas, borg hyposprays etc no longer display internal reagent ids to the player</li>
</ul>
<h3 class="author">Owai-Seek updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Four New Bounties</li>
<li class="tweak">tweaked several bounties</li>
<li class="tweak">reorganised several bounties</li>
<li class="balance">balanced several bounties</li>
<li class="bugfix">added shady jims to vendor</li>
<li class="rscadd">Towel, Bedsheet, and Colored bedsheet bins to Dojo. Some lockers with carpets and wood, another bathroom/shower, tons of cleaning supplies, some additional trash cans, a tiny medical area, and some vendors/vendor resupplies. Also added some Ambrosia Gaia seeds.</li>
<li class="tweak">Moved some lights around, extended the dojo a bit to make it feel more spacious.</li>
<li class="rscdel">Cafe Newsfeed Frame</li>
</ul>
<h3 class="author">PersianXerxes updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">Reduces the range of the forcefield projector from 7 tiles to 2 tiles.</li>
</ul>
<h3 class="author">Putnam updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Alcohol intolerance trait, which forces vomiting on any alcohol ingestion</li>
<li class="rscdel">Arousal damage is gone, and with it the arousal damage heart on the UI.</li>
<li class="rscdel">As exhibitionist relied on arousal damage, that's gone too.</li>
<li class="rscdel">Bonermeter and electronic stimulation circuit modules are gone.</li>
<li class="rscdel">Masturbation is no longer an option in the climax menu. It was identical to climax alone in every way but text. Emote it out.</li>
<li class="rscadd">Arousal on genitals can now be displayed manually, on a case-by-case basis.</li>
<li class="rscadd">"Climax alone" and "climax with partner" now only display to the people directly involved in the interaction. rework: Catnip tea, catnip, crocin, hexacrocin, camphor, hexacamphor all had functions or bits of functions reworked.</li>
<li class="tweak">"Climax with partner" now requires consent from both parties--it can no longer be used on mindless mobs, and it asks the mob getting climaxed with if they consent first.</li>
<li class="tweak">A lot of MKUltra behaviors have been moved to hypno checks or removed due to reliance on maso/nympho/exhib.</li>
<li class="rscadd">Cold-blooded quirk</li>
<li class="rscadd">Two relief valves for atmospherics, available in your RPD today: a unary one that opens to air and a binary one that connects two pipenets, like a manual valve.</li>
<li class="tweak">The atmos waste outlet injector on box has been replaced with an atmos waste relief valve.</li>
</ul>
<h3 class="author">Putnam3145 updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Dynamic storytellers, a new voting paradigm for dynamic</li>
<li class="rscadd">Support for approval voting and condorcet (ranked choice) voting in server votes</li>
<li class="rscadd">Ghost cafe mobs can now ghostize</li>
<li class="rscadd">Ghost cafe now has a cremator</li>
<li class="rscadd">Ghost cafe mobs are now eligible for ghost roles</li>
<li class="refactor">Ghost roles now use an element for eligibility purposes</li>
<li class="bugfix">You can toggle some prefs properly now.</li>
<li class="bugfix">no ass slap is no longer the same thing as no aphro</li>
<li class="balance">Devastating bombs kills bomb armor'd mobs again</li>
<li class="rscadd">Added a sort of "game mode ban" by way of having people rank their game modes favorite to least favorite after the secret/extended vote.</li>
<li class="bugfix">Turns out the schulze scoring was written wrong and it was setting things to 0 that shouldn't have been, so that's fixed.</li>
<li class="config">Random engines are now weighted.</li>
<li class="rscadd">Ghost dojo now has an autoylathe.</li>
<li class="rscdel">Ghost dojo no longer has VR or modular computer access.</li>
<li class="tweak">Ghost dojo mobs are pacifists.</li>
<li class="tweak">Ghost dojo booze-o-mat is now all access.</li>
<li class="bugfix">Ghost dojo crematorium now has a button.</li>
<li class="bugfix">Traitor objectives don't take a dump when they try to add an assassinate anymore</li>
<li class="admin">Objective removal with antag panel no longer commented out silently while still being an option that gives useful feedback on stuff it's not doing in any respect</li>
<li class="rscadd">Second, temporary flavor text!</li>
<li class="bugfix">Limb damage works now</li>
<li class="tweak">Score instead of ranked choice for mode tiers</li>
<li class="bugfix">Chemistry not :b:roke</li>
<li class="tweak">Ghost dojo spawns will dust if their owner suicides or uses the "ghost" verb.</li>
<li class="admin">Crafting is logged in a file now</li>
<li class="bugfix">temporary flavor text now pops up properly</li>
<li class="code_imp">demodularized player panel code, mostly</li>
<li class="admin">added ghost role eligibility delay removal to player panel</li>
<li class="balance">Metabolic synthesis disables if user isn't well-fed rather than if user is starving</li>
<li class="bugfix">Gibtonite no longer instantly explodes upon being pickaxe'd.</li>
<li class="balance">Cold-blooded costs -2 quirk points now</li>
<li class="config">Added suicide to the config.</li>
<li class="tweak">Ghost cafe mobs are super duper attached to the ghost cafe.</li>
<li class="bugfix">Meow Mix bar sign works</li>
<li class="bugfix">Fixed a few relief valve behaviors</li>
</ul>
<h3 class="author">Ryll/Shaps, ported by Hatterhat updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Point-blanking people with shotguns actually throws them backwards!</li>
</ul>
<h3 class="author">Savotta updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">snout</li>
</ul>
<h3 class="author">Seris02 updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">made it so trait blacklisting removes random positives instead of removing everything</li>
<li class="rscadd">added atmos holofirelocks and temperature blocking</li>
<li class="tweak">tweaked how atmos holofan looks</li>
<li class="rscadd">stunglasses</li>
<li class="rscadd">disabler sechuds</li>
<li class="rscadd">adds coconut</li>
<li class="rscadd">adds a coconut bong</li>
<li class="rscadd">Auto ooc</li>
<li class="admin">changed "assume direct control" from m.ckey = src.ckey to adminmob.transfer_ckey(M) so it works with auto ooc</li>
<li class="rscadd">marshmallow</li>
<li class="rscadd">telescopic IV drip</li>
<li class="bugfix">cardboard box speed</li>
<li class="tweak">makes gorilla shuttle emag only</li>
<li class="tweak">changed where the observe verb is.</li>
<li class="tweak">the way chameleon clothes update on change</li>
<li class="bugfix">chameleon cloak icon</li>
<li class="balance">Explosions now cause knockdown instead of KOs, with the amount of time scaling off bomb armor. Heavy explosions still cause a ~2 second KO for follow up attacks.</li>
<li class="balance">Devastating explosions now no longer gib players with more than 50 bomb armor. This used to be more or less random depending on the amount of bomb armor.</li>
<li class="code_imp">Removed reagent explosion code that would trigger for <1 amount reactions.</li>
<li class="rscadd">traitor tool for bowmanizing headsets + bowmanizing headsets</li>
<li class="rscadd">durathread winter coats from hyper station</li>
<li class="tweak">conveyor belt now are stacks instead of single item</li>
<li class="tweak">conveyor crate has 30 belts</li>
<li class="tweak">printing a conveyor costs 3000 metal</li>
<li class="rscadd">you can press the conveyor switch in hand to link any not deployed belts to it</li>
<li class="tweak">sniffing sneezing etc doing anything if they don't breathe</li>
<li class="bugfix">probably fixes the make mentor button</li>
<li class="tweak">the sprites for the conveyor belts to look more directional</li>
</ul>
<h3 class="author">Skoglol updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">Falsewalls now properly hide pipes and wires.</li>
</ul>
<h3 class="author">SpaceManiac, bobbahbrown, ShizCalev, SpaceManiac (ported by Ghommie) updated:</h3>
<ul class="changes bgimages16">
<li class="code_imp">It is now possible to set a different most-base-turf per z-level.</li>
<li class="spellcheck">Removed unlawful reference to Disney's Star Wars franchise in map logging.</li>
<li class="tweak">Moved mapping related errors to their own log file.</li>
<li class="bugfix">Destruction on Lavaland will no longer reveal space in rare situations.</li>
</ul>
<h3 class="author">Tlaltecuhtli, Nemvar, Trilby, Hatterhat updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">russian surplus crate, sec ammo crate, meat/veggie/fruit crate, rped crate, bomb suit crate, bio suit crate, parrot crate, chem crate, db crate</li>
<li class="tweak">lowered price of some crates which are overpriced for no reason aka the tablet crate and the mech circuits crates, track implant crate has also track .38 ammo</li>
<li class="bugfix">sectech vendor has a refill pack</li>
</ul>
<h3 class="author">Trilbyspaceclone updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">Fermi plushie can be made once again</li>
<li class="tweak">range on Engi Tray scanners and Rad-Scanners</li>
<li class="bugfix">issues with mapping done my Trilby</li>
<li class="rscadd">Grass now makes light beer when distilled</li>
<li class="tweak">allows bandoliers to hold any ammo type as long as it has a casing</li>
<li class="server">Cleans out the last years of changlogs</li>
<li class="bugfix">rouge cases of #$39; in bottle/pill/patch/condiments</li>
<li class="tweak">Adds missing but needed flags to MASON RIG</li>
<li class="bugfix">missing sprites with crushed cans</li>
<li class="tweak">Halfs the nutriments in sugar</li>
<li class="rscadd">Glitter is now makeable with ground plastic and some crayons</li>
<li class="code_imp">Makes more folders and files for uplink.</li>
<li class="rscadd">Seed packs now have RnD points inside them</li>
<li class="rscadd">New tips that reflect the now use seed packs have for Rnd / Chems affect on plants</li>
<li class="code_imp">Made the research file look nice rather then an eye harming list</li>
<li class="bugfix">Fixed fragile space suits breaking from weak and non-damaging "weapons" (such as the Sord, toys and foam darts).</li>
<li class="rscadd">tip of the round: Cleanbot can withstand lava and burning hot ash. Its a god</li>
<li class="rscadd">more glassware</li>
<li class="rscadd">Few new packs and glassmaker kit!</li>
<li class="tweak">prices/chems of crates/autobottler</li>
<li class="bugfix">some crates ungettable as well as some broken crates</li>
</ul>
<h3 class="author">Trilbyspaceclone, Ghommie updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">More types of glass can now be used to make a solar panel, with different sturdiness and efficiency depending the type.</li>
</ul>
<h3 class="author">Tupinambis updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">Replaces new fire alarms with a slightly updated version of the old ones.</li>
<li class="bugfix">Fixed bug where Amber alert had no proper alert lights, and red alert had amber lights.</li>
<li class="balance">RLDs now cost more to use, have reduced matter capacity, and sheets are worth less when refilling them.</li>
</ul>
<h3 class="author">Unit2E & JMoldy, ported by Hatterhat updated:</h3>
<ul class="changes bgimages16">
<li class="balance">the powerfist now punches people away at high velocity depending on setting.</li>
<li class="rscadd">the powerfist now leaks the gas it uses onto the tile you're on.</li>
<li class="tweak">Adds weak punch variations for empty and near-empty punching.</li>
</ul>
<h3 class="author">Xantholne updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">Christmas clothes that where missing stuff should work again</li>
<li class="tweak">Christmas clothes moved from clothesmate and loadout to premium autodrobe, hoodies and boots remain.</li>
<li class="rscadd">Botany bee pet, Bumbles</li>
<li class="rscadd">New bee models that aren't 1 tile big of 0 opacity pixels</li>
<li class="rscadd">Cheongsam and Qipao clothing added to loadout and clothesmates</li>
</ul>
<h3 class="author">dapnee updated:</h3>
<ul class="changes bgimages16">
<li class="imageadd">new toxin's uniform and accessories</li>
<li class="imagedel">old toxin's uniform and accessories</li>
</ul>
<h3 class="author">deathride58 updated:</h3>
<ul class="changes bgimages16">
<li class="balance">The stamina buffer no longer uses stamina while recharging.</li>
</ul>
<h3 class="author">jakeramsay007 updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">The assorted .357 revolvers (except russian revolver) can now also load .38, like real life.</li>
</ul>
<h3 class="author">kappa-sama updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">loot crates in cargo contraband</li>
<li class="code_imp">modular_citadel file movement</li>
<li class="code_imp">modular citadel loses some files</li>
<li class="balance">dragnet snares can now be removed in 5 seconds</li>
</ul>
<h3 class="author">keronshb updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Adds new features for nanites</li>
<li class="bugfix">fixed the missing icons from Dermal Button nanites</li>
<li class="rscadd">Ports the special nanite remote, mood programs, and research generating nanites</li>
<li class="balance">rebalances some nanites</li>
<li class="bugfix">fixed my messup</li>
</ul>
<h3 class="author">kevinz000 updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">throwing things no longer makes them randomly turned as long as you aren't on harm intent</li>
<li class="rscadd">Custom holoforms have been added for pAIs and AIs. oh and cyborg holograms of specific modules too.</li>
<li class="balance">pais are no longer indestructible-flagged while in card form. pai radios now short out if they are forcefully collapsed from damage.</li>
<li class="bugfix">telescopic iv drips now have the proper sanity checks for deployment.</li>
<li class="bugfix">megafauna can hear again</li>
<li class="balance">Cargo passive gen is now 500 down from 750.</li>
<li class="config">Added a few more nightshift config entries</li>
<li class="rscadd">nightshift_public_area variable in areas to determine how public an area is.</li>
<li class="rscadd">NIGHT_SHIFT_PUBLIC_AREAS_ONLY config entry allows the server to be configured to only nightshift areas of that level and below (so areas that are more public)</li>
<li class="rscadd">Config entries added for requiring authorizations to toggle nightshift. Defaults to only requiring on public areas as determined by above</li>
<li class="balance">nuclear fist buffed.</li>
<li class="balance">cogscarabs are now fulltile-hitbox.</li>
<li class="balance">emitters are now hitscan</li>
<li class="balance">monkies gorrilize easier now</li>
<li class="rscadd">Ghosting no longer stops abductors from using you.</li>
<li class="rscadd">guests can now looc</li>
<li class="tweak">tableslamming has 0.4 second cooldown instead of 0.8</li>
<li class="bugfix">health analyzers now work</li>
<li class="code_imp">Mapping helpers added for power cables and atmos pipes.</li>
<li class="rscdel">Blood duplication is gone, but viruses now react up to 5 times, 1 time per unit, for virus mix.</li>
<li class="rscadd">you can now block people on your PDA</li>
<li class="bugfix">Grenades can now have their timers adjusted.</li>
<li class="balance">Cloning has been nerfed.</li>
<li class="bugfix">hilbert hotel is now less of an exploity mess</li>
<li class="balance">Doorcrushes are once again instant.</li>
</ul>
<h3 class="author">nik707 updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">engraving light_power from 1 to 0.3</li>
</ul>
<h3 class="author">r4d6 updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Added a Radiation Hardsuit</li>
<li class="rscadd">Added a Radiation Hardsuit crate</li>
<li class="rscadd">Added 3 SM Engine variations.</li>
<li class="rscadd">Added a way to make opaque plastic flaps change: Change the already existing flap recipe to show that they are see-through</li>
<li class="rscadd">Animations for the RCD</li>
<li class="bugfix">Said animations being pulled by the Singulo</li>
<li class="balance">Prevent Reinforced Doors from being RCD'ed</li>
<li class="bugfix">Deconstructing Floors now cost MUs like everything else</li>
<li class="tweak">changed the RCD's upgrades into flags</li>
<li class="rscadd">Allow RCDs to print APC, Firelocks and Fire Alarms with the right upgrade</li>
<li class="balance">Allow Engineers to print RCDs and RPDs from their protolathe without needing to hack one.</li>
<li class="rscadd">Added a playback device</li>
<li class="bugfix">Made the Voice Analyzer actually care about languages</li>
<li class="bugfix">fixed SM's piping</li>
<li class="rscadd">Added a message when pulsing the open wire.</li>
<li class="bugfix">fixed being able to use a playback device and a voice analyzer to activate each others</li>
<li class="rscadd">added passive vent to the arsenal of atmospheric devices.</li>
<li class="rscadd">Mining base now has a common area accessible via a new shuttle on the medium-highpop maps, and a security office connecting the gulag and the mining base. Gulag also has functional atmos.</li>
<li class="rscadd">Added more Cyborg Landmarks</li>
<li class="refactor">better code for passive vents</li>
<li class="bugfix">fixed a hole in Meta</li>
<li class="rscadd">Added the ability to easily add variations of the mining base</li>
<li class="bugfix">fixed a sprite</li>
</ul>
<h3 class="author">timothyteakettle updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">fixed not being able to remove trait genes without a disk being inserted into the dna manipulator</li>
</ul>
<h2 class="date">30 December 2019</h2>
<h3 class="author">AnturK updated:</h3>
<ul class="changes bgimages16">
@@ -371,503 +828,6 @@
<li class="rscadd">Adds Insect markings</li>
<li class="rscadd">Adds three new moth wings.</li>
</ul>
<h2 class="date">07 December 2019</h2>
<h3 class="author">AffectedArc07 updated:</h3>
<ul class="changes bgimages16">
<li class="code_imp">Fixes a LOT of code edge cases</li>
</ul>
<h3 class="author">Anonymous updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Added NEET-- I mean, DAB Suit and Helmet into loadout. Exclusive to Assistants, for obvious reasons, and don't provide any armor. Goes well with balaclava, finger-less gloves and jackboots for that true tactic~~f~~ool experience.</li>
<li class="tweak">Renamed loadout name appropriately (ASSU -> DAB)</li>
</ul>
<h3 class="author">Arturlang updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">PDA catridges cant be irradiated anymore.</li>
</ul>
<h3 class="author">Bhijn updated:</h3>
<ul class="changes bgimages16">
<li class="code_imp">Item mousedrop() now provides a return value indicating whether or not behavior has been overridden somehow.</li>
<li class="bugfix">Defibs now properly check that their loc is the same as the user for mousedrop() calls, meaning ghosts can no longer make you equip defibs. Plus extra sanity checks.</li>
<li class="bugfix">Pet carriers no longer attack turfs while trying to unload their contents.</li>
<li class="bugfix">Decks of cards now function as they originally intended when attempting to use their drag and drop behavior.</li>
<li class="bugfix">Paper bins and papercutters no longer act wonky when you're trying to pull a piece of paper from them.</li>
<li class="bugfix">Adds clothing drag n drop sanity checks.</li>
<li class="bugfix">Sythetic hats now have extra sanity checks</li>
</ul>
<h3 class="author">Coconutwarrior97 updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">Can only wrench down two transit tubes per turf.</li>
</ul>
<h3 class="author">Commandersand updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Added more stuff to loadout,check uniforms mask and backpack</li>
</ul>
<h3 class="author">DeltaFire15 updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Adds eight new plushies</li>
<li class="imageadd">Adds icons for the new plushies and adds a new icon for the skylar plush</li>
<li class="imagedel">Deleted a old, no-longer used icon for the skylar plush</li>
<li class="spellcheck">Fixed a typo in the trilby plush</li>
</ul>
<h3 class="author">Fermis updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">tweaks botany reagent pHes</li>
<li class="tweak">Purity, Astral, RNG, MK, SMilk, SDGF, furranium, hatmium, eigen, nanite.</li>
<li class="bugfix">Eigen and purity.</li>
<li class="refactor">refactored sleepers!</li>
<li class="rscadd">Organ fridges to all maps near surgery with a random sensible organ, steralizine and synthtissue.</li>
<li class="tweak">the med hand scanner to be less of a mishmash of random things</li>
<li class="rscadd">a little icon to the HUD if someone's heart has failed.</li>
<li class="tweak">Lets neurine's brain splash attack work via syringe.</li>
<li class="rscadd">a new surgery; Emergency Cardioversion Induction for use on the recently deceased</li>
<li class="tweak">Synthtissue to be less demanding on growth size for organ regeneration and improves clarify of it's growth gated effects.</li>
<li class="tweak">Synthtissue now is more useful than synthflesh on the dead</li>
</ul>
<h3 class="author">Fox McCloud updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">Fixes a very longstanding LINDA bug where turfs adjacent to a hotspot would be less prone to igniting</li>
</ul>
<h3 class="author">Fox McCloud, Ghommie updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">Fixes being able to mech-punch other mobs, as a pacifist</li>
<li class="bugfix">Fixes being able to hurt people, as a pacifist, by throwing them into a wall or other mob, or by using most martial arts (save for the unpredictable psychotic brawl, and the stamina-damage-only boxing).</li>
<li class="balance">Buffs boxing to outdamage natural stamina regeneration. Made the chance of outright missing your opponent actually possible.</li>
<li class="tweak">Pacifists can now engage in the (laughably not harmful) sweet sweet art of boxing now.</li>
</ul>
<h3 class="author">Ghommie updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">Fixing implant cases being lost inside implant pads when trying to eject them with your active hand full.</li>
<li class="tweak">Moved the implant pad's case ejection from attack_hand() to AltClick(), added examination infos about it.</li>
<li class="bugfix">Fixed holodeck sleepers leaving sleeper buffers behind when deleted.</li>
<li class="bugfix">Fixed traitor codewords highlight and some other hear signal hooks spans highlight (phobias, split personality, hypnosis) or modifiers (mind echo)</li>
<li class="bugfix">Fixed traitor codewords highlight not passing down with the mind datum and stickying to the first mob.</li>
<li class="spellcheck">Fixed the incongruent bone satchel description.</li>
<li class="bugfix">Fixed sofa overlays doing nothing, because their layer wasn't properly set.</li>
<li class="tweak">Suicide and cryo now prevents ghost/midround roles for a definite duration of 30 minutes (and more if that was done before 30 minutes in the game passed), down from the rest of the round.</li>
<li class="bugfix">fixed several midround roles bypassing and nulling the aforementioned prevention measures.</li>
<li class="bugfix">Fixed the little issue of PDA skins not updating on job equip.</li>
<li class="tweak">Anomaly Crystals of the clowning type will now rename the victim to their clown name preference when triggered, instead of giving them a random clown name.</li>
<li class="balance">Lowered blob event earliest start from 1 hour to 40 minutes (ergo one third), and the required player population from 40 to 35.</li>
<li class="bugfix">Several fixes and QoL for dullahans. They can see and hear visible and audible messages now, don't need a space helmet they can't wear anyway to be space/temperature proof, can examine things through shiftclick, and, most of all, fixed their head being unpickable. Fixed dullahans gibbing when revived or had their limbs regenerated.</li>
<li class="bugfix">humans should now drop gibs when gibbed again.</li>
<li class="rscadd">synths (not to be confused with IPCs), android and corporate species, as well as robotic simple mobs, will now spawn robotic giblets instead of organic ones.</li>
<li class="bugfix">You can't wear dakimakuras in any other inappropriate slots save for the back slot anymore, degenerates.</li>
<li class="bugfix">Insert snarky remark about clock welders actually displaying the welder flame overlay when turned on now here.</li>
<li class="balance">Minor ninja tweaks and stealth nerfs. The stealth penalty for the many combat-related actions, bumping and now teleporting/dashing or firing guns has been increased a by a third. There is now a cooldown of 5 seconds on toggling stealth as well as a slighty slowed stealth in/out animation.</li>
<li class="imageadd">Ported slighty better matchbox sprites from CEV-Eris, also resprited cigar boxes myself.</li>
<li class="bugfix">Fixed abductors/abductees objectives by porting an objective code.</li>
<li class="bugfix">Riding component fix</li>
<li class="bugfix">fixing a few runtimes on lightgeists, libido trait, rcd, one admin transformation topic, chem dispensers, glowing robotic eyes...</li>
<li class="imageadd">Porting CEV-eris delivery packages sprites and dunking the old syndie cybernetics box sprite.</li>
<li class="bugfix">Certain objects shouldn't be able to become radioactive because of a bitflag that previously was checked nowhere in the code anymore.</li>
<li class="rscadd">Added a new PDA reskin, sprites from CEV-Eris</li>
<li class="rscadd">Clock cult starts with some spare vitality matrix charge scaled of the number of starter servants.</li>
<li class="balance">Made the vitality matrix sigil slighty more visible, also allowed conversion runes to heal fresh converts at the cost of some vitality charge.</li>
<li class="bugfix">Crawling won't save you from the wrath of ocular wardens and pressure sensors anymore, heretics. fix: Pressure sensors are no more triggered by floating/flying mobs.</li>
<li class="bugfix">Strawberry milk and tea have sprites now.</li>
<li class="bugfix">Fixed the Aux base camera door settings and toggle window type actions. Also enabling the user to modify both door access and type.</li>
<li class="imageadd">Improved the two grayscale towel item sprites a little.</li>
<li class="bugfix">Fixed towels onmob suit overlays. Again.</li>
<li class="spellcheck">Fixed some reagents taste descriptions.</li>
<li class="bugfix">Fixed hidden random event reports only priting a paper message without sending the message to the consoles' message list.</li>
<li class="bugfix">Rosary beads prayer now works on non-carbon mobs too, and won't break when performed on a monkey or other humanoids.</li>
<li class="tweak">You can flagellate people with rosary beads on harm intent. It's even mediocrer than the sord though.</li>
<li class="tweak">Moved the `Stealth and Camouflage Items` uplink category next to `Devices and Tools`.</li>
<li class="bugfix">Deleted a duplicate phatom thief mask entry from the uplink.</li>
<li class="bugfix">Fixed missing delivery packages sprites</li>
<li class="bugfix">fixed a few minor issues with console frames building.</li>
<li class="bugfix">Wizards can use the teleport spell from their den once again.</li>
<li class="tweak">Wizards will now receive feedback messages when attempting to cast teleport or use the warp whistle while in a no-teleport area.</li>
<li class="rscadd">New clockwork cultist, gondola, monkey and securitron cardboard cutouts.</li>
<li class="bugfix">Fixed aliens gasping randomly once in a while.</li>
<li class="bugfix">fixed superlube waterflower, my bad.</li>
<li class="bugfix">Fixed closing the aux base construction RCD's door access settings window throwing you out of camera mode when closed.</li>
<li class="rscdel">Removed not functional aux base RCD's door type menu. Use airlock painters, maybe.</li>
<li class="rscadd">Honkbot oil spills are of the slippery kind now. Honk.</li>
<li class="imageadd">local code scavenger finds forgotten slighty improved apc sprites left buried in old dusty folders.</li>
<li class="bugfix">Seven old and otherwordly pAI holochassis icons have crawled their way out of the modular citadel catacombs.</li>
<li class="bugfix">chem dispenser beakers end up in your hand yet again.</li>
<li class="bugfix">Bikehorns squeak yet again, the world is safe.</li>
<li class="bugfix">Cyborgs can now actually use cameras from a distance.</li>
<li class="bugfix">Suicides are yet again painful and instant and won't throw people in deep crit from full health.</li>
<li class="bugfix">fixed rogue pixels on the energy gu- ahem blaster carbine... and a few apc lights states being neigh-indistinguishable.</li>
<li class="bugfix">Fixed several "behind" layer tail sprites skipping areas normally covered by bodyparts.</li>
<li class="bugfix">Morgues' original alert beeping sound has been restored, they no longer go "ammunition depleted"</li>
<li class="bugfix">Fixed missing hypereutactic left inhand sprites.</li>
<li class="bugfix">Dying, ghosting, having your mind / ckey transferred to another mob, going softcrit or otherwise unconscious now properly turn off combat mode.</li>
<li class="bugfix">combat mode can't be toggled on while non fully conscious anymore.</li>
<li class="bugfix">Fixed limbs' set_disabled NOT dropping your held items, updating your hand slot inventory screen image, prompting chat messages and making your character scream like a sissy.</li>
<li class="bugfix">Lusty xenomoprh maids will now actually clean tiles they travel onto yet again.</li>
<li class="bugfix">Fixed double whitespace gap in human and AI examine. Fixed single whitespace in carbon examine.</li>
<li class="rscdel">Removed a few useless supply packs: "Siezed" power cells, means of production and promiscous organs.</li>
<li class="tweak">Merged the synthetic blood supply pack into the standard blood supply pack, effectively removing a random type blood pack in favor of two synthetic ones.</li>
<li class="tweak">Merged together premium carpet pack n°1 and n°2 to hold one of each standard pattern.</li>
<li class="tweak">You can no longer estimate the amount of reagents found inside a damp rag.</li>
<li class="tweak">You can now squeeze a rag's reagents into another open container, as long as the other one is not full.</li>
<li class="bugfix">Fixed ED-209 being unbuildable past the welding step.</li>
<li class="bugfix">Fixed ai displays status being reset to "Neutral" on login, regardless of choice.</li>
<li class="bugfix">Fixed tinfoil hats giving random traumas.</li>
</ul>
<h3 class="author">Ghommie (original PR by Denton) updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Added three new .38 ammo types. TRAC bullets, which embed a tracking implant inside the target's body. The implant only lasts for five minutes and doesn't work as a teleport beacon. Hot Shot bullets set targets on fire; Iceblox bullets drastically lower the target's body temperature. They are available after researching the Subdermal Implants node (TRAC) or Exotic Ammunition node (Hot Shot/Iceblox).</li>
<li class="tweak">Renamed the Technological Shells research node to Exotic Ammunition.</li>
<li class="code_imp">The "lifespan_postmortem" var now determines how long tracking implants work after death.</li>
<li class="rscadd">.357 AP speedloaders can now be ordered from syndicate uplinks.</li>
<li class="balance">lowered the cost of uplink's .357 speedloaderd from 4 to 3.</li>
</ul>
<h3 class="author">Ghommie (original PR by nicbn and Menshin) updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">You can click on things that are under flaps or holo barriers.</li>
</ul>
<h3 class="author">Ghommie (original PRs by ShizCalev, CRTXBacon and Niknakflak) updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Adds the intelliLantern, a big ol' spooky intelliCard skin</li>
<li class="rscadd">crafting recipe for the new intelliCard skin (requires 1 pumpkin, 1 intelliCard, 5 cables and a wirecutter as a tool)</li>
<li class="tweak">changed the intelliTater crafting recipe to match the intelliLantern recipe (but with a potato for obvious reasons) add:cute pai gameboy face :3</li>
</ul>
<h3 class="author">Ghommie, porting lot of PRs by MrDoomBringer, AnturK, nemvar and coiax. updated:</h3>
<ul class="changes bgimages16">
<li class="admin">Admins can now launch supplypods the old, slightly quicker way as well</li>
<li class="bugfix">Centcom-launched supplypods will now properly delimb you (if they are designated to do so) instead of touching you then literally yeeting all of your internal organs out of your body.</li>
<li class="admin">Centcom can now specify if they want to yeet all of your organs out of your body with a supplypod</li>
<li class="soundadd">Supplypods sound a bit nicer as the land now.</li>
<li class="admin">admins can now adjust the animation duration for centcom-launched supplypods</li>
<li class="admin">admins can adjust any sounds that are played as the supplypod lands</li>
<li class="bugfix">Reverse-Supplypods (the admin-launched ones) no longer stay behind after rising up, and also auto-delete from centcom.</li>
<li class="admin">The centcom podlauncher now has better logging</li>
<li class="tweak">Admins can now allow ghosts to follow the delivery of Centcom-launched supply pods</li>
<li class="admin">Admins can now use the Centcom Podlauncher to launch things without the things looking like they're being sent inside a pod.</li>
<li class="admin">sparks will not generate if the quietLanding effect is on, for the centcom podlauncher</li>
<li class="admin">makes input text clearer for the centcom podlauncher</li>
<li class="admin">New 'Podspawn' verb, which functions like 'Spawn', except any atoms movable spawned will be dropped in via a no-damage, no-explosion Centcom supply pod.</li>
<li class="bugfix">Removed an oversight that made many obj/effect subtypes accidentally bombproof.</li>
</ul>
<h3 class="author">GrayRachnid updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Added saboteur syndicate engiborg</li>
<li class="tweak">changed cyborg tool icons and the secborg taser/laser icons.</li>
<li class="bugfix">Fixes golden toolbox missing inhand sprite</li>
<li class="rscadd">Added traumas</li>
<li class="rscadd">Added science powergame tool</li>
<li class="tweak">a few hearing args</li>
<li class="bugfix">fixed my mistakes</li>
<li class="tweak">tweaked the number of ingredients/pancakes you can stack.</li>
</ul>
<h3 class="author">Hatterhat updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">The Big Red Button now sets bomb timers to 2 seconds, instead of 5.</li>
<li class="tweak">Gloves of the North Star (not Hugs of the North Star) now use all their intents very, very fast. This does not apply to grabs' click cooldown, nor shoving people.</li>
<li class="rscadd">The seedvault/alien plant DNA manipulator can now be printed off with Alien Biotechnology.</li>
</ul>
<h3 class="author">Iroquois-Pliskin updated:</h3>
<ul class="changes bgimages16">
<li class="rscdel">Removed Clockwork Cult Surgical facility from Reebe</li>
</ul>
<h3 class="author">Jerry Derpington, baldest of the balds, and nemvar. updated:</h3>
<ul class="changes bgimages16">
<li class="rscdel">Nanotrasen has lost communication to two away mission sites that contained a beach for Nanotrasen employees.</li>
<li class="rscadd">Nanotrasen has been able to locate a new away mission site that ALSO has a beach. Nanotrasen employees will be able to enjoy the beach after all!</li>
<li class="rscadd">Seashells have been added to the game.</li>
</ul>
<h3 class="author">KathrinBailey updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Two extra 'luxury' dorms rooms!</li>
<li class="rscadd">Gas miners to atmos.</li>
<li class="rscadd">Posters around the station.</li>
<li class="rscadd">Vacant room added to the Starboard Bow with it's own APC, above electrical maintenance.</li>
<li class="rscadd">New trendy clothes to the locker room, giving variety and bringing fashion back onto Nanotrasen stations.</li>
<li class="rscadd">Coloured bedsheet and towel bin.</li>
<li class="rscadd">Maid uniforms for the janitor.</li>
<li class="tweak">Completely reworked bar. Milk kegs added in bar office. The bar has been changed for a homey restaurant feel just in time for Christmas! You can now run it as an actual restaurant! Local Bartender Icktsie III loved it so much he rolled around on the new floor smiling happily.</li>
<li class="tweak">Dorms rework. Fitness room now has lots of costumes and outfits.</li>
<li class="tweak">Junk removed from engineering, welding goggles added.</li>
<li class="tweak">Welding tools in engineering replaced with industrial welding tools.</li>
<li class="tweak">Package wrappers and hand labellers now in major departments.</li>
<li class="tweak">Cell charger moved from engineering lobby to the protolathe room, just like how it is in all of the other maps and just where the cell charger is actually needed.</li>
<li class="tweak">Library redesigned to have a private room and a 3x3 private study that is cleaned up.</li>
<li class="tweak">Paper bins have gone big or gone home, with premium stationery scattered around. Engineering and security now have a labeller and packaging supplies.</li>
<li class="bugfix">Dark spot top left of Botany fixed.</li>
<li class="bugfix">Huge galactic-sized dark spot in bar fixed.</li>
<li class="bugfix">Light replacers now are less horrifically overpowered and PTSD-inducing for the server.</li>
<li class="bugfix">Fixes issue 9706: https://github.com/Citadel-Station-13/Citadel-Station-13/issues/9706 Part of maint getting hit by radstorms.
_Kathrin's Box Beautification:_</li>
<li class="rscadd">Ports TG's pews https://github.com/tgstation/tgstation/pull/42712</li>
<li class="rscadd">The first step of a corporate incursion of Space IKEA into Nanotrasen.</li>
</ul>
<h3 class="author">Kevinz000, Cruix, MrStonedOne, Denton, Kmc2000, Anturk, MrDoomBringer, Dennok, TheChosenEvilOne, Ghommie updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Added support for Multi-Z power, atmospherics and disposals</li>
<li class="bugfix">massive service department nerf: space can no longer be extra crispy.</li>
</ul>
<h3 class="author">Knouli updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">attack_self proc for the legion core which triggers a self-heal al la the previous 'afterattack' proc, as if clicking on the character's own sprite to self-heal</li>
<li class="rscadd">admin logging for all three use cases of legion core healing - afterattack, attack_self, and implanted ui_action_click</li>
</ul>
<h3 class="author">Krysonism, Ghommie updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">NT has made breakthroughs in ice cream science, ice creams can now be flavoured with any reagent!</li>
<li class="tweak">The ice cream vat now accepts beakers.</li>
<li class="bugfix">Grape and Peach icecreams have scoop overlays yet again.</li>
</ul>
<h3 class="author">Linzolle updated:</h3>
<ul class="changes bgimages16">
<li class="code_imp">butchering component update</li>
<li class="tweak">hat tossing can no longer knock hats off</li>
<li class="bugfix">strange reagent being unable to revive simplemobs</li>
<li class="rscadd">jitter animation and more clear text to strange reagent revival</li>
</ul>
<h3 class="author">Mickyy5 updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Nanotrasen are now issuing Plasmamen with plasma in their survival boxes</li>
</ul>
<h3 class="author">MrJWhit updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">tweaked brain damage line</li>
</ul>
<h3 class="author">Naksu, ShizCalev updated:</h3>
<ul class="changes bgimages16">
<li class="refactor">Refactored examine-code</li>
<li class="bugfix">Examining a human with a burned prosthetic limb will no longer tell you that the limb is blistered.</li>
<li class="tweak">Items will now inform you if they are resistant to frost, fire, acid, and lava when examined.</li>
</ul>
<h3 class="author">Owai-Seek updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">"silly" bounties</li>
<li class="rscadd">"gardenchef" bounties</li>
<li class="rscdel">several bounties that require seriously good RNG to pull off.</li>
<li class="tweak">moved several chef and assistant bounties to silly and gardenchef</li>
<li class="balance">modified several bounty point rewards</li>
<li class="server">added new files "silly.dm" and "gardenchef.dm"</li>
<li class="rscadd">15+ new crates for cargo</li>
<li class="tweak">organizes crates and moving them to proper categories</li>
<li class="rscdel">some dumb stuff like toner crates re</li>
<li class="rscadd">leg wraps and sweaters to clothesmate</li>
<li class="rscadd">screwdriver and cable coil to janidrobe</li>
<li class="rscadd">screwdriver and cable coil to janibelt whitelist (for fixing/placing light fixtures)</li>
<li class="rscadd">monkey cube, syringe, enzyme, soy sauce, and cryoxadone to chef's vendor (contraband and premium)</li>
<li class="rscadd">add cracker, beans, honey bars, lollipops, chocolate coin, and spider lollipop to snack vendors (contraband and premium)</li>
<li class="rscadd">newspaper to loadout menu for bapping purposes</li>
<li class="rscdel">removed poppy pretzels from snack vendor premium</li>
<li class="rscadd">maid uniform (janimaid alt) to kinkmate.</li>
<li class="tweak">moves gear harness from premium to normal stock in kinkmate</li>
<li class="balance">re-balanced metal shield bounty</li>
<li class="rscadd">cryoxadone bottle (for use in chef vendor)</li>
</ul>
<h3 class="author">PersianXerxes updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">Reduces the grace period for meteors from a minimum of 5 and maximum of 10 to 3 and 6 minutes respectively.</li>
<li class="rscadd">Adds a pair of VR sleepers to Box Station's permabrig</li>
<li class="rscadd">Adds a pair of VR sleepers to Delta Station's permabrig</li>
<li class="rscadd">Adds a pair of VR sleepers to Pubby Station's permabrig</li>
<li class="rscadd">Adds a pair of VR sleepers to Meta Station's permabrig</li>
</ul>
<h3 class="author">Putnam updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">From-ghosts dynamic rulesets now actually listen to "required candidates"</li>
<li class="bugfix">Every dynamic-triggered event is now blacklisted from being triggered by the random events system when dynamic can trigger them.</li>
<li class="rscadd">Dynamic voting now features extended, if recent rounds have been chaotic.</li>
<li class="tweak">Roundstart rulesets now scale on population ready rather than total population.</li>
<li class="bugfix">Threat log now accurately represents what actually used the threat.</li>
<li class="tweak">Verbose threat log (admin-only) now shows ALL threat level changes.</li>
<li class="bugfix">VR mobs can no longer be dynamic midround antags.</li>
<li class="bugfix">Personal closets can use anything that holds an ID card now.</li>
</ul>
<h3 class="author">Putnam3145 updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">traitors work now</li>
<li class="balance">Gas filters now push gas the same way volume pumps do.</li>
<li class="balance">Gas filters now won't clog if only one output is clogged.</li>
<li class="tweak">Glowsticks can no longer be radioactively contaminated (one more supermatter contam exploit gone)</li>
<li class="bugfix">traitor removal is no longer borked</li>
<li class="rscadd">Dynamic voting</li>
<li class="config">Added DYNAMIC_VOTING to game_options</li>
<li class="tweak">SDGF now copies memories as well as antag data and factions.</li>
<li class="bugfix">Summon events now properly costs threat.</li>
<li class="bugfix">Refunded spells refund threat, too.</li>
<li class="refactor">Made wizard spells inherently have a requirement and cost.</li>
<li class="tweak">Meteor wave is no longer repeatable in dynamic.</li>
<li class="tweak">tweaked nuke ops</li>
<li class="bugfix">Organs can no longer be radioactively contaminated.</li>
</ul>
<h3 class="author">Robustin, Subject217 updated:</h3>
<ul class="changes bgimages16">
<li class="balance">The NukeOp Shuttle hull has been dramatically hardened. The walls are now "R-Walls" with far greater explosion resistance.</li>
<li class="balance">The NukeOp Shuttle guns have been significantly buffed. They now rapidly fire a new type of penetrator round, at a greater range, and have far greater explosion resistance.</li>
<li class="balance">The nuclear device on the NukeOp Shuttle is now in an anchored state by default, the Nuke can only be unanchored by inserting the disk and entering the proper code.</li>
<li class="balance">Non-Syndicate cyborgs are now unable to access the NukeOp Shuttle Console.</li>
<li class="bugfix">You can now unanchor Nukes even when the floor under them has been destroyed</li>
</ul>
<h3 class="author">Seris02 updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">added sleeping carp hallucination</li>
<li class="rscadd">Centcom + Assistant's formal winter coat + loadout + narsian + ratvarian winter coats</li>
<li class="rscadd">GPS location on examine</li>
<li class="bugfix">fixed the meteor hallucination</li>
<li class="tweak">tweaked the way the tapered penis looks</li>
<li class="rscadd">Added nine winter coats</li>
<li class="imageadd">added images for the winter coats</li>
<li class="tweak">adds the mining winter coat to mining wardrobes and mining lockers</li>
</ul>
<h3 class="author">ShizCalev updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">Ghosts can now see active AI cameras.</li>
<li class="bugfix">Fixed a couple of laser / energy guns never switching to the empty icon despite being unable to fire.</li>
</ul>
<h3 class="author">Swindly updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">Fixed MMIs not being able to use mecha equipment</li>
<li class="bugfix">Fixed MMIs not getting mecha mouse pointers</li>
<li class="bugfix">Fixed MMIs not getting medical HUDs in Odysseuses</li>
<li class="tweak">Brains can now switch to harm intent</li>
</ul>
<h3 class="author">Tetr4 updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">Turning a tile with gas effects into space now gets rid of the effects.</li>
</ul>
<h3 class="author">Trilbyspaceclone updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">plastic trash cart crafting with plastic</li>
<li class="rscadd">wallets are known for now holding more items</li>
<li class="tweak">shades and clowns HP</li>
<li class="rscadd">six more crates, A barrel, A Loom, 40 cotton sheets, two sets of fruit crates, raw lumber crate</li>
<li class="rscadd">All fermi chems, Boozes, Medical, food chems now sell</li>
<li class="rscadd">Loads more to sell - Mech gear, Cooking and more!</li>
<li class="tweak">Moved around the vaule of some things and removed elastic of most items</li>
<li class="balance">Rebreather implants will now loss vaule, Do to being just metal and glass</li>
<li class="balance">lowered how many chems are in lewd chem kegs to be around 150-100 as well as the fancy booze kegs</li>
<li class="bugfix">bad returns and tools used</li>
<li class="rscadd">8 new cargo crates!</li>
<li class="tweak">tablet cargo crate by -3k</li>
<li class="admin">Closes a bunch of issues</li>
<li class="server">updates changlogs and such</li>
<li class="bugfix">fixed a catnip not having sprites</li>
<li class="balance">Boh cant hold WEIGHT_CLASS_GIGANTIC, just Bulky. Makes katana, chainsaw and base ball bat into bulky items so they may fit</li>
<li class="server">changes header to be more cit-like</li>
<li class="rscadd">new clothing for the hotel staff and a hat</li>
</ul>
<h3 class="author">Ty-the-Smonk updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">You can now interact with self sustaining crossbreeds</li>
</ul>
<h3 class="author">Useroth updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Colored fairygrass variants.</li>
<li class="bugfix">Added a missing cherrybulb seedpack sprite</li>
<li class="bugfix">numbered storages now are sorted in a consistent way, instead of depending on ordering of their contents var</li>
<li class="rscadd">strange seeds as a buyable traitor botanist item</li>
<li class="bugfix">resolves the issues revolving around blackpowder exploding where the reaction happened, instead of where it actually is through making it explode instantly</li>
<li class="tweak">the explosion delay moved from blackpowder directly into bomb cherries, to keep them functioning as intended</li>
<li class="rscadd">A bunch of newer tg plants</li>
<li class="rscadd">A bunch of newer tg plant traits</li>
<li class="rscadd">A couple of newer tg plant reagents</li>
<li class="bugfix">the new plants now properly get their reagents and reagent genes instead of being empty with UNKNOWN reagents listed in the DNA machine</li>
<li class="rscadd">extradimensional oranges now contain haloperidol</li>
<li class="bugfix">extradimensional oranges now actually grow properly and give proper seeds.</li>
</ul>
<h3 class="author">Weblure updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Button added to slime console that prints out the hotkey commands to the user. [Includes DMI update]</li>
<li class="rscadd">Shift-click a slime to pick it up, or the floor to drop all held slimes. (Requires Basic Slime Console upgrade)</li>
<li class="rscadd">Ctrl-click a slime to scan it.</li>
<li class="rscadd">Alt-click a slime to feed it a potion. (Requires Advanced Slime Console upgrade)</li>
<li class="rscadd">Ctrl-click on a dead monkey to recycle it, or the floor to place a new monkey. (Requires Monkey Console upgrade)</li>
<li class="rscadd">If the console does not have the required upgrade, an error message will print to the user.</li>
<li class="rscadd">You can now pick up a single slime from a pile, instead of all of them at once.</li>
<li class="tweak">When recycling monkeys, the console will now report how many monkeys it has (will not report decimal increases).</li>
<li class="tweak">Console now alerts you when you're out of monkeys and reports your current decimal amount.</li>
<li class="tweak">Console messages are now styled consistently.</li>
</ul>
<h3 class="author">XDTM, ShizCalev, Naksu, Skoglol, cacogen, Rohesie (ported by Ghommie) updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">Holding an ID in your hands uses it instead of your worn ID for authentication purposes.</li>
<li class="tweak">If you don't have an ID in your id slot, the belt slot will be checked as well.</li>
<li class="code_imp">small cleanup to id and bounty console html generation</li>
<li class="tweak">Hop console now hurts your eyes less. Red button text replaced with green.</li>
<li class="tweak">IDs with ID console access now go into the Confirm Identity slot by default like they used to, similarly IDs without it go into the Target slot by default again</li>
<li class="rscadd">Can easily swap out IDs by clicking the machine or the UI fields with another ID</li>
<li class="rscadd">ID console now names which IDs are added/removed in its visible messages</li>
<li class="rscadd">Labels the ID slot fields when logged in so you know which is which</li>
<li class="tweak">Can use Job Management without an ID provided the console is logged in (matches how the console now stays logged in even without an ID)</li>
<li class="tweak">Can log in without an ID in the Target field (matches how the machine now stays logged in even after the ID is removed from the Target field)</li>
<li class="tweak">Cleans up UI slightly (had some duplicate/conflicting buttons)</li>
<li class="bugfix">Fixes ID console duping issues. Includes some ID containers, such as PDAs, tablets and wallets, into the swapping behavior when an ID card is being removed and the item is being held.</li>
</ul>
<h3 class="author">Xantholne updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">New Berets for most heads and departments available in their autodrobes or lockers</li>
</ul>
<h3 class="author">YakumoChen updated:</h3>
<ul class="changes bgimages16">
<li class="imageadd">New AI Holograms and Displays! Ported from /vg/station.</li>
</ul>
<h3 class="author">actioninja updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">med records no longer can eat id cards for no reason</li>
<li class="bugfix">Chat is properly sent to legacy window if goonchat fails to load again.</li>
</ul>
<h3 class="author">dapnee updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">fixed closet initialisation being broken</li>
<li class="rscdel">emergency closets no longer have a 1% chance to delete themselves</li>
<li class="bugfix">Communications console window no longer updates, won't steal focus anymore.</li>
<li class="bugfix">Trimline neutral end exists now.</li>
</ul>
<h3 class="author">dzahlus updated:</h3>
<ul class="changes bgimages16">
<li class="soundadd">added a new gun sounds</li>
<li class="sounddel">removed an old gun sounds</li>
</ul>
<h3 class="author">him updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">hos and aeg guns now conform to le epic taser rework standards</li>
</ul>
<h3 class="author">kappa-sama updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">changed flavor text of alien tech on uplink</li>
<li class="imageadd">added TG's icons for traitor, russian, and golden revolver</li>
</ul>
<h3 class="author">kevinz000 updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">you can now choose never for this round for magical antags</li>
<li class="rscadd">Cargo has passive point generation again at 750 points/minute</li>
<li class="balance">Mindshield crate price increased from 3000 to 4000</li>
<li class="balance">Miasma sell price reduced from 15/mol to 4/mol</li>
<li class="balance">bluespace wizard apprentice now has blink instead of targeted area teleportation</li>
<li class="balance">Emagged medibots now charcoal toxinlovers.</li>
<li class="balance">disablers buffed 0.7 --> 0.6 speed 24 --> 28 damage</li>
<li class="balance">kinetic crushers no longer drop if you try to use it with one hand</li>
<li class="config">added multi_keyed_list, delimiter defaults to |.</li>
<li class="balance">Light pink extracts no longer speed you up. Instead, they give stamina regeneration and free sprinting.</li>
</ul>
<h3 class="author">kiwedespars updated:</h3>
<ul class="changes bgimages16">
<li class="rscdel">removed moth fluff coloring you like your wings</li>
<li class="balance">made insect not so bad.</li>
</ul>
<h3 class="author">nemvar updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">You now get a message if your PDA explodes while you are holding it.</li>
<li class="tweak">The lavaland clown ruin has some new pranks ready.</li>
<li class="rscadd">Added a new loot item to the lavaland clown ruin.</li>
<li class="rscdel">Removed the slime core from said ruin.</li>
<li class="balance">The clown PDA now properly slips people on jogging move intent regardless of fatigue. Honkmother's will.</li>
</ul>
<h3 class="author">nemvar, ShizCalev, Qustinnus/Floyd, Ghommie updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">You can now unfasten the loom.</li>
<li class="tweak">it now takes 4 strands to make one piece of durathread cloth</li>
<li class="bugfix">Looms can now be attacked.</li>
<li class="rscadd">Durathread golem weaves his magic</li>
<li class="tweak">Supply ordered looms are unanchored. Bring a wrench.</li>
</ul>
<h3 class="author">r4d6 updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Added Departements Winter Coats to the loadout list.</li>
</ul>
</div>
<b>GoonStation 13 Development Team</b>
+472
View File
@@ -23980,3 +23980,475 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
shellspeed1:
- rscadd: Adds Insect markings
- rscadd: Adds three new moth wings.
2020-01-27:
4dplanner, CRITAWAKETS, XDTM, ninjanomnom:
- rscadd: sepia slime extract has a delay before activating
- balance: the user of a sepia slime extract is no longer immune to the time field
- balance: chilling sepia is now the support extract - it always freezes the user,
but not other marked people. give one to your golem!
- rscadd: burning sepia spawns the rewind camera. Take a selfie with someone and
give it to them to make sure they remember the moment forever! You don't actually
need to give them the photo, they'll remember anyway. Keep it as a reminder.
- rscadd: rewinding (deja vu) effect resets your location to the turf you were on
after 10 seconds as well as resetting limbs/mobs/objects damage to the point
it was added.
- rscadd: The deja vu effect cannot resurrect the dead, but will heal their corpse.
New limbs fall off, old ones re-attach
- rscadd: 'Regenerative sepia cores add a deja vu effect before healing instead
of a timestop remove: timefreeze camera is admin spawn only.'
- rscadd: recurring sepia recalls to the hand of the last person to touch it after
activating. Reusable timestop grenades!
- tweak: some special cameras don't prompt for customisation
- bugfix: timefreeze camera actually makes a photo
- bugfix: timestop stops pathing and mechs.
- bugfix: adds a check to make sure simple_animals don't get their AI toggled while
sentient
- bugfix: Adds the timestop overlay to frozen projectiles
- bugfix: Timestopped things have INFINITY move_resist as opposed to being anchored
- bugfix: Timestop will now unfreeze things that somehow leave it
- bugfix: mobs in the middle of a walk_to will have their walk stopped by timestop
- bugfix: mobs that are stunned will be stopped mid walk as well
- bugfix: pulling respects changes in move_force
- bugfix: swapping places respects move_force if the participant is not willing
- bugfix: timestop is properly defeated by antimagic.
- bugfix: timestop only checks antimagic once
- tweak: Time stop now applies its visual effect on floors, walls and static structures
(with no change otherwise)
- tweak: Movable structures are now anchored while time stopped.
- tweak: Timestop effects now prevent speech.
AffectedArc07:
- code_imp: All code files are now in the LF line format, please stick to it
- tweak: Added CI step to check for CRLF files
- code_imp: Line ending CI works now
Arkatos, Zxaber, Ghommie:
- rscadd: Certain AI abilities now dynamically show their remaining uses on the
mouse hover over their respective action buttons.
- bugfix: Malfunctioning AIs can no longer abuse the confirmation popup to create
extra (unstoppable) doomsdays.
- bugfix: Fixed AIs being able to use some of their abilities such as the doomsday
whilst dead, and the doomsday loading phase not halting upon AI death.
Arturlang:
- tweak: Vampires are no longer as tanky
- rscadd: Added modular computers to the loadout
Bhijn:
- rscadd: Limbs now regenerate their stamina faster while disabled
- rscadd: Limbs now have the same incoming stamina damage multiplier mechanics as
spacemen, where the more staminaloss they take while disabled, the less staminaloss
they'll take.
- balance: Limbs have had their base stamina regen rate doubled to match the doubled
stamina regen rate of standard spacemen.
- rscadd: Added a preference to make the sprint hotkey be a toggle instead of a
hold bind
- rscadd: Added a preference to bind the sprint hotkey to space instead of shift.
- bugfix: server_hop can no longer be used to remotely lobotomize a spaceman
Bhijn helped:
- bugfix: Fixes Dragon's Tooth Sword 50% armor penetration by making it 35%
BonniePandora:
- admin: 'Added another SDQL option. Using "UPDATE selectors SET #null=value" will
now resolve value and discard the return. This is useful if you only care about
the side effect of a proc.'
CameronWoof:
- rscadd: Ghost Cafe patrons now spawn with chameleon kits. Dress up! Be fancy!
- rscadd: Robots can now check the crew manifest from anywhere with the "View Crew
Manifest" verb.
- tweak: Lizard tails are now viable options for humans and anthromorphs.
Commandersand:
- bugfix: fixed some clothnig sprites
- balance: lightning bolt,tesla,forcewall,emp spells have lower cooldown
- balance: fireball has a 10 second starting cooldown
DeltaFire15:
- bugfix: Vitality matrixes now correctly succ slimes
Denton, ported by Hatterhat:
- tweak: Most upgradeable machines now show their upgrade status when examined while
standing right next to them.
- tweak: Added examine messages to teleporter stations that hint at their multitool/wirecutter
interactions.
- tweak: Renamed teleporter stations from station to teleporter station.
- code_imp: Changed the teleporter hub accurate var to accuracy; the old name misled
people into thinking that it was a boolean.
Detective-Google:
- tweak: replaced the sprites with new ones requested.
EmeraldSundisk:
- rscadd: Adds a sign outside MetaStation's custodial closet
FantasticFwoosh, ported by Hatterhat:
- rscadd: Both reagent universal enzyme & sacks of flour are now available for their
respective costs from the biogenerator.
- rscadd: New crafting recipies for donut boxes, eggboxes & candle boxes have been
added to cardboard recipes for the collective benefit of service personnel and
the station.
Ghommie:
- tweak: Attached kevlar/soft/plastic padding accessories are now stealthier and
will no longer be displayed on mob examine.
- refactor: Refactored that mess of a code for alternate worn clothing sprites for
digitigrade and taurs.
- bugfix: Fixed some issues with the aforementioned feature you may or may not have
experienced because it was pretty lame.
- bugfix: Fixed missing digi versions fishnet sprites and wrong digitigrade left
dir purple stockings sprite.
- imageadd: Add digitigrade versions for boxers and the long johns.
- bugfix: Fixed the secret sauce recipe being randomized every round.
- bugfix: Fixed singularity pulls duping rods out of engine floors.
- rscdel: Removed an old pair of zipties from the captain closet.
- bugfix: Chestbursters won't delete the host's brain somewhat anymore.
- bugfix: Fixed roundstart mushpeople being unable to MUSH PUUUUUUUUUUUUNCH!!
- bugfix: Lattices can be examined yet again.
- bugfix: Made reagent containers examine text less annoying.
- bugfix: Virus food dispensers dispense virus food again.
- bugfix: Borg hypos inputs do not display typepaths anymore.
- bugfix: Restored chem dispensers alphabetical order.
- bugfix: Sanitized cargo export messages for reagents.
- bugfix: Riot foam dart (not the ammo box) design cost is yet again consistent
with the result's material amount.
- bugfix: Fixed a little exploit with ventcrawlers being capable of escaping closed
turfs by printing scrubbers/vents into them.
- bugfix: deconstructing a rubber toolbox with the destructive analyzer won't "lock"
the machine anymore.
- bugfix: Something about empty hand combat mode right click waving hands defying
common sense and being spammy.
- imageadd: Towels are now "digitigrade-friendly".
- bugfix: The Barefoot drink and mousetraps will now work even if wearing certain
"feet-less shoes".
- rscadd: Refactored code to allow all living mobs to use shields and not only humans.
- tweak: Monkys will now retaliate against aliens attacking them (as if they even
posed a threat to start with).
- tweak: add a click cooldown to the overly spammable table slamming.
Ghommie (original PRs by Kevinz000, ShivCalez, 4dplanner, Barhandar, 81Denton, zxaber, Fox-McCloud):
- rscadd: All atom movables now have move force and move resist, and pull force
An atom can only pull another atom if its pull force is stronger than that atom's
move resist
- rscadd: 'Mobs with a higher move force than an atom''s move resist will automatically
try to force the atom out of its way. This might not always work, depending
on how snowflakey code is. experimental: As of right now, everything has a move
force and resist of 100, and a pull force of 101. Things take (resist - force)
damage when bumped into experimental: Failing to move onto a tile will now still
bump up your last move timer. However, successfully pushing something out of
your way will result in you automatically moving into where it was.'
- bugfix: Bolted AIs can no longer be teleported by launchpads.
- balance: Megafauna cannot teleport
Hatterhat:
- balance: Beakers are generally more useful now, with slight capacity increases.
- tweak: Transfer amounts are different now. Adjust your muscle memory to compensate.
- balance: ore redemption machines actually get affected by lasers again kthx
- tweak: crusher trophy drop chance on mining mobs increased to 1 in 4 (from 1 in
20)
- bugfix: Blood-drunk buff from blood-drunk eye crusher trophy is less likely to
cripple its user.
- tweak: Forcefield projectors now fit on toolbelts.
- imageadd: New sprites for ATMOS holofan and forcefield projectors!
- tweak: tweaks some values around with beaker transfer amounts, adds a transfer
value verb (altclick)
- rscadd: 'Syndicate sleepers (read: the ones that''re red and have controls in
them) can now be recreated with a sufficient basis in nonstandard (read: illegal)
technologies!'
- bugfix: Explorer hoods on standard explorer suits can be reinforced with goliath
hide plates again.
- rscadd: A shipment of Staff Assistant jumpsuits from the Goon-operated stations
appear to have made their way into your loadout selections - and into the contraband
list from ClothesMates...
- balance: Dropped Exo-suit armor to put it more in line with being an explorer
suit sidegrade and not a straight upgrade for Lavaland usage.
- rscadd: You can now print .357 AP speedloaders from Security techfabs after you
pick up the Advanced Non-Standard Ballistics node.
- rscdel: Forensic scanner removed from Advanced Biotechnology node.
- tweak: Ash Drake armor now has goliath resistance, same as the Exo-suit.
KathrinBailey:
- rscadd: Empty engineering lockers for mappers.
- rscadd: Industrial welding tools to the engineer welding locker.
- rscdel: Removed the multitool, airlock painter, mechanical toolbox, brown sneakers,
hazard vest and airlock painter from the CE's locker.
KeRSedChaplain:
- imageadd: The clockwork cuirass can now support slithering taur bodies.
Kevinz000:
- bugfix: Fixes successful projectile hits also striking another atom on the same
turf should the first one be not the target the projectile was meant for.
- rscdel: Removes infinite reflector loops.
Kraseo:
- bugfix: Jelly donuts and pink jelly donuts will now properly display sprinkled
icon state.
- bugfix: Jelly donuts and its variants will properly spawn with berry juice.
- bugfix: Slime jelly donuts have slime jelly in them now. (thanks ghommie)
- bugfix: Virgo hairstyles no longer have those annoying quotation marks. Rejoice
for you will no longer have to use the scrollbar.
- imagedel: Got rid of some strange-looking hairstyles. (Tbob, fingerweave, etc.)
LetterN:
- rscadd: Doppler logs
- tweak: Shockcolar and electropack uses the new signaler ui
- tweak: Renaming shockcolar requires a pen
- rscadd: Adds banjo
Linzolle:
- bugfix: fixes matchboxes runtiming every time they spawn
MrJWhit:
- tweak: Increases plasma usage in radiation collectors
Naksu:
- code_imp: reagent IDs have been removed in favor using reagent typepaths where
applicable
- bugfix: mechas, borg hyposprays etc no longer display internal reagent ids to
the player
Owai-Seek:
- rscadd: Four New Bounties
- tweak: tweaked several bounties
- tweak: reorganised several bounties
- balance: balanced several bounties
- bugfix: added shady jims to vendor
- rscadd: Towel, Bedsheet, and Colored bedsheet bins to Dojo. Some lockers with
carpets and wood, another bathroom/shower, tons of cleaning supplies, some additional
trash cans, a tiny medical area, and some vendors/vendor resupplies. Also added
some Ambrosia Gaia seeds.
- tweak: Moved some lights around, extended the dojo a bit to make it feel more
spacious.
- rscdel: Cafe Newsfeed Frame
PersianXerxes:
- tweak: Reduces the range of the forcefield projector from 7 tiles to 2 tiles.
Putnam:
- rscadd: Alcohol intolerance trait, which forces vomiting on any alcohol ingestion
- rscdel: Arousal damage is gone, and with it the arousal damage heart on the UI.
- rscdel: As exhibitionist relied on arousal damage, that's gone too.
- rscdel: Bonermeter and electronic stimulation circuit modules are gone.
- rscdel: Masturbation is no longer an option in the climax menu. It was identical
to climax alone in every way but text. Emote it out.
- rscadd: Arousal on genitals can now be displayed manually, on a case-by-case basis.
- rscadd: '"Climax alone" and "climax with partner" now only display to the people
directly involved in the interaction. rework: Catnip tea, catnip, crocin, hexacrocin,
camphor, hexacamphor all had functions or bits of functions reworked.'
- tweak: '"Climax with partner" now requires consent from both parties--it can no
longer be used on mindless mobs, and it asks the mob getting climaxed with if
they consent first.'
- tweak: A lot of MKUltra behaviors have been moved to hypno checks or removed due
to reliance on maso/nympho/exhib.
- rscadd: Cold-blooded quirk
- rscadd: 'Two relief valves for atmospherics, available in your RPD today: a unary
one that opens to air and a binary one that connects two pipenets, like a manual
valve.'
- tweak: The atmos waste outlet injector on box has been replaced with an atmos
waste relief valve.
Putnam3145:
- rscadd: Dynamic storytellers, a new voting paradigm for dynamic
- rscadd: Support for approval voting and condorcet (ranked choice) voting in server
votes
- rscadd: Ghost cafe mobs can now ghostize
- rscadd: Ghost cafe now has a cremator
- rscadd: Ghost cafe mobs are now eligible for ghost roles
- refactor: Ghost roles now use an element for eligibility purposes
- bugfix: You can toggle some prefs properly now.
- bugfix: no ass slap is no longer the same thing as no aphro
- balance: Devastating bombs kills bomb armor'd mobs again
- rscadd: Added a sort of "game mode ban" by way of having people rank their game
modes favorite to least favorite after the secret/extended vote.
- bugfix: Turns out the schulze scoring was written wrong and it was setting things
to 0 that shouldn't have been, so that's fixed.
- config: Random engines are now weighted.
- rscadd: Ghost dojo now has an autoylathe.
- rscdel: Ghost dojo no longer has VR or modular computer access.
- tweak: Ghost dojo mobs are pacifists.
- tweak: Ghost dojo booze-o-mat is now all access.
- bugfix: Ghost dojo crematorium now has a button.
- bugfix: Traitor objectives don't take a dump when they try to add an assassinate
anymore
- admin: Objective removal with antag panel no longer commented out silently while
still being an option that gives useful feedback on stuff it's not doing in
any respect
- rscadd: Second, temporary flavor text!
- bugfix: Limb damage works now
- tweak: Score instead of ranked choice for mode tiers
- bugfix: Chemistry not :b:roke
- tweak: Ghost dojo spawns will dust if their owner suicides or uses the "ghost"
verb.
- admin: Crafting is logged in a file now
- bugfix: temporary flavor text now pops up properly
- code_imp: demodularized player panel code, mostly
- admin: added ghost role eligibility delay removal to player panel
- balance: Metabolic synthesis disables if user isn't well-fed rather than if user
is starving
- bugfix: Gibtonite no longer instantly explodes upon being pickaxe'd.
- balance: Cold-blooded costs -2 quirk points now
- config: Added suicide to the config.
- tweak: Ghost cafe mobs are super duper attached to the ghost cafe.
- bugfix: Meow Mix bar sign works
- bugfix: Fixed a few relief valve behaviors
Ryll/Shaps, ported by Hatterhat:
- rscadd: Point-blanking people with shotguns actually throws them backwards!
Savotta:
- rscadd: snout
- imageadd: snout
Seris02:
- tweak: made it so trait blacklisting removes random positives instead of removing
everything
- rscadd: added atmos holofirelocks and temperature blocking
- tweak: tweaked how atmos holofan looks
- rscadd: stunglasses
- rscadd: disabler sechuds
- rscadd: adds coconut
- rscadd: adds a coconut bong
- rscadd: Auto ooc
- admin: changed "assume direct control" from m.ckey = src.ckey to adminmob.transfer_ckey(M)
so it works with auto ooc
- rscadd: marshmallow
- rscadd: telescopic IV drip
- bugfix: cardboard box speed
- tweak: makes gorilla shuttle emag only
- tweak: changed where the observe verb is.
- tweak: the way chameleon clothes update on change
- bugfix: chameleon cloak icon
- balance: Explosions now cause knockdown instead of KOs, with the amount of time
scaling off bomb armor. Heavy explosions still cause a ~2 second KO for follow
up attacks.
- balance: Devastating explosions now no longer gib players with more than 50 bomb
armor. This used to be more or less random depending on the amount of bomb armor.
- code_imp: Removed reagent explosion code that would trigger for <1 amount reactions.
- rscadd: traitor tool for bowmanizing headsets + bowmanizing headsets
- rscadd: durathread winter coats from hyper station
- tweak: conveyor belt now are stacks instead of single item
- tweak: conveyor crate has 30 belts
- tweak: printing a conveyor costs 3000 metal
- rscadd: you can press the conveyor switch in hand to link any not deployed belts
to it
- tweak: sniffing sneezing etc doing anything if they don't breathe
- bugfix: probably fixes the make mentor button
- tweak: the sprites for the conveyor belts to look more directional
Skoglol:
- bugfix: Falsewalls now properly hide pipes and wires.
SpaceManiac, bobbahbrown, ShizCalev, SpaceManiac (ported by Ghommie):
- code_imp: It is now possible to set a different most-base-turf per z-level.
- spellcheck: Removed unlawful reference to Disney's Star Wars franchise in map
logging.
- tweak: Moved mapping related errors to their own log file.
- bugfix: Destruction on Lavaland will no longer reveal space in rare situations.
Tlaltecuhtli, Nemvar, Trilby, Hatterhat:
- rscadd: russian surplus crate, sec ammo crate, meat/veggie/fruit crate, rped crate,
bomb suit crate, bio suit crate, parrot crate, chem crate, db crate
- tweak: lowered price of some crates which are overpriced for no reason aka the
tablet crate and the mech circuits crates, track implant crate has also track
.38 ammo
- bugfix: sectech vendor has a refill pack
Trilbyspaceclone:
- bugfix: Fermi plushie can be made once again
- tweak: range on Engi Tray scanners and Rad-Scanners
- bugfix: issues with mapping done my Trilby
- rscadd: Grass now makes light beer when distilled
- tweak: allows bandoliers to hold any ammo type as long as it has a casing
- server: Cleans out the last years of changlogs
- bugfix: 'rouge cases of #$39; in bottle/pill/patch/condiments'
- tweak: Adds missing but needed flags to MASON RIG
- bugfix: missing sprites with crushed cans
- tweak: Halfs the nutriments in sugar
- rscadd: Glitter is now makeable with ground plastic and some crayons
- code_imp: Makes more folders and files for uplink.
- rscadd: Seed packs now have RnD points inside them
- rscadd: New tips that reflect the now use seed packs have for Rnd / Chems affect
on plants
- code_imp: Made the research file look nice rather then an eye harming list
- bugfix: Fixed fragile space suits breaking from weak and non-damaging "weapons"
(such as the Sord, toys and foam darts).
- rscadd: 'tip of the round: Cleanbot can withstand lava and burning hot ash. Its
a god'
- rscadd: more glassware
- rscadd: Few new packs and glassmaker kit!
- tweak: prices/chems of crates/autobottler
- bugfix: some crates ungettable as well as some broken crates
Trilbyspaceclone, Ghommie:
- rscadd: More types of glass can now be used to make a solar panel, with different
sturdiness and efficiency depending the type.
Tupinambis:
- tweak: Replaces new fire alarms with a slightly updated version of the old ones.
- bugfix: Fixed bug where Amber alert had no proper alert lights, and red alert
had amber lights.
- balance: RLDs now cost more to use, have reduced matter capacity, and sheets are
worth less when refilling them.
Unit2E & JMoldy, ported by Hatterhat:
- balance: the powerfist now punches people away at high velocity depending on setting.
- rscadd: the powerfist now leaks the gas it uses onto the tile you're on.
- tweak: Adds weak punch variations for empty and near-empty punching.
Xantholne:
- bugfix: Christmas clothes that where missing stuff should work again
- tweak: Christmas clothes moved from clothesmate and loadout to premium autodrobe,
hoodies and boots remain.
- rscadd: Botany bee pet, Bumbles
- rscadd: New bee models that aren't 1 tile big of 0 opacity pixels
- rscadd: Cheongsam and Qipao clothing added to loadout and clothesmates
dapnee:
- imageadd: new toxin's uniform and accessories
- imagedel: old toxin's uniform and accessories
deathride58:
- balance: The stamina buffer no longer uses stamina while recharging.
jakeramsay007:
- rscadd: The assorted .357 revolvers (except russian revolver) can now also load
.38, like real life.
kappa-sama:
- rscadd: loot crates in cargo contraband
- code_imp: modular_citadel file movement
- code_imp: modular citadel loses some files
- balance: dragnet snares can now be removed in 5 seconds
keronshb:
- rscadd: Adds new features for nanites
- bugfix: fixed the missing icons from Dermal Button nanites
- rscadd: Ports the special nanite remote, mood programs, and research generating
nanites
- balance: rebalances some nanites
- bugfix: fixed my messup
kevinz000:
- rscadd: throwing things no longer makes them randomly turned as long as you aren't
on harm intent
- rscadd: Custom holoforms have been added for pAIs and AIs. oh and cyborg holograms
of specific modules too.
- balance: pais are no longer indestructible-flagged while in card form. pai radios
now short out if they are forcefully collapsed from damage.
- bugfix: telescopic iv drips now have the proper sanity checks for deployment.
- bugfix: megafauna can hear again
- balance: Cargo passive gen is now 500 down from 750.
- config: Added a few more nightshift config entries
- rscadd: nightshift_public_area variable in areas to determine how public an area
is.
- rscadd: NIGHT_SHIFT_PUBLIC_AREAS_ONLY config entry allows the server to be configured
to only nightshift areas of that level and below (so areas that are more public)
- rscadd: Config entries added for requiring authorizations to toggle nightshift.
Defaults to only requiring on public areas as determined by above
- balance: nuclear fist buffed.
- balance: cogscarabs are now fulltile-hitbox.
- balance: emitters are now hitscan
- balance: monkies gorrilize easier now
- rscadd: Ghosting no longer stops abductors from using you.
- rscadd: guests can now looc
- tweak: tableslamming has 0.4 second cooldown instead of 0.8
- bugfix: health analyzers now work
- code_imp: Mapping helpers added for power cables and atmos pipes.
- rscdel: Blood duplication is gone, but viruses now react up to 5 times, 1 time
per unit, for virus mix.
- rscadd: you can now block people on your PDA
- bugfix: Grenades can now have their timers adjusted.
- balance: Cloning has been nerfed.
- bugfix: hilbert hotel is now less of an exploity mess
- balance: Doorcrushes are once again instant.
nik707:
- tweak: engraving light_power from 1 to 0.3
r4d6:
- rscadd: Added a Radiation Hardsuit
- rscadd: Added a Radiation Hardsuit crate
- rscadd: Added 3 SM Engine variations.
- rscadd: 'Added a way to make opaque plastic flaps change: Change the already existing
flap recipe to show that they are see-through'
- rscadd: Animations for the RCD
- bugfix: Said animations being pulled by the Singulo
- balance: Prevent Reinforced Doors from being RCD'ed
- bugfix: Deconstructing Floors now cost MUs like everything else
- tweak: changed the RCD's upgrades into flags
- rscadd: Allow RCDs to print APC, Firelocks and Fire Alarms with the right upgrade
- balance: Allow Engineers to print RCDs and RPDs from their protolathe without
needing to hack one.
- rscadd: Added a playback device
- bugfix: Made the Voice Analyzer actually care about languages
- bugfix: fixed SM's piping
- rscadd: Added a message when pulsing the open wire.
- bugfix: fixed being able to use a playback device and a voice analyzer to activate
each others
- rscadd: added passive vent to the arsenal of atmospheric devices.
- rscadd: Mining base now has a common area accessible via a new shuttle on the
medium-highpop maps, and a security office connecting the gulag and the mining
base. Gulag also has functional atmos.
- rscadd: Added more Cyborg Landmarks
- refactor: better code for passive vents
- bugfix: fixed a hole in Meta
- rscadd: Added the ability to easily add variations of the mining base
- bugfix: fixed a sprite
timothyteakettle:
- bugfix: fixed not being able to remove trait genes without a disk being inserted
into the dna manipulator
@@ -1,28 +0,0 @@
author: "4dplanner, CRITAWAKETS, XDTM, ninjanomnom"
delete-after: True
changes:
- rscadd: "sepia slime extract has a delay before activating"
- balance: "the user of a sepia slime extract is no longer immune to the time field"
- balance: "chilling sepia is now the support extract - it always freezes the user, but not other marked people. give one to your golem!"
- rscadd: "burning sepia spawns the rewind camera. Take a selfie with someone and give it to them to make sure they remember the moment forever! You don't actually need to give them the photo, they'll remember anyway. Keep it as a reminder."
- rscadd: "rewinding (deja vu) effect resets your location to the turf you were on after 10 seconds as well as resetting limbs/mobs/objects damage to the point it was added."
- rscadd: "The deja vu effect cannot resurrect the dead, but will heal their corpse. New limbs fall off, old ones re-attach"
- rscadd: "Regenerative sepia cores add a deja vu effect before healing instead of a timestop
remove: timefreeze camera is admin spawn only."
- rscadd: "recurring sepia recalls to the hand of the last person to touch it after activating. Reusable timestop grenades!"
- tweak: "some special cameras don't prompt for customisation"
- bugfix: "timefreeze camera actually makes a photo"
- bugfix: "timestop stops pathing and mechs."
- bugfix: "adds a check to make sure simple_animals don't get their AI toggled while sentient"
- bugfix: "Adds the timestop overlay to frozen projectiles"
- bugfix: "Timestopped things have INFINITY move_resist as opposed to being anchored"
- bugfix: "Timestop will now unfreeze things that somehow leave it"
- bugfix: "mobs in the middle of a walk_to will have their walk stopped by timestop"
- bugfix: "mobs that are stunned will be stopped mid walk as well"
- bugfix: "pulling respects changes in move_force"
- bugfix: "swapping places respects move_force if the participant is not willing"
- bugfix: "timestop is properly defeated by antimagic."
- bugfix: "timestop only checks antimagic once"
- tweak: "Time stop now applies its visual effect on floors, walls and static structures (with no change otherwise)"
- tweak: "Movable structures are now anchored while time stopped."
- tweak: "Timestop effects now prevent speech."
@@ -1,4 +0,0 @@
author: "Ghommie"
delete-after: True
changes:
- tweak: "Attached kevlar/soft/plastic padding accessories are now stealthier and will no longer be displayed on mob examine."
@@ -1,5 +0,0 @@
author: "Ghommie"
delete-after: True
changes:
- refactor: "Refactored that mess of a code for alternate worn clothing sprites for digitigrade and taurs."
- bugfix: "Fixed some issues with the aforementioned feature you may or may not have experienced because it was pretty lame."
@@ -1,4 +0,0 @@
author: "kevinz000"
delete-after: True
changes:
- rscadd: "throwing things no longer makes them randomly turned as long as you aren't on harm intent"
@@ -1,5 +0,0 @@
author: "Kevinz000"
delete-after: True
changes:
- bugfix: "Fixes successful projectile hits also striking another atom on the same turf should the first one be not the target the projectile was meant for."
- rscdel: "Removes infinite reflector loops."
@@ -1,5 +0,0 @@
author: "Ghommie"
delete-after: True
changes:
- bugfix: "Fixed missing digi versions fishnet sprites and wrong digitigrade left dir purple stockings sprite."
- imageadd: "Add digitigrade versions for boxers and the long johns."
@@ -1,5 +0,0 @@
author: "Putnam3145"
delete-after: True
changes:
- rscadd: "Dynamic storytellers, a new voting paradigm for dynamic"
- rscadd: "Support for approval voting and condorcet (ranked choice) voting in server votes"
@@ -1,5 +0,0 @@
author: "kevinz000"
delete-after: True
changes:
- rscadd: "Custom holoforms have been added for pAIs and AIs. oh and cyborg holograms of specific modules too."
- balance: "pais are no longer indestructible-flagged while in card form. pai radios now short out if they are forcefully collapsed from damage."
@@ -1,4 +0,0 @@
author: "Seris02"
delete-after: True
changes:
- tweak: "made it so trait blacklisting removes random positives instead of removing everything"
@@ -1,7 +0,0 @@
author: "SpaceManiac, bobbahbrown, ShizCalev, SpaceManiac (ported by Ghommie)"
delete-after: True
changes:
- code_imp: "It is now possible to set a different most-base-turf per z-level."
- spellcheck: "Removed unlawful reference to Disney's Star Wars franchise in map logging."
- tweak: "Moved mapping related errors to their own log file."
- bugfix: "Destruction on Lavaland will no longer reveal space in rare situations."
@@ -1,5 +0,0 @@
author: "Seris02"
delete-after: True
changes:
- rscadd: "added atmos holofirelocks and temperature blocking"
- tweak: "tweaked how atmos holofan looks"
@@ -1,4 +0,0 @@
author: "Xantholne"
delete-after: True
changes:
- bugfix: "Christmas clothes that where missing stuff should work again"
@@ -1,4 +0,0 @@
author: "Putnam"
delete-after: True
changes:
- rscadd: "Alcohol intolerance trait, which forces vomiting on any alcohol ingestion"
@@ -1,4 +0,0 @@
author: "Ghommie"
delete-after: True
changes:
- bugfix: "Fixed the secret sauce recipe being randomized every round."
@@ -1,4 +0,0 @@
author: "Trilbyspaceclone"
delete-after: True
changes:
- bugfix: "Fermi plushie can be made once again"
@@ -1,4 +0,0 @@
author: "Ghommie"
delete-after: True
changes:
- bugfix: "Fixed singularity pulls duping rods out of engine floors."
@@ -1,4 +0,0 @@
author: "Ghommie"
delete-after: True
changes:
- rscdel: "Removed an old pair of zipties from the captain closet."
@@ -1,4 +0,0 @@
author: "Trilbyspaceclone"
delete-after: True
changes:
- tweak: "range on Engi Tray scanners and Rad-Scanners"
@@ -1,4 +0,0 @@
author: "Arturlang"
delete-after: True
changes:
- tweak: "Vampires are no longer as tanky"
@@ -1,4 +0,0 @@
author: "Seris02"
delete-after: True
changes:
- rscadd: "stunglasses"
@@ -1,4 +0,0 @@
author: "Seris02"
delete-after: True
changes:
- rscadd: "disabler sechuds"
@@ -1,5 +0,0 @@
author: "Seris02"
delete-after: True
changes:
- rscadd: "adds coconut"
- rscadd: "adds a coconut bong"
@@ -1,5 +0,0 @@
author: "Naksu"
delete-after: True
changes:
- code_imp: "reagent IDs have been removed in favor using reagent typepaths where applicable"
- bugfix: "mechas, borg hyposprays etc no longer display internal reagent ids to the player"
@@ -1,4 +0,0 @@
author: "keronshb"
delete-after: True
changes:
- rscadd: "Adds new features for nanites"
@@ -1,4 +0,0 @@
author: "Trilbyspaceclone"
delete-after: True
changes:
- rscadd: "Grass now makes light beer when distilled"
@@ -1,5 +0,0 @@
author: "Seris02"
delete-after: True
changes:
- rscadd: "Auto ooc"
- admin: "changed \"assume direct control\" from m.ckey = src.ckey to adminmob.transfer_ckey(M) so it works with auto ooc"
@@ -1,4 +0,0 @@
author: "Seris02"
delete-after: True
changes:
- rscadd: "telescopic IV drip"
@@ -1,4 +0,0 @@
author: "Ghommie"
delete-after: True
changes:
- bugfix: "Chestbursters won't delete the host's brain somewhat anymore."
@@ -1,4 +0,0 @@
author: "Trilbyspaceclone"
delete-after: True
changes:
- tweak: "allows bandoliers to hold any ammo type as long as it has a casing"
@@ -1,6 +0,0 @@
author: "Bhijn"
delete-after: True
changes:
- rscadd: "Limbs now regenerate their stamina faster while disabled"
- rscadd: "Limbs now have the same incoming stamina damage multiplier mechanics as spacemen, where the more staminaloss they take while disabled, the less staminaloss they'll take."
- balance: "Limbs have had their base stamina regen rate doubled to match the doubled stamina regen rate of standard spacemen."

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