From 7ddb19c86d2bbf41c48ff346b759466cf9e1849c Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Tue, 14 Oct 2014 07:46:44 +0100 Subject: [PATCH 01/39] New admin Verbs FillSpace & Clear Toxins --- code/modules/admin/admin_verbs.dm | 43 ++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 4b129c56..2560e1e9 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -188,7 +188,9 @@ var/list/admin_verbs_debug = list( /client/proc/toggledebuglogs, /client/proc/SDQL_query, /client/proc/SDQL2_query, - /client/proc/cmd_dev_reset_gravity + /client/proc/cmd_dev_reset_gravity, + /client/proc/cleartox, + /client/proc/fillspace ) var/list/admin_verbs_possess = list( /proc/possess, @@ -961,3 +963,42 @@ var/list/admin_verbs_mod = list( usr << "You now will get advanced debug logs" else usr << "You now won't get advanced debug logs" + +/client/proc/cleartox() + set category = "Special Verbs" + set name = "Clear Toxin/Fire in Zone" + if(!check_rights(R_DEBUG)) + return + + var/datum/gas_mixture/environment = usr.loc.return_air() + environment.toxins_archived = null + environment.toxins = 0 + environment.carbon_dioxide = 0 + environment.carbon_dioxide_archived = null + environment.oxygen = 21.8366 + environment.oxygen_archived = null + environment.nitrogen = 82.1472 + environment.nitrogen_archived = null + environment.temperature_archived = null + environment.temperature = 293.15 + environment.update_values() + var/turf/simulated/location = get_turf(usr) + if(location.zone) + for(var/turf/T in location.zone.contents) + for(var/obj/fire/F in T.contents) + del(F) + for(var/obj/fire/FF in world) + del(FF) + +/client/proc/fillspace() + set category = "Special Verbs" + set name = "Fill Space with floor" + if(!check_rights(R_DEBUG)) + return + var/area/location = usr.loc.loc + if(location.name != "Space") + for(var/turf/space/S in location) + S.ChangeTurf(/turf/simulated/floor/plating) + if(location.name == "Space") + for(var/turf/space/S in range(2,usr.loc)) + S.ChangeTurf(/turf/simulated/floor/plating) \ No newline at end of file From 59ea26a5dafe4f77a6b5379afde5af4c09751a5c Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Tue, 14 Oct 2014 07:47:08 +0100 Subject: [PATCH 02/39] BugFix dna is a list --- code/modules/detectivework/forensics.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/detectivework/forensics.dm b/code/modules/detectivework/forensics.dm index 3a25292f..3e3c62de 100644 --- a/code/modules/detectivework/forensics.dm +++ b/code/modules/detectivework/forensics.dm @@ -52,7 +52,7 @@ return else if(user.zone_sel.selecting == "mouth") user.visible_message("[user] swabs [M]'s mouth for a saliva sample.", "You swab [M]'s mouth for a saliva sample.") - dna = M.dna.unique_enzymes + dna += M.dna.unique_enzymes used = 1 name = "swab of [M]'s DNA" desc = "[initial(desc)]
\blue The label on the vial reads 'Sample of [M]'s DNA'." From ab210d477ac89c0c4a63c9104fe7f074ad86e2ac Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Tue, 14 Oct 2014 16:16:18 +0100 Subject: [PATCH 03/39] bugfix Spiders go through plastic flaps when dead now --- code/modules/mob/living/simple_animal/hostile/giant_spider.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index caf8add0..fdd61959 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -44,6 +44,7 @@ /mob/living/simple_animal/hostile/giant_spider/death() total_spiders -= 1 + lying = 1 if(total_spiders <= (MAX_SPIDERS - 2) && !spider_can_spawn) spider_can_spawn = 1 if(total_spiders < 0) //Admin mess around protection @@ -53,6 +54,7 @@ /mob/living/simple_animal/hostile/giant_spider/Life() //Checks to see if spider has been respawned from var edits if(stat == DEAD) if(health > 0) + lying = 0 total_spiders += 1 ..() From 22ab226a2bc34773a3960067ef3fb7b4848052c0 Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Wed, 15 Oct 2014 08:27:07 +0100 Subject: [PATCH 04/39] Resetting floating mobs Dev/debug command --- Scopes Files/gravitygenerator.dm | 23 +++++++++++++++++++++++ code/modules/admin/admin_verbs.dm | 2 ++ 2 files changed, 25 insertions(+) diff --git a/Scopes Files/gravitygenerator.dm b/Scopes Files/gravitygenerator.dm index 1fbbd055..2ad826c1 100644 --- a/Scopes Files/gravitygenerator.dm +++ b/Scopes Files/gravitygenerator.dm @@ -55,6 +55,29 @@ var/list/gravity_field_generators = list() // We will keep track of this by addi feedback_add_details("admin_verb","RSG") +/client/proc/cmd_dev_reset_floating() + set category = "Debug" + set name = "Reset floating mobs" + set desc = "Stops all mobs floating instantly." + + if(!check_rights(R_DEBUG|R_DEV)) return + + if(!holder) + return //how did they get here? + + if(!ticker) + alert("Wait until the game starts") + return + + if(ticker.current_state < GAME_STATE_PLAYING) + src << "\red The game hasn't started yet!" + return + + for(var/mob/living/M in world) + M.float(0) + + feedback_add_details("admin_verb","RSF") + /obj/machinery/gravity_field_generator name = "gravitational generator" desc = "A device which produces a graviton field when set up." diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 2560e1e9..b64430c0 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -138,6 +138,7 @@ var/list/admin_verbs_dev = list( /client/proc/cmd_dev_say, /client/proc/cmd_dev_bst, /client/proc/cmd_dev_reset_gravity, + /client/proc/cmd_dev_reset_floating, /client/proc/togglescopeslogs ) var/list/admin_verbs_spawn = list( @@ -189,6 +190,7 @@ var/list/admin_verbs_debug = list( /client/proc/SDQL_query, /client/proc/SDQL2_query, /client/proc/cmd_dev_reset_gravity, + /client/proc/cmd_dev_reset_floating, /client/proc/cleartox, /client/proc/fillspace ) From 1b9b6d2d1922f7607d5608a5839092da7700beaf Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Wed, 15 Oct 2014 17:33:07 +0100 Subject: [PATCH 05/39] Wind from the PP Winding people from the player panel --- code/modules/admin/player_panel.dm | 4 +++- code/modules/admin/topic.dm | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm index 13d06c1a..7b485966 100644 --- a/code/modules/admin/player_panel.dm +++ b/code/modules/admin/player_panel.dm @@ -81,7 +81,9 @@ body += "TP - " body += "PM - " body += "SM - " - body += "JMP
" + body += "JMP - " + body += "WIND
" + if(antagonist > 0) body += "Antagonist"; diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index a4879a4d..31a4a1f5 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -2675,3 +2675,17 @@ if("list") PlayerNotesPage(text2num(href_list["index"])) return + + if(href_list["admin_wind_player"]) + + var/mob/M = locate(href_list["admin_wind_player"]) + if(!ismob(M)) + usr << "This can only be used on instances of type /mob" + return + + if(!M.ckey) //sanity + usr << "This mob has no ckey" + return + + M.weakened = 500 + return \ No newline at end of file From fbc62b39395aca26b80612131b8beeb2cd29f458 Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Fri, 17 Oct 2014 14:47:12 +0100 Subject: [PATCH 06/39] Confirmation on wind Confirmation for winding through PP --- code/modules/admin/topic.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 31a4a1f5..a60122f3 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -2687,5 +2687,8 @@ usr << "This mob has no ckey" return + if(alert("Wind [M]?",,"Yes","No")!="Yes") + return + M.weakened = 500 return \ No newline at end of file From 7485135eb6cc6c0483903a0ecafd3387ff13b2d5 Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Sat, 18 Oct 2014 14:58:05 +0100 Subject: [PATCH 07/39] Grav announcement fix Grav announcement thing --- Scopes Files/gravitygenerator.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Scopes Files/gravitygenerator.dm b/Scopes Files/gravitygenerator.dm index 2ad826c1..edc866e3 100644 --- a/Scopes Files/gravitygenerator.dm +++ b/Scopes Files/gravitygenerator.dm @@ -368,6 +368,7 @@ var/list/gravity_field_generators = list() // We will keep track of this by addi if(gravity_in_level() == 1) alert = 1 gravity_is_on = 0 + captain_announce("Gravity generator: shutdown successful.") investigate_log("was brought offline and there is now no gravity for this level.", "gravity") message_admins("The gravity generator was brought offline with no backup generator. ([area.name])") message_mods("The gravity generator was brought offline with no backup generator. ([area.name])") @@ -377,8 +378,6 @@ var/list/gravity_field_generators = list() // We will keep track of this by addi update_list() src.updateUsrDialog() if(alert) - if(!(stat & BROKEN)) - captain_announce("Gravity generator: shutdown successful.") shake_everyone() // Charge/Discharge and turn on/off gravity when you reach 0/100 percent. From a259aa04c138d9173691225d3260c8bed98bc15f Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Sun, 19 Oct 2014 05:55:18 +0100 Subject: [PATCH 08/39] Change log Change log --- html/changelog.html | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/html/changelog.html b/html/changelog.html index d62ad193..63c52e90 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -56,6 +56,27 @@ should be listed in the changelog upon commit though. Thanks. --> +
+

19 October 2014

+

updated:

+
    +
  • AI inbuilt radio
  • +
  • Maintanence Drones can crawl through vents
  • +
  • Substitute milk - 1 water, 2 cream
  • +
  • Supply pack - Candlepack Crate
  • +
  • Bombsuits buffed slightly - Reduces damage taken from heavy explosions
  • +
  • IPC's being affected by cloneloss
  • +
  • Tasers piercing through godmode
  • +
  • Pain-immune races immune to halloss
  • +
  • Nerfs Chloral to stun for ~4 seconds + metabolism duration
  • +
  • Dead spiders can now go through plastic flaps
  • +
  • Runtime errors when swabing someones mouth
  • +
  • Gravity generator shutdown message
  • +
  • Grenade timers are now adjustable
  • +
+
+ +

08 October 2014

SoundScopes updated:

From 412d3ebac997fe6d031a18d3f8c7d63162698f8f Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Mon, 20 Oct 2014 21:07:06 +0100 Subject: [PATCH 09/39] Less space problems Something Duck asked me to do. --- code/modules/aurora/bluespacetech.dm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/modules/aurora/bluespacetech.dm b/code/modules/aurora/bluespacetech.dm index 16d663fb..7fc631a4 100644 --- a/code/modules/aurora/bluespacetech.dm +++ b/code/modules/aurora/bluespacetech.dm @@ -173,6 +173,9 @@ has_sensor = 0 sensor_mode = 0 canremove = 0 + siemens_coefficient = 0 + cold_protection = FULL_BODY + heat_protection = FULL_BODY attack_hand() if(!usr) @@ -188,7 +191,7 @@ name = "Bluespace Technician's gloves" desc = "A pair of modified gloves, 'BST' marked on the side." siemens_coefficient = 0 - permeability_coefficient = 0.05 + permeability_coefficient = 0 canremove = 0 attack_hand() From 589b91805f8896960b7b4972937d8c73df14ef57 Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Mon, 20 Oct 2014 21:07:25 +0100 Subject: [PATCH 10/39] Changelog logchange --- html/changelog.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/html/changelog.html b/html/changelog.html index 63c52e90..420e3707 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -64,6 +64,9 @@ should be listed in the changelog upon commit though. Thanks. -->
  • Maintanence Drones can crawl through vents
  • Substitute milk - 1 water, 2 cream
  • Supply pack - Candlepack Crate
  • +
  • New Machine code
  • +
  • New Powernet code
  • +
  • New Atmosphrics code
  • Bombsuits buffed slightly - Reduces damage taken from heavy explosions
  • IPC's being affected by cloneloss
  • Tasers piercing through godmode
  • From 5849f9a6ae8703132640c06362f59f967a42b434 Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Tue, 21 Oct 2014 22:50:10 +0100 Subject: [PATCH 11/39] Logs with color Hope to catch their eyes as people don't see it --- code/modules/admin/admin.dm | 4 ++-- code/modules/reagents/reagent_dispenser.dm | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 50845eef..68c163bc 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -879,8 +879,8 @@ var/global/floorIsLava = 0 if (!ticker || ticker.current_state != GAME_STATE_PREGAME) ticker.delay_end = !ticker.delay_end log_admin("[key_name(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].") - message_admins("\blue [key_name(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].", 1) - message_mods("\blue [key_name(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].", 1) + message_admins("\blue [key_name(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].", 1) + message_mods("\blue [key_name(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].", 1) return //alert("Round end delayed", null, null, null, null, null) going = !( going ) if (!( going )) diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index 70908cfe..a43e0f9c 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -154,13 +154,13 @@ examine() if(!src.defuse && user.client.holder) src.defuse = 1 - message_admins("[key_name_admin(user)] defused fueltank at ([loc.x],[loc.y],[loc.z]).") - message_mods("[key_name_admin(user)] defused fueltank at ([loc.x],[loc.y],[loc.z]).") + message_admins("[key_name_admin(user)] defused fueltank at ([loc.x],[loc.y],[loc.z]).") + message_mods("[key_name_admin(user)] defused fueltank at ([loc.x],[loc.y],[loc.z]).") else if(!src.armed && user.client.holder) src.defuse = 0 - message_admins("[key_name_admin(user)] reset fuse on fueltank at ([loc.x],[loc.y],[loc.z]).") - message_mods("[key_name_admin(user)] reset fuse on fueltank at ([loc.x],[loc.y],[loc.z]).") + message_admins("[key_name_admin(user)] reset fuse on fueltank at ([loc.x],[loc.y],[loc.z]).") + message_mods("[key_name_admin(user)] reset fuse on fueltank at ([loc.x],[loc.y],[loc.z]).") /obj/structure/reagent_dispensers/fueltank/bullet_act(var/obj/item/projectile/Proj) if(istype(Proj ,/obj/item/projectile/beam)||istype(Proj,/obj/item/projectile/bullet)) From 193907c6195e3d38d2dd61b18eaf9088d53e7f64 Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Thu, 23 Oct 2014 00:58:36 +0100 Subject: [PATCH 12/39] Watches break EMP's effect watches and watches can no longer become stungloves --- code/modules/clothing/gloves/miscellaneous.dm | 51 +++++++++++++++++-- 1 file changed, 48 insertions(+), 3 deletions(-) diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index 8c68b807..db08554d 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -67,20 +67,65 @@ icon_state = "watch" item_state = "watchgloves" w_class = 1 - var/time = 1 + wired = 1 +// var/time = 1 verb/checktime() set category = "Object" set name = "Check Time" set src in usr - if(time == 1) + if(wired && !clipped) usr << "You check your watch, spotting a digital collection of numbers reading '[worldtime2text()]'" + else if(wired && clipped) + usr << "You check your watch realising it's still open" + else + usr << "You check your watch as it dawns on you that it's broken" verb/pointatwatch() set category = "Object" set name = "Point at watch" set src in usr - if(time == 1) + if(wired && !clipped) usr.visible_message ("[usr] taps their foot on the floor, arrogantly pointing at the [src] on their wrist with a look of derision in their eyes.", "You point down at the [src], an arrogant look about your eyes.") + else if(wired && clipped) + usr.visible_message ("[usr] taps their foot on the floor, arrogantly pointing at the [src] on their wrist with a look of derision in their eyes, not noticing it's open", "You point down at the [src], an arrogant look about your eyes.") + else + usr.visible_message ("[usr] taps their foot on the floor, arrogantly pointing at the [src] on their wrist with a look of derision in their eyes, not noticing it's broken", "You point down at the [src], an arrogant look about your eyes.") + + attackby(obj/item/weapon/W, mob/user) + if(istype(W, /obj/item/weapon/screwdriver)) + if (clipped) //Using clipped because adding a new var for something is dumb + user.visible_message("\blue [user] screws the cover of the [src] closed.","\blue You screw the cover of the [src] closed..") + clipped = 0 + return +// playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1) + user.visible_message("\blue [user] unscrew the cover of the [src].","\blue You unscrew the cover of the [src].") + clipped = 1 + return + if(wired) + return + if(istype(W, /obj/item/weapon/cable_coil)) + var/obj/item/weapon/cable_coil/C = W + if (!clipped) + user << "The [src] is not open." + return + + if(wired) + user << "The [src] are already wired." + return + + if(C.amount < 2) + user << "There is not enough wire to cover the [src]." + return + + C.use(2) + wired = 1 + user << "You repair some wires in the [src]." + return + + emp_act(severity) + if(prob(50/severity)) + wired = 0 + ..() \ No newline at end of file From 2769b014afffb70f4770c37ea26e3955ccd5220d Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Thu, 23 Oct 2014 06:07:16 +0100 Subject: [PATCH 13/39] Objectiveless Fix Late spawned heads of staff don't get added as a kill objective with objectiveless antags --- .../gamemodes/revolution/rp_revolution.dm | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/code/game/gamemodes/revolution/rp_revolution.dm b/code/game/gamemodes/revolution/rp_revolution.dm index 88ca9af0..bc645585 100644 --- a/code/game/gamemodes/revolution/rp_revolution.dm +++ b/code/game/gamemodes/revolution/rp_revolution.dm @@ -211,12 +211,13 @@ var/added_heads = 0 for(var/mob/living/carbon/human/H in world) if(H.client && H.mind && H.client.inactivity <= 10*60*20 && H.mind in revolutionaries) head_revolutionaries += H.mind - for(var/datum/mind/head_mind in heads) - var/datum/objective/mutiny/rp/rev_obj = new - rev_obj.owner = H.mind - rev_obj.target = head_mind - rev_obj.explanation_text = "Assassinate or capture [head_mind.name], the [head_mind.assigned_role]." - H.mind.objectives += rev_obj + if(!config.objectives_disabled) + for(var/datum/mind/head_mind in heads) + var/datum/objective/mutiny/rp/rev_obj = new + rev_obj.owner = H.mind + rev_obj.target = head_mind + rev_obj.explanation_text = "Assassinate or capture [head_mind.name], the [head_mind.assigned_role]." + H.mind.objectives += rev_obj update_rev_icons_added(H.mind) H.verbs += /mob/living/carbon/human/proc/RevConvert @@ -258,13 +259,15 @@ /datum/game_mode/revolution/rp_revolution/latespawn(mob/M) if(M.mind.assigned_role in command_positions) - log_debug("Adding head kill/capture/convert objective for [M.name]") + log_debug("Adding to head list for [M.name]") heads += M - for(var/datum/mind/rev_mind in head_revolutionaries) - var/datum/objective/mutiny/rp/rev_obj = new - rev_obj.owner = rev_mind - rev_obj.target = M.mind - rev_obj.explanation_text = "Assassinate, convert or capture [M.real_name], the [M.mind.assigned_role]." - rev_mind.objectives += rev_obj - rev_mind.current << "\red A new Head of Staff, [M.real_name], the [M.mind.assigned_role] has appeared. Your objectives have been updated." + if(!config.objectives_disabled) + log_debug("Adding head kill/capture/convert objective for [M.name]") + for(var/datum/mind/rev_mind in head_revolutionaries) + var/datum/objective/mutiny/rp/rev_obj = new + rev_obj.owner = rev_mind + rev_obj.target = M.mind + rev_obj.explanation_text = "Assassinate, convert or capture [M.real_name], the [M.mind.assigned_role]." + rev_mind.objectives += rev_obj + rev_mind.current << "\red A new Head of Staff, [M.real_name], the [M.mind.assigned_role] has appeared. Your objectives have been updated." From fb2a0c3ab12911a32365e6f82b76d82f038d643c Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Fri, 24 Oct 2014 06:10:19 +0100 Subject: [PATCH 14/39] SM affects Z-level only Supermatter affects mobs on it's own z-Level --- code/modules/supermatter/supermatter.dm | 4 +++- html/changelog.html | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/code/modules/supermatter/supermatter.dm b/code/modules/supermatter/supermatter.dm index ed13d9ad..58266e09 100644 --- a/code/modules/supermatter/supermatter.dm +++ b/code/modules/supermatter/supermatter.dm @@ -119,6 +119,8 @@ if(damage > explosion_point) for(var/mob/living/mob in living_mob_list) if(istype(mob, /mob/living/carbon/human)) + if(mob.loc.z != src.z) + continue //Hilariously enough, running into a closet should make you get hit the hardest. mob:hallucination += max(50, min(300, DETONATION_HALLUCINATION * sqrt(1 / (get_dist(mob, src) + 1)) ) ) var/rads = DETONATION_RADS * sqrt( 1 / (get_dist(mob, src) + 1) ) @@ -170,7 +172,7 @@ //Also keep in mind we are only adding this temperature to (efficiency)% of the one tile the rock //is on. An increase of 4*C @ 25% efficiency here results in an increase of 1*C / (#tilesincore) overall. - + var/thermal_power = THERMAL_RELEASE_MODIFIER if(removed.total_moles < 35) thermal_power += 750 //If you don't add coolant, you are going to have a bad time. diff --git a/html/changelog.html b/html/changelog.html index 420e3707..5c53467d 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -64,10 +64,15 @@ should be listed in the changelog upon commit though. Thanks. -->
  • Maintanence Drones can crawl through vents
  • Substitute milk - 1 water, 2 cream
  • Supply pack - Candlepack Crate
  • +
  • Watches can get effected by EMP blasts
  • New Machine code
  • New Powernet code
  • New Atmosphrics code
  • Bombsuits buffed slightly - Reduces damage taken from heavy explosions
  • +
  • Supermatter radiation from explotions only affect mobs on the same z-level
  • +
  • RP-Rev - Head's joing after round start are no longer added as objectives if objectiveless antags is set
  • +
  • Snipping fingertips off watches and making them stungloves
  • +
  • Watches can no longer be made into stungloves
  • IPC's being affected by cloneloss
  • Tasers piercing through godmode
  • Pain-immune races immune to halloss
  • From 65a4bc1652d2a2e1e18591fcbc34d46349983ff1 Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Sat, 25 Oct 2014 02:41:44 +0100 Subject: [PATCH 15/39] BST stuff --- code/modules/aurora/bluespacetech.dm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/code/modules/aurora/bluespacetech.dm b/code/modules/aurora/bluespacetech.dm index 7fc631a4..0239397a 100644 --- a/code/modules/aurora/bluespacetech.dm +++ b/code/modules/aurora/bluespacetech.dm @@ -98,6 +98,8 @@ spawn(5) s.start() bst.anchored = 0 + spawn(10) + del(s) log_debug("Bluespace Tech Spawned: X:[bst.x] Y:[bst.y] Z:[bst.z] User:[src]") feedback_add_details("admin_verb","BST") return 1 @@ -119,6 +121,8 @@ var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(5, 1, src) s.start() + spawn(5) + del(s) var/mob/dead/observer/ghost = new(src) //Transfer safety to observer spawning proc. ghost.key = key ghost.mind.name = "[ghost.key] BSTech" @@ -156,6 +160,8 @@ translate_binary = 1 translate_hive = 1 canremove = 0 + keyslot1 = new /obj/item/device/encryptionkey/binary + keyslot2 = new /obj/item/device/encryptionkey/ert attack_hand() if(!usr) From 284dfd99cfea99650f7235b27fa1659f8e9b46bc Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Sat, 25 Oct 2014 06:23:37 +0100 Subject: [PATCH 16/39] Silly stuff --- code/modules/aurora/bluespacetech.dm | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/code/modules/aurora/bluespacetech.dm b/code/modules/aurora/bluespacetech.dm index 0239397a..2bc8aa01 100644 --- a/code/modules/aurora/bluespacetech.dm +++ b/code/modules/aurora/bluespacetech.dm @@ -123,14 +123,27 @@ s.start() spawn(5) del(s) - var/mob/dead/observer/ghost = new(src) //Transfer safety to observer spawning proc. - ghost.key = key - ghost.mind.name = "[ghost.key] BSTech" - ghost.name = "[ghost.key] BSTech" - ghost.real_name = "[ghost.key] BSTech" - ghost.voice_name = "[ghost.key] BSTech" + if(species.name != "Tajaran") + var/mob/dead/observer/ghost = new(src) //Transfer safety to observer spawning proc. + ghost.key = key + ghost.mind.name = "[ghost.key] BSTech" + ghost.name = "[ghost.key] BSTech" + ghost.real_name = "[ghost.key] BSTech" + ghost.voice_name = "[ghost.key] BSTech" del(src) + proc/bsc(var/kill = 0) //because we all have our unrealistic snowflakes right? + if(set_species("Tajaran")) + name = "Bluespace Cat" + voice_name = "Bluespace Cat" + real_name = "Bluespace Cat" + mind.name = "Bluespace Cat" + regenerate_icons() + else + ghostize(0) + key = null + suicide() + say(var/message) var/verb = "says in a subdued tone" ..(message, verb) From 9628d8ba493b14738a32967c01dfae53f4bb5653 Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Sat, 25 Oct 2014 06:46:11 +0100 Subject: [PATCH 17/39] Forgot some things --- code/modules/aurora/bluespacetech.dm | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/code/modules/aurora/bluespacetech.dm b/code/modules/aurora/bluespacetech.dm index 2bc8aa01..fb100960 100644 --- a/code/modules/aurora/bluespacetech.dm +++ b/code/modules/aurora/bluespacetech.dm @@ -80,6 +80,7 @@ //Add the rest of the languages //Because universal speak doesn't work right. + bst.add_language("Sol Common") bst.add_language("Sinta'unathi") bst.add_language("Siik'Maas") bst.add_language("Skrellian") @@ -126,10 +127,16 @@ if(species.name != "Tajaran") var/mob/dead/observer/ghost = new(src) //Transfer safety to observer spawning proc. ghost.key = key - ghost.mind.name = "[ghost.key] BSTech" - ghost.name = "[ghost.key] BSTech" - ghost.real_name = "[ghost.key] BSTech" - ghost.voice_name = "[ghost.key] BSTech" + if(species.name == "Machine") + ghost.mind.name = "Bluespace Bot" + ghost.name = "Bluespace Bot" + ghost.real_name = "Bluespace Bot" + ghost.voice_name = "Bluespace Bot" + else + ghost.mind.name = "[ghost.key] BSTech" + ghost.name = "[ghost.key] BSTech" + ghost.real_name = "[ghost.key] BSTech" + ghost.voice_name = "[ghost.key] BSTech" del(src) proc/bsc(var/kill = 0) //because we all have our unrealistic snowflakes right? From 308a468206e572016045f2f4431d13c19a336147 Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Sun, 26 Oct 2014 21:47:45 +0000 Subject: [PATCH 18/39] JMP link BST Hair --- code/game/machinery/cryopod.dm | 4 ++-- code/modules/aurora/bluespacetech.dm | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 88649b08..6652012a 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -323,8 +323,8 @@ obj/machinery/computer/cryopod/Topic(href, href_list) // Book keeping! log_admin("[key_name_admin(M)] has entered a stasis pod.") - message_admins("\blue [key_name_admin(M)] has entered a stasis pod.") - message_mods("\blue [key_name_admin(M)] has entered a stasis pod.") + message_admins("\blue [key_name_admin(M)] has entered a stasis pod.(JMP)") + message_mods("\blue [key_name_admin(M)] has entered a stasis pod.(JMP)") //Despawning occurs when process() is called with an occupant without a client. src.add_fingerprint(M) diff --git a/code/modules/aurora/bluespacetech.dm b/code/modules/aurora/bluespacetech.dm index fb100960..e0054bdf 100644 --- a/code/modules/aurora/bluespacetech.dm +++ b/code/modules/aurora/bluespacetech.dm @@ -40,8 +40,7 @@ bst.name = "Bluespace Technician" bst.real_name = "Bluespace Technician" bst.voice_name = "Bluespace Technician" -// bst.h_style = "hair_crewcut" -// bst.update_hair() + bst.h_style = "Crewcut" //Items var/obj/item/clothing/under/U = new /obj/item/clothing/under/rank/centcom_officer/bst(bst) @@ -77,6 +76,7 @@ id.name = "[id.assignment]" bst.equip_to_slot_or_del(id, slot_wear_id) bst.update_inv_wear_id() + bst.regenerate_icons() //Add the rest of the languages //Because universal speak doesn't work right. @@ -125,6 +125,9 @@ spawn(5) del(s) if(species.name != "Tajaran") + if(species.name == "Machine") + h_style = "blue IPC screen" + regenerate_icons() var/mob/dead/observer/ghost = new(src) //Transfer safety to observer spawning proc. ghost.key = key if(species.name == "Machine") @@ -141,6 +144,7 @@ proc/bsc(var/kill = 0) //because we all have our unrealistic snowflakes right? if(set_species("Tajaran")) + h_style = "Tajaran Ears" name = "Bluespace Cat" voice_name = "Bluespace Cat" real_name = "Bluespace Cat" From c1be7b03c4cf1079a0bcd0268eb6f200f04aa252 Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Tue, 28 Oct 2014 13:53:07 +0000 Subject: [PATCH 19/39] Comb your hair with style Now for gal's --- code/modules/customitems/baystation_fluff.dm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/code/modules/customitems/baystation_fluff.dm b/code/modules/customitems/baystation_fluff.dm index 7b18520f..8d6dc1ba 100644 --- a/code/modules/customitems/baystation_fluff.dm +++ b/code/modules/customitems/baystation_fluff.dm @@ -248,8 +248,13 @@ attack_self(mob/user) if(user.r_hand == src || user.l_hand == src) + var/mobgender + if(user.gender == "male") + mobgender = "guy" + else + mobgender = "gal" for(var/mob/O in viewers(user, null)) - O.show_message(text("\red [] uses [] to comb their hair with incredible style and sophistication. What a guy.", user, src), 1) + O.show_message(text("\red [] uses [] to comb their hair with incredible style and sophistication. What a [mobgender].", user, src), 1) return /obj/item/weapon/fluff/hugo_cinderbacth_1 //thatoneguy: Hugo Cinderbatch From 34d70d4f72646e2f98a241807320579c4f70c787 Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Tue, 28 Oct 2014 13:53:31 +0000 Subject: [PATCH 20/39] Vampire wording --- code/game/gamemodes/vampire/vampire_powers.dm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/code/game/gamemodes/vampire/vampire_powers.dm b/code/game/gamemodes/vampire/vampire_powers.dm index 0939375c..b44d580c 100644 --- a/code/game/gamemodes/vampire/vampire_powers.dm +++ b/code/game/gamemodes/vampire/vampire_powers.dm @@ -109,7 +109,14 @@ if(C==usr) M.current << "\red You can't do that to yourself" return - M.current.visible_message("[M]'s eyes flash briefly as he stares into [C.name]'s eyes") + + var/vampgender + if(M.current.gender == "male") + vampgender = "he" + else + vampgender = "she" + + M.current.visible_message("[M]'s eyes flash briefly as [vampgender] stares into [C.name]'s eyes") // M.current.remove_vampire_blood(20) Moved to remove if it works only. if(M.current.vampire_power(0, 0)) //if(M.current.vampire_power(20, 0)) M.current.verbs -= /client/vampire/proc/vampire_hypnotise From 9742d2e1a539cc7b3d426dbe389950917a51c008 Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Tue, 28 Oct 2014 13:53:47 +0000 Subject: [PATCH 21/39] engineer hardsuit kit access Fix --- code/datums/supplypacks.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index d84c7ba3..2941ec14 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -1255,7 +1255,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee cost = 40 containertype = /obj/structure/closet/crate/secure containername = "engineer hardsuit kit" - access_engine_equip + access = access_engine_equip group = "Engineering" /datum/supply_packs/hardsuitcrate_s From 700f88871e322bcb7f25e02f2924870a82064f03 Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Tue, 28 Oct 2014 14:21:38 +0000 Subject: [PATCH 22/39] Emagable fryer --- code/game/machinery/kitchen/deep_fryer.dm | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/code/game/machinery/kitchen/deep_fryer.dm b/code/game/machinery/kitchen/deep_fryer.dm index 4a9691b4..79237b8f 100644 --- a/code/game/machinery/kitchen/deep_fryer.dm +++ b/code/game/machinery/kitchen/deep_fryer.dm @@ -17,13 +17,28 @@ usr << "You can make out [frying] in the oil." /obj/machinery/deepfryer/attackby(obj/item/I, mob/user) - if(on) + if(istype(I, /obj/item/weapon/card/emag)) + if(emagged) + user << "[src] is already emagged!" + else + user << "Override the safety on [src]." + emagged = 1 + return + + if(on || emagged) var/obj/item/weapon/grab/G = I if(istype(G)) // handle grabbed mob if(ismob(G.affecting)) var/mob/living/GM = G.affecting user.visible_message("[user] starts pushing [GM.name] into the fryer.", "You try to force [GM.name] towards the fryer.", "You hear a struggle.") + if(emagged) + icon_state = "fryer_on" + on = TRUE + spawn(30) + icon_state = "fryer_off" + on = TRUE + if(do_after(usr, 20)) var/body_part = fry_mob_by_limb(GM, user.zone_sel.selecting) if(!body_part) //If you fry a valid part this will be set From c0d2c66dee79ad006ddb77f48aab39cb6a177f2a Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Tue, 28 Oct 2014 16:15:23 +0000 Subject: [PATCH 23/39] OOC Color Swap --- code/game/verbs/ooc.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm index 1c23f9b9..0af8f65f 100644 --- a/code/game/verbs/ooc.dm +++ b/code/game/verbs/ooc.dm @@ -45,11 +45,11 @@ var/global/normal_ooc_colour = "#002eb8" if(holder && !holder.fakekey) display_colour = "#0099cc" //light blue if(holder.rights & R_MOD && !(holder.rights & R_ADMIN)) - display_colour = "#184880" //dark blue - if(holder.rights & R_DEBUG && !(holder.rights & R_ADMIN)) display_colour = "#1b521f" //dark green + if(holder.rights & R_DEBUG && !(holder.rights & R_ADMIN)) + display_colour = "#184880" //dark blue if(holder.rights & R_DEV && !(holder.rights & R_ADMIN)) - display_colour = "#1b521f" + display_colour = "#184880" //dark blue else if(holder.rights & R_ADMIN) if(config.allow_admin_ooccolor) display_colour = src.prefs.ooccolor From 06702ba19b4f69fa4afc30e8535ab98a8f08c4e7 Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Tue, 28 Oct 2014 16:27:59 +0000 Subject: [PATCH 24/39] Missing list when removing perms --- code/modules/admin/admin_verbs.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index b64430c0..230ac0cd 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -334,6 +334,7 @@ var/list/admin_verbs_mod = list( admin_verbs_rejuv, admin_verbs_sounds, admin_verbs_spawn, + admin_verbs_dev, /*Debug verbs added by "show debug verbs"*/ /client/proc/Cell, /client/proc/do_not_use_these, From 152d74f5f671ec085ebfa9700ce2e7099c55220b Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Tue, 28 Oct 2014 17:18:26 +0000 Subject: [PATCH 25/39] Realtime error reporting So I don't have to login to the server for that small screen --- code/__HELPERS/logging.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/__HELPERS/logging.dm b/code/__HELPERS/logging.dm index 5ffdd022..c2461eb2 100644 --- a/code/__HELPERS/logging.dm +++ b/code/__HELPERS/logging.dm @@ -9,14 +9,17 @@ /proc/error(msg) + msg_scopes("## ERROR: [msg]") world.log << "## ERROR: [msg][log_end]" //print a warning message to world.log /proc/warning(msg) + msg_scopes("## WARNING: [msg]") world.log << "## WARNING: [msg][log_end]" //print a testing-mode debug message to world.log /proc/testing(msg) + msg_scopes("## TESTING: [msg]") world.log << "## TESTING: [msg][log_end]" /proc/log_admin(text) From d5568cd9fbcc7d903d5d640f655cf2946a78d9b9 Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Wed, 29 Oct 2014 11:48:50 +0000 Subject: [PATCH 26/39] Redundant code from floating animations --- code/game/area/areas.dm | 2 +- code/game/objects/structures/stool_bed_chair_nest/bed.dm | 8 ++++---- code/game/objects/structures/target_stake.dm | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index da6adcf2..91ad583d 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -338,7 +338,7 @@ mob:AdjustStunned(2) mob:AdjustWeakened(2) - mob:float(0) +// mob:float(0) mob << "Gravity!" /proc/has_gravity(atom/AT, turf/T) diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm index 0d831cb7..55a2748a 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm @@ -50,8 +50,8 @@ buckled_mob.buckled = null buckled_mob.anchored = initial(buckled_mob.anchored) buckled_mob.update_canmove() - if(!buckled_mob.mob_has_gravity(buckled_mob.loc)) - buckled_mob.float(1) +// if(!buckled_mob.mob_has_gravity(buckled_mob.loc)) +// buckled_mob.float(1) buckled_mob = null return @@ -98,8 +98,8 @@ M.loc = src.loc M.dir = src.dir M.update_canmove() - if(!M.mob_has_gravity(M.loc)) - M.float(0) +// if(!M.mob_has_gravity(M.loc)) +// M.float(0) src.buckled_mob = M src.add_fingerprint(user) return diff --git a/code/game/objects/structures/target_stake.dm b/code/game/objects/structures/target_stake.dm index ff11c310..a4ef3dd0 100644 --- a/code/game/objects/structures/target_stake.dm +++ b/code/game/objects/structures/target_stake.dm @@ -142,8 +142,8 @@ M.loc = src.loc M.dir = src.dir M.update_canmove() - if(!M.mob_has_gravity(M.loc)) - M.float(0) +// if(!M.mob_has_gravity(M.loc)) +// M.float(0) src.buckled_mob = M src.add_fingerprint(user) return \ No newline at end of file From b93e6ca04e678e7401c2c63fb119aa3189166cd2 Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Thu, 30 Oct 2014 00:26:49 +0000 Subject: [PATCH 27/39] Change log --- html/changelog.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/html/changelog.html b/html/changelog.html index 5c53467d..44b7b0ad 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -57,20 +57,24 @@ should be listed in the changelog upon commit though. Thanks. -->
    -

    19 October 2014

    +

    30 October 2014

    updated:

    • AI inbuilt radio
    • Maintanence Drones can crawl through vents
    • Substitute milk - 1 water, 2 cream
    • Supply pack - Candlepack Crate
    • +
    • Moderators and Developers OOC color swapped to make Mods stand out more than Devs
    • Watches can get effected by EMP blasts
    • New Machine code
    • New Powernet code
    • New Atmosphrics code
    • +
    • DeepFryer can be emagged
    • Bombsuits buffed slightly - Reduces damage taken from heavy explosions
    • Supermatter radiation from explotions only affect mobs on the same z-level
    • +
    • Purple comb now say ga; when used by a female
    • RP-Rev - Head's joing after round start are no longer added as objectives if objectiveless antags is set
    • +
    • Engineering hardsuit crate access levels
    • Snipping fingertips off watches and making them stungloves
    • Watches can no longer be made into stungloves
    • IPC's being affected by cloneloss
    • From c90f1b3aaba2e61ccf88d775fbb6497d31d47ec0 Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Fri, 31 Oct 2014 12:06:43 +0000 Subject: [PATCH 28/39] C4 staff messgaes --- code/game/objects/items/weapons/explosives.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm index 1a75ae17..20b65d12 100644 --- a/code/game/objects/items/weapons/explosives.dm +++ b/code/game/objects/items/weapons/explosives.dm @@ -50,6 +50,9 @@ log_str += " Last touched by: [src.fingerprintslast][last_touch_info]" bombers += log_str + message_admins("C4 Explosion: Last touched by: [src.fingerprintslast][last_touch_info]([user.ckey])(JMP)") + message_admins("C4 Explosion: Last touched by: [src.fingerprintslast][last_touch_info]([user.ckey])(JMP)") + explosion(location, -1, -1, 2, 3) if (istype(target, /turf/simulated/wall)) target:dismantle_wall(1) else target.ex_act(1) From 4478769bab73f1c53c6e5829bbf5a6a7be09ae75 Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Fri, 31 Oct 2014 17:12:38 +0000 Subject: [PATCH 29/39] Muting staff --- code/__HELPERS/logging.dm | 4 +- code/game/verbs/ooc.dm | 20 +++++++++ code/global.dm | 11 +++++ code/modules/admin/admin.dm | 75 ++++++++++++++++++++++++++++++- code/modules/admin/admin_verbs.dm | 4 ++ 5 files changed, 111 insertions(+), 3 deletions(-) diff --git a/code/__HELPERS/logging.dm b/code/__HELPERS/logging.dm index c2461eb2..2281a609 100644 --- a/code/__HELPERS/logging.dm +++ b/code/__HELPERS/logging.dm @@ -87,7 +87,7 @@ //SoundScopes extra stuffs //I'm sending debug messages through here for when an admin log is made at the same time. //What's the point in making 2 recorded logs for one thing. -/proc/msg_scopes(var/msg, tell_devs = 0) +/proc/msg_scopes(var/msg, tell_devs = 0, override = 0) if(tell_devs) msg = "DEBUG: [msg]" else @@ -96,7 +96,7 @@ for(var/client/C in admins) if(R_DEV & C.holder.rights) if(tell_devs) - if((C.prefs.toggles & CHAT_DEBUGLOGS) && !(R_ADMIN & C.holder.rights)) + if(((C.prefs.toggles & CHAT_DEBUGLOGS) || (override)) && !(C.holder.rights & R_ADMIN)) C << msg if(R_ADMIN & C.holder.rights) if(C.prefs.toggles & CHAT_SCOPES_DEBUG) diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm index 0af8f65f..10fac8f4 100644 --- a/code/game/verbs/ooc.dm +++ b/code/game/verbs/ooc.dm @@ -39,6 +39,16 @@ var/global/normal_ooc_colour = "#002eb8" message_admins("[key_name_admin(src)] has attempted to advertise in OOC: [msg]") return + if(holder) + if(holder.rights & R_DEV && !(holder.rights & R_ADMIN)) + if(!ooc_allowed && !ooc_dev_allowed) + src << "\red OOC is muted for developers" + return + if(holder.rights & R_MOD && !(holder.rights & R_ADMIN)) + if(!ooc_allowed && !ooc_mod_allowed) + src << "\red OOC is muted for moderators" + return + log_ooc("[mob.name]/[key] : [msg]") var/display_colour = normal_ooc_colour @@ -132,6 +142,16 @@ var/global/normal_ooc_colour = "#002eb8" message_admins("[key_name_admin(src)] has attempted to advertise in OOC: [msg]") return + if(holder) + if(holder.rights & R_DEV && !(holder.rights & R_ADMIN)) + if(!looc_allowed && !looc_dev_allowed) + src << "\red LOOC is muted for developers" + return + if(holder.rights & R_MOD && !(holder.rights & R_ADMIN)) + if(!looc_allowed && !looc_mod_allowed) + src << "\red LOOC is muted for moderators" + return + log_ooc("(LOCAL) [mob.name]/[key] : [msg]") var/list/heard = get_mobs_in_view(7, src.mob) diff --git a/code/global.dm b/code/global.dm index 6e696060..6499f051 100644 --- a/code/global.dm +++ b/code/global.dm @@ -91,10 +91,21 @@ var/secret_force_mode = "secret" // if this is anything but "secret", the secret var/datum/engine_eject/engine_eject_control = null var/host = null var/aliens_allowed = 0 + + var/ooc_allowed = 1 +var/ooc_mod_allowed = 1 +var/ooc_dev_allowed = 1 + var/looc_allowed = 1 +var/looc_mod_allowed = 1 +var/looc_dev_allowed = 1 + var/dsay_allowed = 1 var/dooc_allowed = 1 + + + var/traitor_scaling = 1 //var/goonsay_allowed = 0 var/dna_ident = 1 diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 68c163bc..dc6aa228 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -740,12 +740,50 @@ var/global/floorIsLava = 0 ooc_allowed = !( ooc_allowed ) if (ooc_allowed) world << "The OOC channel has been globally enabled!" + ooc_dev_allowed = 1 + ooc_mod_allowed = 1 else world << "The OOC channel has been globally disabled!" log_admin("[key_name(usr)] toggled OOC.") message_admins("[key_name_admin(usr)] toggled OOC.", 1) feedback_add_details("admin_verb","TOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! +/datum/admins/proc/toggledevooc() + set category = "Server" + set desc="Toggles Developer OOC" + set name="Toggle Dev OOC" + if(ooc_allowed) + usr << "OOC needs to be muted first" + return + ooc_dev_allowed = !( ooc_dev_allowed ) + var/looc_status + if (ooc_dev_allowed) + looc_status = "Enabled" + else + looc_status = "Disabled" + log_admin("[key_name(usr)] [looc_status] Developer OOC.") + message_admins("[key_name_admin(usr)] [looc_status] Developer OOC.", 1) + msg_scopes("Developer OOC has been [looc_status]",1,1) + feedback_add_details("admin_verb","TDOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/datum/admins/proc/togglemodooc() + set category = "Server" + set desc="Toggles Moderators OOC" + set name="Toggle Mod OOC" + if(ooc_allowed) + usr << "OOC needs to be muted first" + return + ooc_mod_allowed = !( ooc_mod_allowed ) + var/looc_status + if (ooc_mod_allowed) + looc_status = "Enabled" + else + looc_status = "Disabled" + log_admin("[key_name(usr)] toggled Mod OOC.") + message_admins("[key_name_admin(usr)] [looc_status] Moderator OOC.", 1) + message_mods("Moderator OOC has been [looc_status]") + feedback_add_details("admin_verb","TMOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + /datum/admins/proc/togglelooc() set category = "Server" set desc="Globally Toggles LOOC" @@ -753,14 +791,49 @@ var/global/floorIsLava = 0 looc_allowed = !( looc_allowed ) if (looc_allowed) world << "The LOOC channel has been globally enabled!" + looc_dev_allowed = 1 + looc_mod_allowed = 1 else world << "The LOOC channel has been globally disabled!" log_admin("[key_name(usr)] toggled LOOC.") message_admins("[key_name_admin(usr)] toggled LOOC.", 1) feedback_add_details("admin_verb","TLOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! +/datum/admins/proc/toggledevlooc() + set category = "Server" + set desc="Toggles Developer LOOC" + set name="Toggle Dev LOOC" + if(looc_allowed) + usr << "Looc needs to be muted first" + return + looc_dev_allowed = !( looc_dev_allowed ) + var/looc_status + if (looc_dev_allowed) + looc_status = "Enabled" + else + looc_status = "Disabled" + log_admin("[key_name(usr)] [looc_status] Developer LOOC.") + message_admins("[key_name_admin(usr)] [looc_status] Developer LOOC.", 1) + msg_scopes("Developer LOOC has been [looc_status]",1,1) + feedback_add_details("admin_verb","TDLOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - +/datum/admins/proc/togglemodlooc() + set category = "Server" + set desc="Toggles Moderator LOOC" + set name="Toggle Mod LOOC" + if(looc_allowed) + usr << "Looc needs to be muted first" + return + looc_mod_allowed = !( looc_mod_allowed ) + var/looc_status + if (looc_mod_allowed) + looc_status = "Enabled" + else + looc_status = "Disabled" + log_admin("[key_name(usr)] [looc_status] Moderator LOOC.") + message_admins("[key_name_admin(usr)] [looc_status] Moderator LOOC.", 1) + message_mods("Moderator LOOC has been [looc_status]") + feedback_add_details("admin_verb","TMLOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/admins/proc/toggledsay() set category = "Server" diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 230ac0cd..efbecb0a 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -59,7 +59,11 @@ var/list/admin_verbs_admin = list( /client/proc/secrets, /client/proc/toggleprayers, /datum/admins/proc/toggleooc, /*toggles ooc on/off for everyone*/ + /datum/admins/proc/toggledevooc, + /datum/admins/proc/togglemodooc, /datum/admins/proc/togglelooc, + /datum/admins/proc/togglemodlooc, + /datum/admins/proc/toggledevlooc, /datum/admins/proc/toggleoocdead, /*toggles ooc on/off for everyone who is dead*/ /datum/admins/proc/toggledsay, /*toggles dsay on/off for everyone*/ /client/proc/game_panel, /*game panel, allows to change game-mode etc*/ From ef63e5e8a7bc5ebd921138890cc7b1708dd46eb7 Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Fri, 31 Oct 2014 23:49:41 +0000 Subject: [PATCH 30/39] BST things --- code/modules/aurora/bluespacetech.dm | 40 +++++++++++++++++++--------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/code/modules/aurora/bluespacetech.dm b/code/modules/aurora/bluespacetech.dm index e0054bdf..e39ccc3a 100644 --- a/code/modules/aurora/bluespacetech.dm +++ b/code/modules/aurora/bluespacetech.dm @@ -125,21 +125,22 @@ spawn(5) del(s) if(species.name != "Tajaran") - if(species.name == "Machine") + if(species.name == "Machine" && key) h_style = "blue IPC screen" regenerate_icons() - var/mob/dead/observer/ghost = new(src) //Transfer safety to observer spawning proc. - ghost.key = key - if(species.name == "Machine") - ghost.mind.name = "Bluespace Bot" - ghost.name = "Bluespace Bot" - ghost.real_name = "Bluespace Bot" - ghost.voice_name = "Bluespace Bot" - else - ghost.mind.name = "[ghost.key] BSTech" - ghost.name = "[ghost.key] BSTech" - ghost.real_name = "[ghost.key] BSTech" - ghost.voice_name = "[ghost.key] BSTech" + if(key) + var/mob/dead/observer/ghost = new(src) //Transfer safety to observer spawning proc. + ghost.key = key + if(species.name == "Machine") + ghost.mind.name = "Bluespace Bot" + ghost.name = "Bluespace Bot" + ghost.real_name = "Bluespace Bot" + ghost.voice_name = "Bluespace Bot" + else + ghost.mind.name = "[ghost.key] BSTech" + ghost.name = "[ghost.key] BSTech" + ghost.real_name = "[ghost.key] BSTech" + ghost.voice_name = "[ghost.key] BSTech" del(src) proc/bsc(var/kill = 0) //because we all have our unrealistic snowflakes right? @@ -155,6 +156,19 @@ key = null suicide() + proc/bsb(var/kill = 0) + if(set_species("Machine")) + h_style = "blue IPC screen" + name = "Bluespace Bot" + voice_name = "Bluespace Bot" + real_name = "Bluespace Bot" + mind.name = "Bluespace Bot" + regenerate_icons() + else + ghostize(0) + key = null + suicide() + say(var/message) var/verb = "says in a subdued tone" ..(message, verb) From 2adf3bb652c85a5c96822ee44bfbcf4e9c6ba8cf Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Sat, 1 Nov 2014 09:45:42 +0000 Subject: [PATCH 31/39] BST gang Sod it one for each race --- code/modules/aurora/bluespacetech.dm | 78 ++++++++++++++++++++++++---- 1 file changed, 67 insertions(+), 11 deletions(-) diff --git a/code/modules/aurora/bluespacetech.dm b/code/modules/aurora/bluespacetech.dm index e39ccc3a..03356b8b 100644 --- a/code/modules/aurora/bluespacetech.dm +++ b/code/modules/aurora/bluespacetech.dm @@ -102,6 +102,7 @@ spawn(10) del(s) log_debug("Bluespace Tech Spawned: X:[bst.x] Y:[bst.y] Z:[bst.z] User:[src]") + feedback_add_details("admin_verb","BST") return 1 @@ -124,26 +125,43 @@ s.start() spawn(5) del(s) - if(species.name != "Tajaran") + + if(key && species.name != "Human") + switch(species.name) + if("Tajaran") + bsc() + if("Machine") + bsb() + if("Diona") + bsd() + if("Unathi") + bsu() + if("Skrell") + bss() + +/* if(species.name != "Tajaran") if(species.name == "Machine" && key) h_style = "blue IPC screen" regenerate_icons() - if(key) - var/mob/dead/observer/ghost = new(src) //Transfer safety to observer spawning proc. - ghost.key = key - if(species.name == "Machine") +*/ + if(key) + var/mob/dead/observer/ghost = new(src) //Transfer safety to observer spawning proc. + ghost.key = key +/* if(species.name == "Machine") ghost.mind.name = "Bluespace Bot" ghost.name = "Bluespace Bot" ghost.real_name = "Bluespace Bot" ghost.voice_name = "Bluespace Bot" else - ghost.mind.name = "[ghost.key] BSTech" - ghost.name = "[ghost.key] BSTech" - ghost.real_name = "[ghost.key] BSTech" - ghost.voice_name = "[ghost.key] BSTech" +*/ + ghost.mind.name = "[ghost.key] BSTech" + ghost.name = "[ghost.key] BSTech" + ghost.real_name = "[ghost.key] BSTech" + ghost.voice_name = "[ghost.key] BSTech" + del(src) - proc/bsc(var/kill = 0) //because we all have our unrealistic snowflakes right? + proc/bsc() //because we all have our unrealistic snowflakes right? if(set_species("Tajaran")) h_style = "Tajaran Ears" name = "Bluespace Cat" @@ -156,7 +174,7 @@ key = null suicide() - proc/bsb(var/kill = 0) + proc/bsb() if(set_species("Machine")) h_style = "blue IPC screen" name = "Bluespace Bot" @@ -169,6 +187,44 @@ key = null suicide() + proc/bsd() + if(set_species("Diona")) + name = "Bluespace Tree" + voice_name = "Bluespace Tree" + real_name = "Bluespace Tree" + mind.name = "Bluespace Tree" + regenerate_icons() + else + ghostize(0) + key = null + suicide() + + proc/bsu() + if(set_species("Unathi")) + h_style = "Unathi Horns" + name = "Bluespace Snake" + voice_name = "Bluespace Snake" + real_name = "Bluespace Snake" + mind.name = "Bluespace Snake" + regenerate_icons() + else + ghostize(0) + key = null + suicide() + + proc/bss() + if(set_species("Skrell")) + h_style = "Skrell Male Tentacles" + name = "Bluespace Squid" + voice_name = "Bluespace Squid" + real_name = "Bluespace Squid" + mind.name = "Bluespace Squid" + regenerate_icons() + else + ghostize(0) + key = null + suicide() + say(var/message) var/verb = "says in a subdued tone" ..(message, verb) From 79f3b501c75b170fb4877490ffee651754be9918 Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Sat, 1 Nov 2014 10:55:59 +0000 Subject: [PATCH 32/39] More noticeable log --- code/game/objects/items/devices/transfer_valve.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm index 7c7a7153..468d7730 100644 --- a/code/game/objects/items/devices/transfer_valve.dm +++ b/code/game/objects/items/devices/transfer_valve.dm @@ -51,8 +51,8 @@ A.toggle_secure() //this calls update_icon(), which calls update_icon() on the holder (i.e. the bomb). bombers += "[key_name(user)] attached a [item] to a transfer valve." - message_admins("[key_name_admin(user)] attached a [item] to a transfer valve.") - message_mods("[key_name_admin(user)] attached a [item] to a transfer valve.") + message_admins("[key_name_admin(user)] attached a [item] to a transfer valve.") + message_mods("[key_name_admin(user)] attached a [item] to a transfer valve.") log_game("[key_name_admin(user)] attached a [item] to a transfer valve.") attacher = user nanomanager.update_uis(src) // update all UIs attached to src From 86e6adbcf24d9ed8fa86ba62be8abf7fed9fb26f Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Sun, 2 Nov 2014 13:53:53 +0000 Subject: [PATCH 33/39] IP Banning Yeah test --- code/controllers/configuration.dm | 1 + code/modules/admin/IsBanned.dm | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index 41ec3faf..93ac4ecd 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -63,6 +63,7 @@ var/kick_inactive = 0 //force disconnect for inactive players var/load_jobs_from_txt = 0 var/ToRban = 0 + var/ip_blacklist_enabled = 0 var/automute_on = 0 //enables automuting/spam prevention var/jobs_have_minimal_access = 1 //determines whether jobs use minimal access or expanded access. diff --git a/code/modules/admin/IsBanned.dm b/code/modules/admin/IsBanned.dm index 9548c279..99d41513 100644 --- a/code/modules/admin/IsBanned.dm +++ b/code/modules/admin/IsBanned.dm @@ -17,6 +17,27 @@ world/IsBanned(key,address,computer_id) AddBan(ckey(key), computer_id, "Use of ToR", "Automated Ban", 0, 0) return list("reason"="Using ToR", "desc"="\nReason: The network you are using to connect has been banned.\nIf you believe this is a mistake, please request help at [config.banappeals]") + if(config && config.ip_blacklist_enabled) + testing("Loading Blacklist") + var/text = file2text("data/ip_blacklist.txt") + if (!text) + error("Failed to load data/ip_blacklist.txt") + else + var/list/lines = text2list(text, "\n") + for(var/line in lines) + if (!line) + continue + + if (copytext(line, 1, 2) == ";") + continue + + var/banned_address = copytext(line, 1, length(line)+1) + testing("Blacklist: address:[address] - banned_address:[banned_address]") + if(banned_address == address) + log_access("Failed Login: [src] - Blacklisted IP (ToR)") + message_admins("\blue Failed Login: [src] - Blacklisted IP (ToR)") + AddBan(ckey(key), computer_id, "Use of ToR", "Automated Ban", 0, 0) + return list("reason"="IP Blacklisted", "desc"="\nReason: This IP has been blacklisted from the server.\nIf you believe this is a mistake, please request help at [config.banappeals]") if(config.ban_legacy_system) From 232de5f9b2ba63f08fc8e96bbb5af7f4b64e0a05 Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Sun, 2 Nov 2014 14:21:06 +0000 Subject: [PATCH 34/39] Defusing Now without runtimes --- code/modules/reagents/reagent_dispenser.dm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index a43e0f9c..a89d9191 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -152,12 +152,14 @@ /obj/structure/reagent_dispensers/fueltank/attack_ghost(mob/user as mob) if(user.client && user.client.inquisitive_ghost) examine() - if(!src.defuse && user.client.holder) + if(!user.client.holder) + return + if(!src.defuse && ((user.client.holder.rights & R_ADMIN) || (user.client.holder.rights & R_MOD))) src.defuse = 1 message_admins("[key_name_admin(user)] defused fueltank at ([loc.x],[loc.y],[loc.z]).") message_mods("[key_name_admin(user)] defused fueltank at ([loc.x],[loc.y],[loc.z]).") else - if(!src.armed && user.client.holder) + if(!src.armed && ((user.client.holder.rights & R_ADMIN) || (user.client.holder.rights & R_MOD))) src.defuse = 0 message_admins("[key_name_admin(user)] reset fuse on fueltank at ([loc.x],[loc.y],[loc.z]).") message_mods("[key_name_admin(user)] reset fuse on fueltank at ([loc.x],[loc.y],[loc.z]).") From e80e46ac8b21d0511ecc77e04320d2100d65d346 Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Tue, 4 Nov 2014 10:33:22 +0000 Subject: [PATCH 35/39] More restriced job stuffs Bugs --- code/game/gamemodes/autotraitor/autotraitor.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/game/gamemodes/autotraitor/autotraitor.dm b/code/game/gamemodes/autotraitor/autotraitor.dm index f344e144..ed49a995 100644 --- a/code/game/gamemodes/autotraitor/autotraitor.dm +++ b/code/game/gamemodes/autotraitor/autotraitor.dm @@ -209,6 +209,7 @@ //var/r = rand(5) //var/target_traitors = 1 + var/max_traitors = 2 var/traitor_prob = 0 max_traitors = round(playercount / 10) + 1 @@ -222,6 +223,9 @@ //message_admins("Number of Traitors is below maximum. Rolling for New Arrival Traitor.") //message_admins("The probability of a new traitor is [traitor_prob]%") if(prob(traitor_prob)) + if(character.mind.assigned_role in restricted_jobs) + msg_scopes("Retricted job almost made a bad guy") + return message_admins("New traitor roll passed. Making a new Traitor.") if (!config.objectives_disabled) forge_traitor_objectives(character.mind) From e36f82182486735eaad6e5e76bb258c0199ab504 Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Tue, 4 Nov 2014 14:35:00 +0000 Subject: [PATCH 36/39] Weapon Lockbox --- code/game/objects/items/weapons/storage/lockbox.dm | 12 +++++++++++- code/modules/research/designs.dm | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/weapons/storage/lockbox.dm b/code/game/objects/items/weapons/storage/lockbox.dm index 61d791ac..4082dacf 100644 --- a/code/game/objects/items/weapons/storage/lockbox.dm +++ b/code/game/objects/items/weapons/storage/lockbox.dm @@ -100,4 +100,14 @@ new /obj/item/weapon/implantcase/loyalty(src) new /obj/item/weapon/implanter/loyalty(src) new /obj/item/clothing/tie/holster/waist(src) - new /obj/item/weapon/gun/energy/gun/pistol(src) \ No newline at end of file + new /obj/item/weapon/gun/energy/gun/pistol(src) + +/obj/item/weapon/storage/lockbox/lawgiver + name = "Weapons lockbox" + desc = "A high security weapons lockbox" + req_access = list(access_armory) + storage_slots = 1 + + New() + ..() + new /obj/item/weapon/gun/energy/lawgiver(src) \ No newline at end of file diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index 198ec3a1..970f7763 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -1663,7 +1663,7 @@ datum/design/lawgiver req_tech = list("combat" = 6, "plasmatech" = 4, "bluespace" = 5, "materials" = 7) build_type = PROTOLATHE materials = list("$metal" = 6000, "$glass" = 1000, "$uranium" = 1000, "$plasma" = 1000, "$diamond" = 3000) - build_path = "/obj/item/weapon/gun/energy/lawgiver" + build_path = "/obj/item/weapon/storage/lockbox/lawgiver" datum/design/bprotopistol name = "Basic Protopistol" From 0bf39fc44d8386bb232df4bbeb57c6b234cea3d6 Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Tue, 4 Nov 2014 14:51:32 +0000 Subject: [PATCH 37/39] Display name --- code/modules/projectiles/guns/energy/lawgiver.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/projectiles/guns/energy/lawgiver.dm b/code/modules/projectiles/guns/energy/lawgiver.dm index 95dcf444..75a6f69e 100644 --- a/code/modules/projectiles/guns/energy/lawgiver.dm +++ b/code/modules/projectiles/guns/energy/lawgiver.dm @@ -24,6 +24,7 @@ else src.dna = user.dna.unique_enzymes user << "\blue You feel your palm heat up as the gun reads your DNA profile." + desc += "
      Linked to: [user.real_name]" Fire(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, params, reflex = 0) if(src.dna != user.dna.unique_enzymes) From 4cfd185ee3d9870148bfb89f2efc5208c04bcb9d Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Tue, 4 Nov 2014 19:19:04 +0000 Subject: [PATCH 38/39] Actually --- code/modules/admin/IsBanned.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/admin/IsBanned.dm b/code/modules/admin/IsBanned.dm index 99d41513..164db030 100644 --- a/code/modules/admin/IsBanned.dm +++ b/code/modules/admin/IsBanned.dm @@ -34,9 +34,9 @@ world/IsBanned(key,address,computer_id) var/banned_address = copytext(line, 1, length(line)+1) testing("Blacklist: address:[address] - banned_address:[banned_address]") if(banned_address == address) - log_access("Failed Login: [src] - Blacklisted IP (ToR)") - message_admins("\blue Failed Login: [src] - Blacklisted IP (ToR)") - AddBan(ckey(key), computer_id, "Use of ToR", "Automated Ban", 0, 0) + log_access("Failed Login: [src] - Blacklisted IP") + message_admins("\blue Failed Login: [src] - Blacklisted IP") + AddBan(ckey(key), computer_id, "Bad IP", "Automated Ban", 0, 0) return list("reason"="IP Blacklisted", "desc"="\nReason: This IP has been blacklisted from the server.\nIf you believe this is a mistake, please request help at [config.banappeals]") if(config.ban_legacy_system) From 3944ec5f5dbc67ae8956e1c83ef6b10c060c7295 Mon Sep 17 00:00:00 2001 From: SoundScopes Date: Tue, 4 Nov 2014 19:19:16 +0000 Subject: [PATCH 39/39] Changelog --- html/changelog.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/html/changelog.html b/html/changelog.html index 44b7b0ad..ebe6cc0f 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -57,13 +57,16 @@ should be listed in the changelog upon commit though. Thanks. -->
      -

      30 October 2014

      +

      4 November 2014

      updated:

      • AI inbuilt radio
      • Maintanence Drones can crawl through vents
      • Substitute milk - 1 water, 2 cream
      • Supply pack - Candlepack Crate
      • +
      • Autotraitor - tweaks
      • +
      • Lawgiver now spawns in a lockbox when created in R&D
      • +
      • Lawgiver now mentions who's DNA it's locked to.
      • Moderators and Developers OOC color swapped to make Mods stand out more than Devs
      • Watches can get effected by EMP blasts
      • New Machine code