From 1d41b0a07db7cbe6bd617e36c168788950a0e82a Mon Sep 17 00:00:00 2001 From: Joan Lung Date: Wed, 30 Nov 2016 10:13:40 -0500 Subject: [PATCH 01/24] Converted engineering and miner cyborgs can now create Sigils of Transgression --- .../game/gamemodes/clock_cult/clock_items/clockwork_slab.dm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/code/game/gamemodes/clock_cult/clock_items/clockwork_slab.dm b/code/game/gamemodes/clock_cult/clock_items/clockwork_slab.dm index 3e96252962a..ed92923202b 100644 --- a/code/game/gamemodes/clock_cult/clock_items/clockwork_slab.dm +++ b/code/game/gamemodes/clock_cult/clock_items/clockwork_slab.dm @@ -52,7 +52,8 @@ actions_types = list() /obj/item/clockwork/slab/cyborg/engineer - quickbound = list(/datum/clockwork_scripture/create_object/tinkerers_cache, /datum/clockwork_scripture/create_object/ocular_warden, /datum/clockwork_scripture/create_object/tinkerers_daemon) + quickbound = list(/datum/clockwork_scripture/create_object/tinkerers_cache, /datum/clockwork_scripture/create_object/sigil_of_transgression, \ + /datum/clockwork_scripture/create_object/ocular_warden, /datum/clockwork_scripture/create_object/tinkerers_daemon) /obj/item/clockwork/slab/cyborg/medical quickbound = list(/datum/clockwork_scripture/ranged_ability/linked_vanguard, /datum/clockwork_scripture/ranged_ability/sentinels_compromise, /datum/clockwork_scripture/fellowship_armory, \ @@ -74,7 +75,8 @@ /datum/clockwork_scripture/create_object/clockwork_obelisk) /obj/item/clockwork/slab/cyborg/miner - quickbound = list(/datum/clockwork_scripture/ranged_ability/judicial_marker, /datum/clockwork_scripture/ranged_ability/linked_vanguard, /datum/clockwork_scripture/spatial_gateway) + quickbound = list(/datum/clockwork_scripture/ranged_ability/judicial_marker, /datum/clockwork_scripture/ranged_ability/linked_vanguard, \ + /datum/clockwork_scripture/create_object/sigil_of_transgression, /datum/clockwork_scripture/spatial_gateway) /obj/item/clockwork/slab/cyborg/access_display(mob/living/user) user << "Use the action buttons to recite your limited set of scripture!" From f77cd58b70aa6f9910e0d059e3b0acd66d0f55e6 Mon Sep 17 00:00:00 2001 From: KorPhaeron Date: Thu, 1 Dec 2016 00:10:27 -0600 Subject: [PATCH 02/24] Cyborg Tools --- code/game/objects/items/devices/multitool.dm | 1 - code/game/objects/items/weapons/tools.dm | 8 -------- 2 files changed, 9 deletions(-) diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm index 43e4880506e..db36e4f0a2a 100644 --- a/code/game/objects/items/devices/multitool.dm +++ b/code/game/objects/items/devices/multitool.dm @@ -88,5 +88,4 @@ /obj/item/device/multitool/cyborg name = "multitool" desc = "Optimised and stripped-down version of a regular multitool." - icon = 'icons/obj/items_cyborg.dmi' toolspeed = 2 \ No newline at end of file diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index 9a15f8d51c4..b51af1ee9c8 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -39,7 +39,6 @@ /obj/item/weapon/wrench/cyborg name = "automatic wrench" desc = "An advanced robotic wrench. Can be found in construction cyborgs." - icon = 'icons/obj/items_cyborg.dmi' toolspeed = 2 /obj/item/weapon/wrench/brass @@ -194,8 +193,6 @@ obj/item/weapon/wrench/power/suicide_act(mob/user) /obj/item/weapon/screwdriver/cyborg name = "powered screwdriver" desc = "An electrical screwdriver, designed to be both precise and quick." - icon = 'icons/obj/items_cyborg.dmi' - icon_state = "screwdriver_cyborg" usesound = 'sound/items/drill_use.ogg' toolspeed = 2 @@ -253,8 +250,6 @@ obj/item/weapon/wrench/power/suicide_act(mob/user) /obj/item/weapon/wirecutters/cyborg name = "wirecutters" desc = "This cuts wires." - icon = 'icons/obj/items_cyborg.dmi' - icon_state = "cutters_cyborg" toolspeed = 2 /obj/item/weapon/wirecutters/power @@ -567,8 +562,6 @@ obj/item/weapon/weldingtool/proc/switched_off(mob/user) /obj/item/weapon/weldingtool/largetank/cyborg name = "integrated welding tool" desc = "An advanced welder designed to be used in robotic systems." - icon = 'icons/obj/items_cyborg.dmi' - icon_state = "indwelder" toolspeed = 2 /obj/item/weapon/weldingtool/largetank/flamethrower_screwdriver() @@ -677,7 +670,6 @@ obj/item/weapon/weldingtool/proc/switched_off(mob/user) /obj/item/weapon/crowbar/cyborg name = "hydraulic crowbar" desc = "A hydraulic prying tool, compact but powerful. Designed to replace crowbar in construction cyborgs." - icon = 'icons/obj/items_cyborg.dmi' usesound = 'sound/items/jaws_pry.ogg' force = 10 toolspeed = 2 From 5f722df728a8e428d63da10ebff1e1f6bceed9d0 Mon Sep 17 00:00:00 2001 From: Kyle Spier-Swenson Date: Thu, 1 Dec 2016 00:45:49 -0800 Subject: [PATCH 03/24] Cid Randomizer Detector will not check webclients or any client type that isn't seeker. The randomizer doesn't work on the webclient, and it wouldn't matter anyways because the webclient's cid is worthless. --- code/modules/client/client_procs.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index ef910622f9d..3f0f31d4a46 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -335,6 +335,8 @@ var/next_external_rsc = 0 /client/proc/check_randomizer(topic) . = FALSE + if (connection != "seeker") + return topic = params2list(topic) if (!config.check_randomizer) return From 2f0531983678125c2dac332d9b2ce23a5e6149c2 Mon Sep 17 00:00:00 2001 From: Joan Lung Date: Thu, 1 Dec 2016 15:32:28 -0500 Subject: [PATCH 04/24] Items created by scripture will be put in your offhand if possible --- code/game/gamemodes/clock_cult/clock_scripture.dm | 4 +++- .../clock_cult/clock_scriptures/scripture_drivers.dm | 11 ++++------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/code/game/gamemodes/clock_cult/clock_scripture.dm b/code/game/gamemodes/clock_cult/clock_scripture.dm index c16218a4e47..f350c1a553c 100644 --- a/code/game/gamemodes/clock_cult/clock_scripture.dm +++ b/code/game/gamemodes/clock_cult/clock_scripture.dm @@ -243,7 +243,9 @@ Judgement: 12 servants, 5 caches, 300 CV, and any existing AIs are converted or invoker.visible_message(observer_message, creator_message) else if(creator_message) invoker << creator_message - new object_path (get_turf(invoker)) + var/obj/O = new object_path (get_turf(invoker)) + if(istype(O, /obj/item)) + invoker.put_in_hands(O) return TRUE //Uses a ranged slab ability, returning only when the ability no longer exists(ie, when interrupted) or finishes. diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm index 47af2653823..5566928aa87 100644 --- a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm +++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm @@ -224,7 +224,7 @@ qdel(progbar) -//Replicant: Creates a new clockwork slab. Doesn't use create_object because of its unique behavior. +//Replicant: Creates a new clockwork slab. /datum/clockwork_scripture/replicant descname = "New Clockwork Slab" name = "Replicant" @@ -233,19 +233,16 @@ channel_time = 10 required_components = list(REPLICANT_ALLOY = 1) whispered = TRUE + object_path = /obj/item/clockwork/slab + creator_message = "You copy a piece of replicant alloy and command it into a new slab." usage_tip = "This is inefficient as a way to produce components, as the slab produced must be held by someone with no other slabs to produce components." tier = SCRIPTURE_DRIVER + space_allowed = TRUE primary_component = REPLICANT_ALLOY sort_priority = 7 quickbind = TRUE quickbind_desc = "Creates a new Clockwork Slab." -/datum/clockwork_scripture/replicant/scripture_effects() - invoker << "You copy a piece of replicant alloy and command it into a new slab." //No visible message, for stealth purposes - var/obj/item/clockwork/slab/S = new(get_turf(invoker)) - invoker.put_in_hands(S) //Put it in your hands if possible - return TRUE - //Tinkerer's Cache: Creates a tinkerer's cache, allowing global component storage. /datum/clockwork_scripture/create_object/tinkerers_cache From ea4247f8eb7a6457c48cbf069813d04e7fe10515 Mon Sep 17 00:00:00 2001 From: Joan Lung Date: Thu, 1 Dec 2016 15:35:08 -0500 Subject: [PATCH 05/24] the, uh, proper path,,, --- code/game/gamemodes/clock_cult/clock_items/clockwork_slab.dm | 2 +- .../gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/gamemodes/clock_cult/clock_items/clockwork_slab.dm b/code/game/gamemodes/clock_cult/clock_items/clockwork_slab.dm index 3e96252962a..6ac56b5fba8 100644 --- a/code/game/gamemodes/clock_cult/clock_items/clockwork_slab.dm +++ b/code/game/gamemodes/clock_cult/clock_items/clockwork_slab.dm @@ -70,7 +70,7 @@ /datum/clockwork_scripture/create_object/interdiction_lens) /obj/item/clockwork/slab/cyborg/service - quickbound = list(/datum/clockwork_scripture/replicant, /datum/clockwork_scripture/fellowship_armory, /datum/clockwork_scripture/spatial_gateway, \ + quickbound = list(/datum/clockwork_scripture/create_object/replicant, /datum/clockwork_scripture/fellowship_armory, /datum/clockwork_scripture/spatial_gateway, \ /datum/clockwork_scripture/create_object/clockwork_obelisk) /obj/item/clockwork/slab/cyborg/miner diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm index 5566928aa87..b61a2c42a13 100644 --- a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm +++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm @@ -225,7 +225,7 @@ //Replicant: Creates a new clockwork slab. -/datum/clockwork_scripture/replicant +/datum/clockwork_scripture/create_object/replicant descname = "New Clockwork Slab" name = "Replicant" desc = "Creates a new clockwork slab." From 1f4165e10d4a1c6ca59b6c729646bb3f02e69526 Mon Sep 17 00:00:00 2001 From: Joan Lung Date: Thu, 1 Dec 2016 15:56:00 -0500 Subject: [PATCH 06/24] The station time for silicons and observers now ignores roundstart --- code/__HELPERS/time.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/__HELPERS/time.dm b/code/__HELPERS/time.dm index eefb3693cf6..8d000ce6a57 100644 --- a/code/__HELPERS/time.dm +++ b/code/__HELPERS/time.dm @@ -6,7 +6,7 @@ return time2text(world.timeofday, format) /proc/gameTimestamp(format = "hh:mm:ss") // Get the game time in text - return time2text(world.time - timezoneOffset + 432000, format) + return time2text(world.time - timezoneOffset + 432000 - round_start_time, format) /* Returns 1 if it is the selected month and day */ /proc/isDay(month, day) From 309361fe6010455c6c0c559989eba29d16f7c356 Mon Sep 17 00:00:00 2001 From: Joan Lung Date: Thu, 1 Dec 2016 18:01:45 -0500 Subject: [PATCH 07/24] Fixes not being able to proselytize metal --- .../clock_cult/clock_helpers/proselytizer_helpers.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/game/gamemodes/clock_cult/clock_helpers/proselytizer_helpers.dm b/code/game/gamemodes/clock_cult/clock_helpers/proselytizer_helpers.dm index 333b28a1041..88de2dcf093 100644 --- a/code/game/gamemodes/clock_cult/clock_helpers/proselytizer_helpers.dm +++ b/code/game/gamemodes/clock_cult/clock_helpers/proselytizer_helpers.dm @@ -68,7 +68,7 @@ //Metal conversion /obj/item/stack/rods/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) - if(!source) + if(source) return FALSE if(proselytizer.metal_to_alloy) return list("operation_time" = 0, "new_obj_type" = /obj/effect/overlay/temp/ratvar/beam/itemconsume, "alloy_cost" = -(amount*REPLICANT_ROD), "spawn_dir" = SOUTH) @@ -86,7 +86,7 @@ return TRUE /obj/item/stack/sheet/metal/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) - if(!source) + if(source) return FALSE if(proselytizer.metal_to_alloy) return list("operation_time" = 0, "new_obj_type" = /obj/effect/overlay/temp/ratvar/beam/itemconsume, "alloy_cost" = -(amount*REPLICANT_METAL), "spawn_dir" = SOUTH) @@ -104,7 +104,7 @@ return TRUE /obj/item/stack/sheet/plasteel/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) - if(!source) + if(source) return FALSE if(proselytizer.metal_to_alloy) return list("operation_time" = 0, "new_obj_type" = /obj/effect/overlay/temp/ratvar/beam/itemconsume, "alloy_cost" = -(amount*REPLICANT_PLASTEEL), "spawn_dir" = SOUTH) @@ -123,7 +123,7 @@ //Brass directly to alloy; scarab only /obj/item/stack/sheet/brass/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) - if(!source) + if(source) return FALSE if(!proselytizer.metal_to_alloy) return FALSE From 6df39ace3c528d394a3f7fd342ef316765719093 Mon Sep 17 00:00:00 2001 From: RandomMarine Date: Thu, 1 Dec 2016 15:16:04 -0800 Subject: [PATCH 08/24] deconstructed airlocks keep their original name when rebuilt --- code/game/machinery/doors/airlock.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 3db006968d5..1e19475213f 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1476,6 +1476,7 @@ var/list/airlock_overlays = list() else A = new /obj/structure/door_assembly/door_assembly_0(src.loc) //If you come across a null assemblytype, it will produce the default assembly instead of disintegrating. + A.created_name = name if(!disassembled) if(A) From fc8d1d6be34d5204aadc85236e14afaef1efd510 Mon Sep 17 00:00:00 2001 From: XDTM Date: Fri, 2 Dec 2016 00:46:49 +0100 Subject: [PATCH 09/24] Fixed bugs --- code/modules/events/spacevine.dm | 23 ++++++++++++----------- code/modules/hydroponics/grown/kudzu.dm | 15 +++++++++++---- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index 6aa1830d19e..9a032985c90 100644 --- a/code/modules/events/spacevine.dm +++ b/code/modules/events/spacevine.dm @@ -347,7 +347,7 @@ if(!master.vines.len) var/obj/item/seeds/kudzu/KZ = new(loc) KZ.mutations |= mutations - KZ.potency = min(100, master.mutativness * 10) + KZ.potency = min(100, master.mutativeness * 10) KZ.production = (master.spread_cap / initial(master.spread_cap)) * 50 mutations = list() SetOpacity(0) @@ -430,17 +430,17 @@ var/spread_multiplier = 5 var/spread_cap = 30 var/list/mutations_list = list() - var/mutativness = 1 + var/mutativeness = 1 -/obj/effect/spacevine_controller/New(loc, list/muts, mttv, spreading) +/obj/effect/spacevine_controller/New(loc, list/muts, potency, production) spawn_spacevine_piece(loc, , muts) START_PROCESSING(SSobj, src) init_subtypes(/datum/spacevine_mutation/, mutations_list) - if(mttv != null) - mutativness = mttv / 10 - if(spreading != null) - spread_cap *= spreading / 50 - spread_multiplier /= spreading / 50 + if(potency != null) + mutativeness = potency / 10 + if(production != null) + spread_cap *= production / 50 + spread_multiplier /= production / 50 /obj/effect/spacevine_controller/ex_act() //only killing all vines will end this suffering return @@ -466,9 +466,10 @@ return if(parent) SV.mutations |= parent.mutations - var/parentcolor = parent.atom_colours[FIXED_COLOUR_PRIORITY] - SV.add_atom_colour(parentcolor, FIXED_COLOUR_PRIORITY) - if(prob(mutativness)) + if(parent.atom_colours) + var/parentcolor = parent.atom_colours[FIXED_COLOUR_PRIORITY] + SV.add_atom_colour(parentcolor, FIXED_COLOUR_PRIORITY) + if(prob(mutativeness)) var/datum/spacevine_mutation/randmut = pick(mutations_list - SV.mutations) randmut.add_mutation_to_vinepiece(SV) diff --git a/code/modules/hydroponics/grown/kudzu.dm b/code/modules/hydroponics/grown/kudzu.dm index a4825162e7e..5a7c865f89b 100644 --- a/code/modules/hydroponics/grown/kudzu.dm +++ b/code/modules/hydroponics/grown/kudzu.dm @@ -57,6 +57,7 @@ if(prob(20)) mutations.Remove(pick(temp_mut_list)) temp_mut_list.Cut() + if(S.has_reagent("welding_fuel", 5)) for(var/datum/spacevine_mutation/SM in mutations) if(SM.quality == POSITIVE) @@ -64,20 +65,26 @@ if(prob(20)) mutations.Remove(pick(temp_mut_list)) temp_mut_list.Cut() + if(S.has_reagent("phenol", 5)) for(var/datum/spacevine_mutation/SM in mutations) if(SM.quality == MINOR_NEGATIVE) temp_mut_list += SM if(prob(20)) mutations.Remove(pick(temp_mut_list)) + temp_mut_list.Cut() + if(S.has_reagent("blood", 15)) - production += rand(15, -5) + production = Clamp(production + rand(15, -5),1,10) + if(S.has_reagent("amatoxin", 5)) - production += rand(5, -15) + production = Clamp(production + rand(5, -15),1,10) + if(S.has_reagent("plasma", 5)) - potency += rand(5, -15) + potency = Clamp(potency + rand(5, -15),0,100) + if(S.has_reagent("holywater", 10)) - potency += rand(15, -5) + potency = Clamp(potency + rand(15, -5),0,100) /obj/item/weapon/reagent_containers/food/snacks/grown/kudzupod From e57eac4ffd6cb6d6c176e76fc252ac4d595f9fb3 Mon Sep 17 00:00:00 2001 From: XDTM Date: Fri, 2 Dec 2016 10:29:26 +0100 Subject: [PATCH 10/24] Proper color init --- code/game/atoms.dm | 6 ++++++ code/modules/events/spacevine.dm | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 77070de904c..8a523277e24 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -30,6 +30,12 @@ if(color) add_atom_colour(color, FIXED_COLOUR_PRIORITY) + + if(!atom_colours) + atom_colours = list(ADMIN_COLOUR_PRIORITY = null, \ + TEMPORARY_COLOUR_PRIORITY = null, \ + WASHABLE_COLOUR_PRIORITY = null, \ + FIXED_COLOUR_PRIORITY = null) . = ..() /atom/Destroy() diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index 9a032985c90..3c0df6f137e 100644 --- a/code/modules/events/spacevine.dm +++ b/code/modules/events/spacevine.dm @@ -441,6 +441,7 @@ if(production != null) spread_cap *= production / 50 spread_multiplier /= production / 50 + ..() /obj/effect/spacevine_controller/ex_act() //only killing all vines will end this suffering return @@ -466,9 +467,8 @@ return if(parent) SV.mutations |= parent.mutations - if(parent.atom_colours) - var/parentcolor = parent.atom_colours[FIXED_COLOUR_PRIORITY] - SV.add_atom_colour(parentcolor, FIXED_COLOUR_PRIORITY) + var/parentcolor = parent.atom_colours[FIXED_COLOUR_PRIORITY] + SV.add_atom_colour(parentcolor, FIXED_COLOUR_PRIORITY) if(prob(mutativeness)) var/datum/spacevine_mutation/randmut = pick(mutations_list - SV.mutations) randmut.add_mutation_to_vinepiece(SV) From 5f743b295786f08fefb28fa8876bc050f69dcea0 Mon Sep 17 00:00:00 2001 From: Durkel Date: Fri, 2 Dec 2016 16:32:44 -0500 Subject: [PATCH 11/24] changed the player min pop to 25 --- code/game/gamemodes/changeling/traitor_chan.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/gamemodes/changeling/traitor_chan.dm b/code/game/gamemodes/changeling/traitor_chan.dm index 515464ea804..6b8ee2640e9 100644 --- a/code/game/gamemodes/changeling/traitor_chan.dm +++ b/code/game/gamemodes/changeling/traitor_chan.dm @@ -3,7 +3,7 @@ config_tag = "traitorchan" traitors_possible = 3 //hard limit on traitors if scaling is turned off restricted_jobs = list("AI", "Cyborg") - required_players = 0 + required_players = 25 required_enemies = 1 // how many of each type are required recommended_enemies = 3 reroll_friendly = 1 From a25202f2a2ba629dc7072ee18d7b955076e34037 Mon Sep 17 00:00:00 2001 From: Joan Lung Date: Fri, 2 Dec 2016 17:53:59 -0500 Subject: [PATCH 12/24] Fixes robot modules runtime! --- code/modules/mob/living/silicon/robot/robot.dm | 1 + code/modules/mob/living/silicon/robot/robot_modules.dm | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 05c1ad97f49..8f999da6f03 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -111,6 +111,7 @@ if(wires.is_cut(WIRE_CAMERA)) camera.status = 0 module = new /obj/item/weapon/robot_module(src) + module.rebuild_modules() update_icons() ..() diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 73be87a4e4f..93a1a051ce1 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -38,7 +38,6 @@ var/obj/item/I = new i(src) ratvar_modules += I ratvar_modules -= i - rebuild_modules() /obj/item/weapon/robot_module/Destroy() basic_modules.Cut() @@ -163,7 +162,8 @@ for(var/obj/item/I in added_modules) add_module(I, FALSE, FALSE) for(var/i in held_modules) - R.activate_module(i) + if(i) + R.activate_module(i) if(R.hud_used) R.hud_used.update_robot_modules_display() @@ -174,6 +174,7 @@ qdel(RM) return R.module = RM + RM.rebuild_modules() addtimer(RM, "do_transform_animation", 0) qdel(src) return RM From 2fb0c103251ddbba57bdebc12aa05d0898ad7ed2 Mon Sep 17 00:00:00 2001 From: Lzimann Date: Sat, 3 Dec 2016 00:10:52 -0200 Subject: [PATCH 13/24] Fixes box tree spawner --- _maps/map_files/TgStation/tgstation.2.1.3.dmm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_maps/map_files/TgStation/tgstation.2.1.3.dmm b/_maps/map_files/TgStation/tgstation.2.1.3.dmm index 4c0ada72b83..2bb8b43d57f 100644 --- a/_maps/map_files/TgStation/tgstation.2.1.3.dmm +++ b/_maps/map_files/TgStation/tgstation.2.1.3.dmm @@ -52978,7 +52978,7 @@ /area/atmos) "clX" = ( /obj/effect/landmark/event_spawn, -/obj/effect/landmark/vr_spawn, +/obj/effect/landmark/xmastree, /turf/open/floor/plasteel/bar, /area/crew_quarters/bar) "clY" = ( @@ -56229,7 +56229,7 @@ /area/space/nearstation) "csT" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/landmark/vr_spawn, +/obj/effect/landmark/xmastree, /turf/open/floor/plasteel/black, /area/chapel/main) "csU" = ( From d353ffcafc77c5206c002bef97111888650953cc Mon Sep 17 00:00:00 2001 From: Lzimann Date: Sat, 3 Dec 2016 00:22:11 -0200 Subject: [PATCH 14/24] Adds the tree to Meta that I apparently forgot to add. --- _maps/map_files/MetaStation/MetaStation.dmm | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 7514d0d51c1..b683e1259a3 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -85874,6 +85874,7 @@ dir = 8; initialize_directions = 11 }, +/obj/effect/landmark/xmastree, /turf/open/floor/carpet, /area/chapel/main) "cQz" = ( @@ -89976,11 +89977,9 @@ /turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "cXL" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) +/obj/effect/landmark/xmastree, +/turf/open/floor/wood, +/area/crew_quarters/bar) "cXM" = ( /obj/structure/chair{ dir = 8 @@ -129978,7 +129977,7 @@ byY bAJ bza bAG -bAG +cXL bHA bJm bAG From 481cc07dcf69a963bfdcf6bc7901c3b4408dfaa6 Mon Sep 17 00:00:00 2001 From: Mervill Date: Sat, 3 Dec 2016 00:25:44 -0800 Subject: [PATCH 15/24] m_intent now uses defines --- code/__DEFINES/misc.dm | 4 ++++ code/_onclick/hud/human.dm | 2 +- code/_onclick/hud/monkey.dm | 2 +- code/_onclick/hud/screen_objects.dm | 5 ++--- .../clock_cult/clock_scriptures/scripture_drivers.dm | 2 +- code/game/machinery/flasher.dm | 4 ++-- code/game/objects/effects/alien_acid.dm | 4 ++-- code/game/objects/items/toys.dm | 2 +- code/game/objects/structures/holosign.dm | 4 ++-- code/game/turfs/open.dm | 3 +-- code/modules/assembly/mousetrap.dm | 2 +- code/modules/mob/living/carbon/carbon_movement.dm | 4 ++-- code/modules/mob/living/living.dm | 4 ++-- code/modules/mob/mob_defines.dm | 4 ++-- 14 files changed, 24 insertions(+), 22 deletions(-) diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 56e5a52475a..fab0cc3577b 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -577,6 +577,10 @@ var/global/list/ghost_others_options = list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE // Examples of huge items: Shotgun, Two Handed Melee Weapons // Examples of gigantic items: Mech Parts, Safe +// m_intent +#define MOVE_INTENT_WALK "walk" +#define MOVE_INTENT_RUN "run" + //Endgame Results #define NUKE_NEAR_MISS 1 diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index 9223a36b13d..4b34e516c03 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -110,7 +110,7 @@ using = new /obj/screen/mov_intent() using.icon = ui_style - using.icon_state = (mymob.m_intent == "run" ? "running" : "walking") + using.icon_state = (mymob.m_intent == MOVE_INTENT_RUN ? "running" : "walking") using.screen_loc = ui_movi static_inventory += using diff --git a/code/_onclick/hud/monkey.dm b/code/_onclick/hud/monkey.dm index 2c14025f201..2d8e3a08e1e 100644 --- a/code/_onclick/hud/monkey.dm +++ b/code/_onclick/hud/monkey.dm @@ -12,7 +12,7 @@ using = new /obj/screen/mov_intent() using.icon = ui_style - using.icon_state = (mymob.m_intent == "run" ? "running" : "walking") + using.icon_state = (mymob.m_intent == MOVE_INTENT_RUN ? "running" : "walking") using.screen_loc = ui_movi static_inventory += using diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 6c0d6eb5e01..b463ddbcb21 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -284,10 +284,10 @@ return switch(user.m_intent) if("run") - user.m_intent = "walk" + user.m_intent = MOVE_INTENT_WALK icon_state = "walking" if("walk") - user.m_intent = "run" + user.m_intent = MOVE_INTENT_RUN icon_state = "running" user.update_icons() @@ -649,4 +649,3 @@ if(word_messages.len && talk_cooldown < world.time) talk_cooldown = world.time + 10 L.say(pick(word_messages)) - diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm index 53076f4671b..e239ac4752e 100644 --- a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm +++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm @@ -27,7 +27,7 @@ if(!is_servant_of_ratvar(C) && !C.null_rod_check() && number_legs) //you have legs right C.apply_damage(noncultist_damage * 0.5, BURN, "l_leg") C.apply_damage(noncultist_damage * 0.5, BURN, "r_leg") - if(C.m_intent != "walk") + if(C.m_intent != MOVE_INTENT_WALK) if(!iscultist(C)) C << "Your leg[number_legs > 1 ? "s shiver":" shivers"] with pain!" else //Cultists take extra burn damage diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm index 99de5c77edc..4e9b7c2d363 100644 --- a/code/game/machinery/flasher.dm +++ b/code/game/machinery/flasher.dm @@ -168,7 +168,7 @@ if(istype(AM, /mob/living/carbon)) var/mob/living/carbon/M = AM - if (M.m_intent != "walk" && anchored) + if (M.m_intent != MOVE_INTENT_WALK && anchored) flash() /obj/machinery/flasher/portable/attackby(obj/item/weapon/W, mob/user, params) @@ -207,4 +207,4 @@ /obj/item/wallframe/flasher/after_attach(var/obj/O) ..() var/obj/machinery/flasher/F = O - F.id = id \ No newline at end of file + F.id = id diff --git a/code/game/objects/effects/alien_acid.dm b/code/game/objects/effects/alien_acid.dm index 650c684e5ce..b5bc101b9ec 100644 --- a/code/game/objects/effects/alien_acid.dm +++ b/code/game/objects/effects/alien_acid.dm @@ -66,7 +66,7 @@ var/mob/living/L = AM if(L.movement_type & FLYING) return - if(L.m_intent != "walk" && prob(40)) + if(L.m_intent != MOVE_INTENT_WALK && prob(40)) var/acid_used = min(acid_level*0.05, 20) if(L.acid_act(10, acid_used, "feet")) acid_level = max(0, acid_level - acid_used*10) @@ -98,4 +98,4 @@ if(8) visible_message("[target] is struggling to withstand the acid!") if(4) - visible_message("[target] begins to crumble under the acid!") \ No newline at end of file + visible_message("[target] begins to crumble under the acid!") diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index ff8f3c458ba..884669d0965 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -347,7 +347,7 @@ /obj/item/toy/snappop/Crossed(H as mob|obj) if(ishuman(H) || issilicon(H)) //i guess carp and shit shouldn't set them off var/mob/living/carbon/M = H - if(issilicon(H) || M.m_intent == "run") + if(issilicon(H) || M.m_intent == MOVE_INTENT_RUN) M << "You step on the snap pop!" pop_burst(2, 0) diff --git a/code/game/objects/structures/holosign.dm b/code/game/objects/structures/holosign.dm index ce60db2632e..a210033ca90 100644 --- a/code/game/objects/structures/holosign.dm +++ b/code/game/objects/structures/holosign.dm @@ -49,7 +49,7 @@ obj_integrity = 20 max_integrity = 20 var/allow_walk = 1 //can we pass through it on walk intent - + /obj/structure/holosign/barrier/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) if(!density) return 1 @@ -59,7 +59,7 @@ return 1 if(iscarbon(mover)) var/mob/living/carbon/C = mover - if(allow_walk && C.m_intent == "walk") + if(allow_walk && C.m_intent == MOVE_INTENT_WALK) return 1 /obj/structure/holosign/barrier/engineering diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index 25bea0d7e06..4c2af23b3bf 100644 --- a/code/game/turfs/open.dm +++ b/code/game/turfs/open.dm @@ -132,7 +132,7 @@ else if(C.lying || !(C.status_flags & CANWEAKEN)) // can't slip unbuckled mob if they're lying or can't fall. return 0 - if(C.m_intent=="walk" && (lube&NO_SLIP_WHEN_WALKING)) + if(C.m_intent == MOVE_INTENT_WALK && (lube&NO_SLIP_WHEN_WALKING)) return 0 if(!(lube&SLIDE_ICE)) C << "You slipped[ O ? " on the [O.name]" : ""]!" @@ -236,4 +236,3 @@ wet_time = 0 if(wet) addtimer(src, "HandleWet", 15) - diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm index 57a1249ce6c..70612872db3 100644 --- a/code/modules/assembly/mousetrap.dm +++ b/code/modules/assembly/mousetrap.dm @@ -109,7 +109,7 @@ if(!(MM.movement_type & FLYING)) if(ishuman(AM)) var/mob/living/carbon/H = AM - if(H.m_intent == "run") + if(H.m_intent == MOVE_INTENT_RUN) triggered(H) H.visible_message("[H] accidentally steps on [src].", \ "You accidentally step on [src]") diff --git a/code/modules/mob/living/carbon/carbon_movement.dm b/code/modules/mob/living/carbon/carbon_movement.dm index 342b9ed7a0e..e6fd8c5be65 100644 --- a/code/modules/mob/living/carbon/carbon_movement.dm +++ b/code/modules/mob/living/carbon/carbon_movement.dm @@ -59,7 +59,7 @@ var/const/SLIDE_ICE = 8 nutrition = NUTRITION_LEVEL_FED - 1 //just less than feeling vigorous else if(nutrition && stat != DEAD) nutrition -= HUNGER_FACTOR/10 - if(m_intent == "run") + if(m_intent == MOVE_INTENT_RUN) nutrition -= HUNGER_FACTOR/10 - if((disabilities & FAT) && m_intent == "run" && bodytemperature <= 360) + if((disabilities & FAT) && m_intent == MOVE_INTENT_RUN && bodytemperature <= 360) bodytemperature += 2 diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 58feb7ce22d..ffbf0c43505 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -447,11 +447,11 @@ . += config.run_speed else switch(m_intent) - if("run") + if(MOVE_INTENT_RUN) if(drowsyness > 0) . += 6 . += config.run_speed - if("walk") + if(MOVE_INTENT_WALK) . += config.walk_speed /mob/living/proc/makeTrail(turf/T) diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 9bf23945106..a28820fe7e1 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -73,7 +73,7 @@ var/weakened = 0 var/losebreath = 0//Carbon var/a_intent = "help"//Living - var/m_intent = "run"//Living + var/m_intent = MOVE_INTENT_RUN//Living var/lastKnownIP = null var/atom/movable/buckled = null//Living @@ -144,4 +144,4 @@ var/resize = 1 //Badminnery resize - var/list/observers = null //The list of people observing this mob. \ No newline at end of file + var/list/observers = null //The list of people observing this mob. From 88b2774d38f7281ab77313e5983587ff4042b162 Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Sat, 3 Dec 2016 12:08:58 +0000 Subject: [PATCH 16/24] Automatic changelog generation for PR #21886 [ci skip] --- html/changelogs/AutoChangeLog-pr-21886.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-21886.yml diff --git a/html/changelogs/AutoChangeLog-pr-21886.yml b/html/changelogs/AutoChangeLog-pr-21886.yml new file mode 100644 index 00000000000..3b39ee353a5 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-21886.yml @@ -0,0 +1,4 @@ +author: "RandomMarine" +delete-after: True +changes: + - tweak: "Airlocks will keep their original name when their electronics are removed and replaced. You may still use a pen to rename the assembly if desired." From 91c54a4e03ae024cb0b569888781b5d39fc2ff57 Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Sat, 3 Dec 2016 12:11:07 +0000 Subject: [PATCH 17/24] Automatic changelog generation for PR #21858 [ci skip] --- html/changelogs/AutoChangeLog-pr-21858.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-21858.yml diff --git a/html/changelogs/AutoChangeLog-pr-21858.yml b/html/changelogs/AutoChangeLog-pr-21858.yml new file mode 100644 index 00000000000..757444692c6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-21858.yml @@ -0,0 +1,4 @@ +author: "Joan" +delete-after: True +changes: + - rscadd: "Converted engineering and miner cyborgs can now create Sigils of Transgression." From 55a95be086edabd6137ee5984da20aa631068cf6 Mon Sep 17 00:00:00 2001 From: sybil-tgstation13 Date: Sat, 3 Dec 2016 12:19:56 +0000 Subject: [PATCH 18/24] Automatic changelog compile, [ci skip] --- html/changelog.html | 21 ++++++++++++++------- html/changelogs/.all_changelog.yml | 14 ++++++++++++++ html/changelogs/AutoChangeLog-pr-21846.yml | 7 ------- html/changelogs/AutoChangeLog-pr-21858.yml | 4 ---- html/changelogs/AutoChangeLog-pr-21886.yml | 4 ---- 5 files changed, 28 insertions(+), 22 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-21846.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-21858.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-21886.yml diff --git a/html/changelog.html b/html/changelog.html index 3a89cd16699..4d511468da1 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -55,6 +55,20 @@ -->
+

03 December 2016

+

Joan updated:

+
    +
  • Trying to move while bound by Geis will cause you to start resisting, but the time required to resist is up by half a second.
  • +
  • Resisting out of Geis now does damage to the binding, and as such being stunned while bound will no longer totally reset your resist progress.
  • +
  • Using Geis on someone already bound by Geis will interrupt them resisting out of it and will fully repair the binding.
  • +
  • Geis's pre-binding channel now takes longer for each servant above 5. Geis's conversion channel also takes slightly longer for each servant above 5.
  • +
  • Converted engineering and miner cyborgs can now create Sigils of Transgression.
  • +
+

RandomMarine updated:

+
    +
  • Airlocks will keep their original name when their electronics are removed and replaced. You may still use a pen to rename the assembly if desired.
  • +
+

02 December 2016

Cobby updated:

    @@ -1145,13 +1159,6 @@
  • Improved/resprited a few bar signs, basketball/dodgeball/hoop, blood bags, and body bags.
  • Improved/resprited Paper, stamps, folders, small fires, pens, energy daggers, cabinets, newspaper and other bureaucracy related items.
- -

01 October 2016

-

Incoming5643 updated:

-
    -
  • After years of having to live on a mostly blown up hunk of junk the wizard's ship has finally been repaired
  • -
  • No one paid attention to that lore anyway
  • -
GoonStation 13 Development Team diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index f8574425d17..e450b2982aa 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -8194,3 +8194,17 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. amount of time (per-mob, base 3 seconds), this is because being attacked causes mobs with this var to turn it off, so they can run away, however it was literally never turned on which caused swarmers to get depression and never do anything. +2016-12-03: + Joan: + - rscadd: Trying to move while bound by Geis will cause you to start resisting, + but the time required to resist is up by half a second. + - experiment: Resisting out of Geis now does damage to the binding, and as such + being stunned while bound will no longer totally reset your resist progress. + - rscadd: Using Geis on someone already bound by Geis will interrupt them resisting + out of it and will fully repair the binding. + - tweak: Geis's pre-binding channel now takes longer for each servant above 5. Geis's + conversion channel also takes slightly longer for each servant above 5. + - rscadd: Converted engineering and miner cyborgs can now create Sigils of Transgression. + RandomMarine: + - tweak: Airlocks will keep their original name when their electronics are removed + and replaced. You may still use a pen to rename the assembly if desired. diff --git a/html/changelogs/AutoChangeLog-pr-21846.yml b/html/changelogs/AutoChangeLog-pr-21846.yml deleted file mode 100644 index 60b408ee804..00000000000 --- a/html/changelogs/AutoChangeLog-pr-21846.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: "Joan" -delete-after: True -changes: - - rscadd: "Trying to move while bound by Geis will cause you to start resisting, but the time required to resist is up by half a second." - - experiment: "Resisting out of Geis now does damage to the binding, and as such being stunned while bound will no longer totally reset your resist progress." - - rscadd: "Using Geis on someone already bound by Geis will interrupt them resisting out of it and will fully repair the binding." - - tweak: "Geis's pre-binding channel now takes longer for each servant above 5. Geis's conversion channel also takes slightly longer for each servant above 5." diff --git a/html/changelogs/AutoChangeLog-pr-21858.yml b/html/changelogs/AutoChangeLog-pr-21858.yml deleted file mode 100644 index 757444692c6..00000000000 --- a/html/changelogs/AutoChangeLog-pr-21858.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Joan" -delete-after: True -changes: - - rscadd: "Converted engineering and miner cyborgs can now create Sigils of Transgression." diff --git a/html/changelogs/AutoChangeLog-pr-21886.yml b/html/changelogs/AutoChangeLog-pr-21886.yml deleted file mode 100644 index 3b39ee353a5..00000000000 --- a/html/changelogs/AutoChangeLog-pr-21886.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "RandomMarine" -delete-after: True -changes: - - tweak: "Airlocks will keep their original name when their electronics are removed and replaced. You may still use a pen to rename the assembly if desired." From 26b951d9175c99746d5171283045a1c1e0b547a7 Mon Sep 17 00:00:00 2001 From: XDTM Date: Sat, 3 Dec 2016 16:57:37 +0100 Subject: [PATCH 19/24] Fixes fixes --- code/game/atoms.dm | 6 ------ code/modules/events/spacevine.dm | 14 ++++++++++---- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 8a523277e24..77070de904c 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -30,12 +30,6 @@ if(color) add_atom_colour(color, FIXED_COLOUR_PRIORITY) - - if(!atom_colours) - atom_colours = list(ADMIN_COLOUR_PRIORITY = null, \ - TEMPORARY_COLOUR_PRIORITY = null, \ - WASHABLE_COLOUR_PRIORITY = null, \ - FIXED_COLOUR_PRIORITY = null) . = ..() /atom/Destroy() diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index 3c0df6f137e..b60cff7b960 100644 --- a/code/modules/events/spacevine.dm +++ b/code/modules/events/spacevine.dm @@ -306,7 +306,8 @@ new/obj/structure/alien/resin/flower_bud_enemy(get_turf(holder)) /datum/spacevine_mutation/flowering/on_cross(obj/structure/spacevine/holder, mob/living/crosser) - holder.entangle(crosser) + if(prob(25) + holder.entangle(crosser) // SPACE VINES (Note that this code is very similar to Biomass code) @@ -326,6 +327,10 @@ var/obj/effect/spacevine_controller/master = null var/list/mutations = list() +/obj/structure/spacevine/New() + ..() + add_atom_colour("#ffffff", FIXED_COLOUR_PRIORITY) + /obj/structure/spacevine/examine(mob/user) ..() var/text = "This one is a" @@ -433,14 +438,15 @@ var/mutativeness = 1 /obj/effect/spacevine_controller/New(loc, list/muts, potency, production) + add_atom_colour("#ffffff", FIXED_COLOUR_PRIORITY) spawn_spacevine_piece(loc, , muts) START_PROCESSING(SSobj, src) init_subtypes(/datum/spacevine_mutation/, mutations_list) if(potency != null) mutativeness = potency / 10 if(production != null) - spread_cap *= production / 50 - spread_multiplier /= production / 50 + spread_cap *= production / 5 + spread_multiplier /= production / 5 ..() /obj/effect/spacevine_controller/ex_act() //only killing all vines will end this suffering @@ -538,7 +544,7 @@ SM.on_buckle(src, V) if((V.stat != DEAD) && (V.buckled != src)) //not dead or captured V << "The vines [pick("wind", "tangle", "tighten")] around you!" - buckle_mob(V) + buckle_mob(V, 1) /obj/structure/spacevine/proc/spread() var/direction = pick(cardinal) From 628f1fffe26e6db29113c42dcc2b1e966ce59231 Mon Sep 17 00:00:00 2001 From: XDTM Date: Sat, 3 Dec 2016 17:05:08 +0100 Subject: [PATCH 20/24] ) --- code/modules/events/spacevine.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index b60cff7b960..0367f084c00 100644 --- a/code/modules/events/spacevine.dm +++ b/code/modules/events/spacevine.dm @@ -306,7 +306,7 @@ new/obj/structure/alien/resin/flower_bud_enemy(get_turf(holder)) /datum/spacevine_mutation/flowering/on_cross(obj/structure/spacevine/holder, mob/living/crosser) - if(prob(25) + if(prob(25)) holder.entangle(crosser) From 62e5f34d414cc1449b47c036b1d8c19307827bc6 Mon Sep 17 00:00:00 2001 From: XDTM Date: Sat, 3 Dec 2016 23:25:05 +0100 Subject: [PATCH 21/24] fix (#21894) --- code/modules/hydroponics/hydroponics.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index 91bcb344f15..a6c86090fa3 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -684,7 +684,7 @@ return if(alert(user, "This will make [src] self-sustaining but consume [O] forever. Are you sure?", "[name]", "I'm Sure", "Abort") == "Abort" || !user) return - if(!O) + if(!O || qdeleted(O)) return if(!Adjacent(user)) return From 6f579a0517eefa3490ea01c949a38e267693262b Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Sun, 4 Dec 2016 00:20:25 +0000 Subject: [PATCH 22/24] Automatic changelog generation for PR #21900 [ci skip] --- html/changelogs/AutoChangeLog-pr-21900.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-21900.yml diff --git a/html/changelogs/AutoChangeLog-pr-21900.yml b/html/changelogs/AutoChangeLog-pr-21900.yml new file mode 100644 index 00000000000..be6693f1e50 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-21900.yml @@ -0,0 +1,4 @@ +author: "Durkel" +delete-after: True +changes: + - tweak: "Recent enemy reports indicate that changelings have grown bored with attacking near desolate stations and have shifted focus to more fertile hunting grounds." From f46d9c99d211ed29422ba740edc53bf28adc8d04 Mon Sep 17 00:00:00 2001 From: sybil-tgstation13 Date: Sun, 4 Dec 2016 03:07:56 +0000 Subject: [PATCH 23/24] Automatic changelog compile, [ci skip] --- html/changelog.html | 6 ++++++ html/changelogs/.all_changelog.yml | 4 ++++ html/changelogs/AutoChangeLog-pr-21900.yml | 4 ---- 3 files changed, 10 insertions(+), 4 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-21900.yml diff --git a/html/changelog.html b/html/changelog.html index 4d511468da1..4fed3827075 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -55,6 +55,12 @@ -->
+

04 December 2016

+

Durkel updated:

+
    +
  • Recent enemy reports indicate that changelings have grown bored with attacking near desolate stations and have shifted focus to more fertile hunting grounds.
  • +
+

03 December 2016

Joan updated:

    diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index e450b2982aa..16341259214 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -8208,3 +8208,7 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. RandomMarine: - tweak: Airlocks will keep their original name when their electronics are removed and replaced. You may still use a pen to rename the assembly if desired. +2016-12-04: + Durkel: + - tweak: Recent enemy reports indicate that changelings have grown bored with attacking + near desolate stations and have shifted focus to more fertile hunting grounds. diff --git a/html/changelogs/AutoChangeLog-pr-21900.yml b/html/changelogs/AutoChangeLog-pr-21900.yml deleted file mode 100644 index be6693f1e50..00000000000 --- a/html/changelogs/AutoChangeLog-pr-21900.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Durkel" -delete-after: True -changes: - - tweak: "Recent enemy reports indicate that changelings have grown bored with attacking near desolate stations and have shifted focus to more fertile hunting grounds." From f3acff470633805920777ca0692df468908051c5 Mon Sep 17 00:00:00 2001 From: oranges Date: Sun, 4 Dec 2016 17:33:15 +1300 Subject: [PATCH 24/24] Adds a ckey whitelist, stripping out some dead code (#21875) * Adds a whitelist, stripping out some dead code in the process Old job whitelist that wasn't used has been removed. Config has been repurposed, uncomment USEWHITELIST, only ckey's in admins.txt or whitelist.txt in the config will be allowed to connect to the server * More examples * Add a guy * Update whitelist.txt * Put him in --- code/controllers/configuration.dm | 2 +- code/modules/admin/IsBanned.dm | 11 +++++++++++ code/modules/admin/whitelist.dm | 22 ++++++++++++++++++++++ code/modules/jobs/whitelist.dm | 15 --------------- config/config.txt | 5 ++--- config/whitelist.txt | 9 +++++++++ tgstation.dme | 2 +- 7 files changed, 46 insertions(+), 20 deletions(-) create mode 100644 code/modules/admin/whitelist.dm delete mode 100644 code/modules/jobs/whitelist.dm create mode 100644 config/whitelist.txt diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index 7c33a9962ed..7ed96bcb692 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -351,7 +351,7 @@ if("guest_ban") guests_allowed = 0 if("usewhitelist") - config.usewhitelist = 1 + config.usewhitelist = TRUE if("allow_metadata") config.allow_Metadata = 1 if("kick_inactive") diff --git a/code/modules/admin/IsBanned.dm b/code/modules/admin/IsBanned.dm index 9b229eb107b..4968942aed8 100644 --- a/code/modules/admin/IsBanned.dm +++ b/code/modules/admin/IsBanned.dm @@ -19,6 +19,17 @@ if((ckey in admin_datums) || (ckey in deadmins)) admin = 1 + //Whitelist + if(config.usewhitelist) + if(!check_whitelist(ckey(key))) + if (admin) + log_admin("The admin [key] has been allowed to bypass the whitelist") + message_admins("The admin [key] has been allowed to bypass the whitelist") + addclientmessage(ckey,"You have been allowed to bypass the whitelist") + else + log_access("Failed Login: [key] - Not on whitelist") + return list("reason"="whitelist", "desc" = "\nReason: You are not on the white list for this server") + //Guest Checking if(IsGuestKey(key)) if (!guests_allowed) diff --git a/code/modules/admin/whitelist.dm b/code/modules/admin/whitelist.dm new file mode 100644 index 00000000000..079f5026686 --- /dev/null +++ b/code/modules/admin/whitelist.dm @@ -0,0 +1,22 @@ +#define WHITELISTFILE "config/whitelist.txt" + +var/list/whitelist + +/proc/load_whitelist() + whitelist = list() + for(var/line in file2list(WHITELISTFILE)) + if(!line) + continue + if(findtextEx(line,"#",1,2)) + continue + whitelist += line + + if(!whitelist.len) + whitelist = null + +/proc/check_whitelist(var/ckey) + if(!whitelist) + return FALSE + . = (ckey in whitelist) + +#undef WHITELISTFILE diff --git a/code/modules/jobs/whitelist.dm b/code/modules/jobs/whitelist.dm deleted file mode 100644 index c0d5db24fec..00000000000 --- a/code/modules/jobs/whitelist.dm +++ /dev/null @@ -1,15 +0,0 @@ -#define WHITELISTFILE "data/whitelist.txt" - -var/list/whitelist - -/proc/load_whitelist() - whitelist = file2list(WHITELISTFILE) - if(!whitelist.len) - whitelist = null - -/proc/check_whitelist(mob/M /*, var/rank*/) - if(!whitelist) - return 0 - return ("[M.ckey]" in whitelist) - -#undef WHITELISTFILE \ No newline at end of file diff --git a/config/config.txt b/config/config.txt index a8cc323f2ce..baf5e0baee0 100644 --- a/config/config.txt +++ b/config/config.txt @@ -141,9 +141,8 @@ CHECK_RANDOMIZER ## byond membership starts at $10 for 3 months, so to use the webclient to evade, they would have sink 10 bucks in each evade. #WEBCLIENT_ONLY_BYOND_MEMBERS -## Set to jobban everyone who's key is not listed in data/whitelist.txt from Captain, HoS, HoP, CE, RD, CMO, Warden, Security, Detective, and AI positions. -## Uncomment to 1 to jobban, leave commented out to allow these positions for everyone (but see GUEST_JOBBAN above and regular jobbans) -# USEWHITELIST +## Set to prevent anyone but those ckeys listed in config/whitelist.txt and config/admins.txt from joining your server +#USEWHITELIST ## set a server location for world reboot. Don't include the byond://, just give the address and port. # Don't set this to the same server, BYOND will automatically restart players to the server when it has restarted. diff --git a/config/whitelist.txt b/config/whitelist.txt new file mode 100644 index 00000000000..59270487381 --- /dev/null +++ b/config/whitelist.txt @@ -0,0 +1,9 @@ +############################################################################################### +# Basically, a list of ckeys who make it past user connection # +# Case is not important for ckey. # +############################################################################################### +#Optimumtact +#kevinz000 +#Iamgoofball +#Rshoe95 +#That one penguin who became an admin diff --git a/tgstation.dme b/tgstation.dme index 68a71418e06..0a13b8485ca 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -933,6 +933,7 @@ #include "code\modules\admin\stickyban.dm" #include "code\modules\admin\topic.dm" #include "code\modules\admin\watchlist.dm" +#include "code\modules\admin\whitelist.dm" #include "code\modules\admin\DB_ban\functions.dm" #include "code\modules\admin\permissionverbs\permissionedit.dm" #include "code\modules\admin\verbs\adminhelp.dm" @@ -1307,7 +1308,6 @@ #include "code\modules\hydroponics\grown\towercap.dm" #include "code\modules\jobs\access.dm" #include "code\modules\jobs\jobs.dm" -#include "code\modules\jobs\whitelist.dm" #include "code\modules\jobs\job_types\assistant.dm" #include "code\modules\jobs\job_types\captain.dm" #include "code\modules\jobs\job_types\cargo_service.dm"