From eb55fb2da2d4224f0470b7496b8310bdb7b871e9 Mon Sep 17 00:00:00 2001 From: Segrain Date: Mon, 12 Aug 2013 05:30:39 +0300 Subject: [PATCH 01/22] Revive fix. --- baystation12.dme | 8 ++++---- code/modules/mob/living/carbon/human/human.dm | 5 +++++ code/modules/mob/living/living.dm | 9 --------- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/baystation12.dme b/baystation12.dme index 8b4d64ba6ff..5a034ff343b 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -784,10 +784,10 @@ #include "code\modules\customitems\item_defines.dm" #include "code\modules\customitems\item_spawning.dm" #include "code\modules\destilery\main.dm" -#include "code\modules\detectivework\detective_work.dm" -#include "code\modules\detectivework\evidence.dm" -#include "code\modules\detectivework\footprints_and_rag.dm" -#include "code\modules\detectivework\scanner.dm" +#include "code\modules\DetectiveWork\detective_work.dm" +#include "code\modules\DetectiveWork\evidence.dm" +#include "code\modules\DetectiveWork\footprints_and_rag.dm" +#include "code\modules\DetectiveWork\scanner.dm" #include "code\modules\events\alien_infestation.dm" #include "code\modules\events\blob.dm" #include "code\modules\events\brand_intelligence.dm" diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 7c394844d5e..d51e1316da5 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1028,6 +1028,7 @@ if (!O.amputated) O.status &= ~ORGAN_DESTROYED O.wounds.Cut() + O.heal_damage(1000,1000,1,1) var/datum/organ/external/head/h = organs_by_name["head"] h.disfigured = 0 @@ -1047,6 +1048,10 @@ for (var/datum/disease/virus in viruses) virus.cure() + for (var/ID in virus2) + var/datum/disease2/disease/V = virus2[ID] + V.cure(src) + ..() /mob/living/carbon/human/proc/is_lung_ruptured() diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 245a372d2a0..162a69b49c7 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -269,15 +269,6 @@ if(iscarbon(src)) var/mob/living/carbon/C = src C.handcuffed = initial(C.handcuffed) - if(ishuman(src)) - var/mob/living/carbon/human/H = src - for(var/datum/organ/external/O in H.organs) - O.heal_damage(1000,1000,1,1) - for(var/datum/organ/internal/I in H.internal_organs) - I.damage = 0 - for (var/ID in H.virus2) - var/datum/disease2/disease/V = H.virus2[ID] - V.cure(src) for(var/datum/disease/D in viruses) D.cure(0) if(stat == 2) From 6281c11f223fc6b79e6a7352dc773c93f2425270 Mon Sep 17 00:00:00 2001 From: Erthilo Date: Mon, 12 Aug 2013 12:33:02 +0100 Subject: [PATCH 02/22] Advmedkit now has green cross. Hime cut looks less derp from the side. --- icons/mob/human_face.dmi | Bin 38469 -> 38455 bytes icons/obj/storage.dmi | Bin 54579 -> 54590 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi index c6bf1e373e222a1ed2ed76e8bb09c04cd161d7a4..169f3c49f162bf78c5a2d8bb89507500736ffb5a 100644 GIT binary patch literal 38455 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 diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index ec08cf37e78e8c6ea295046a4bcbbc699990ceb6..253cf851a833a50a38dad32d623c81e5a24cb0fb 100644 GIT binary patch delta 13514 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 Date: Mon, 12 Aug 2013 12:34:13 +0100 Subject: [PATCH 03/22] Adds explosive implant admin messages, and jump button for explosions. --- code/WorkInProgress/carn/Explosion2.dm | 2 +- code/game/objects/explosion.dm | 8 ++++---- code/game/objects/items/weapons/implants/implant.dm | 7 ++++++- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/code/WorkInProgress/carn/Explosion2.dm b/code/WorkInProgress/carn/Explosion2.dm index a1f2687cc85..06b85690024 100644 --- a/code/WorkInProgress/carn/Explosion2.dm +++ b/code/WorkInProgress/carn/Explosion2.dm @@ -9,7 +9,7 @@ proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impa if(!epicenter) return if(adminlog) - message_admins("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range]) in area [epicenter.loc.name] ") + message_admins("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range]) in area [epicenter.loc.name] ([epicenter.x],[epicenter.y],[epicenter.z] - JMP)") log_game("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range]) in area [epicenter.loc.name] ") playsound(epicenter, 'sound/effects/explosionfar.ogg', 100, 1, round(devastation_range*2,1) ) diff --git a/code/game/objects/explosion.dm b/code/game/objects/explosion.dm index 91ea8124393..cc4d766f25a 100644 --- a/code/game/objects/explosion.dm +++ b/code/game/objects/explosion.dm @@ -19,10 +19,10 @@ proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impa epicenter = get_turf(epicenter) if(!epicenter) return - + playsound(epicenter, 'sound/effects/explosionfar.ogg', 100, 1, round(devastation_range*2,1) ) playsound(epicenter, "explosion", 100, 1, round(devastation_range,1) ) - + var/close = range(world.view+round(devastation_range,1), epicenter) // to all distanced mobs play a different sound for(var/mob/M in world) if(M.z == epicenter.z) if(!(M in close)) @@ -30,7 +30,7 @@ proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impa if(M.ear_deaf <= 0 || !M.ear_deaf) if(!istype(M.loc,/turf/space)) M << 'explosionfar.ogg' if(adminlog) - message_admins("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range]) in area [epicenter.loc.name] ([epicenter.x],[epicenter.y],[epicenter.z])") + message_admins("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range]) in area [epicenter.loc.name] ([epicenter.x],[epicenter.y],[epicenter.z]) (JMP)") log_game("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range]) in area [epicenter.loc.name] ") var/lighting_controller_was_processing = lighting_controller.processing //Pause the lighting updates for a bit @@ -85,4 +85,4 @@ proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impa proc/secondaryexplosion(turf/epicenter, range) for(var/turf/tile in range(range, epicenter)) - tile.ex_act(2) + tile.ex_act(2) diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm index 38d07024feb..a6c3b2fede4 100644 --- a/code/game/objects/items/weapons/implants/implant.dm +++ b/code/game/objects/items/weapons/implants/implant.dm @@ -159,9 +159,14 @@ Implant Specifics:
"} return if(istype(imp_in, /mob/)) var/mob/T = imp_in + + message_admins("Explosive implant triggered in [T] ([T.key]). (JMP) ") + log_game("Explosive implant triggered in [T] ([T.key]).") + T.gib() explosion(get_turf(imp_in), 1, 3, 4, 6, 3) var/turf/t = get_turf(imp_in) + if(t) t.hotspot_expose(3500,125) @@ -464,4 +469,4 @@ the implant may become unstable and either pre-maturely inject the subject or si /obj/item/weapon/implant/cortical name = "cortical stack" - desc = "A fist-sized mass of biocircuits and chips." + desc = "A fist-sized mass of biocircuits and chips." From 04ba916a819918f80683ed17ac377e885b543a08 Mon Sep 17 00:00:00 2001 From: Erthilo Date: Mon, 12 Aug 2013 13:55:30 +0100 Subject: [PATCH 04/22] Fixes sink turning into an airlock in the kitchen. --- maps/tgstation.2.1.0.0.1.dmm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maps/tgstation.2.1.0.0.1.dmm b/maps/tgstation.2.1.0.0.1.dmm index 8b8b458a7f0..46c011d459d 100644 --- a/maps/tgstation.2.1.0.0.1.dmm +++ b/maps/tgstation.2.1.0.0.1.dmm @@ -2288,7 +2288,7 @@ "aRZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor/wood,/area/crew_quarters/bar) "aSa" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/crew_quarters/kitchen) "aSb" = (/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) -"aSc" = (/obj/machinery/door/airlock/maintenance,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) +"aSc" = (/obj/structure/sink/kitchen{pixel_y = 28},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) "aSd" = (/obj/machinery/vending/dinnerware,/obj/item/device/radio/intercom{pixel_y = 25},/obj/machinery/camera{c_tag = "Kitchen"; dir = 2},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "aSe" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) "aSf" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) From 59821a2174fef76a79dd9a5ad9ba36b2219b0085 Mon Sep 17 00:00:00 2001 From: Mloc Date: Mon, 12 Aug 2013 13:55:54 +0100 Subject: [PATCH 05/22] examples for fileList.txt --- maps/RandomZLevels/fileList.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/maps/RandomZLevels/fileList.txt b/maps/RandomZLevels/fileList.txt index 10fbb9562ff..007837dc532 100644 --- a/maps/RandomZLevels/fileList.txt +++ b/maps/RandomZLevels/fileList.txt @@ -2,3 +2,5 @@ #Maps must be the full path to them #Maps should be 255x255 or smaller and be bounded. Falling off the edge of the map will result in undefined behavior. #SPECIFYING AN INVALID MAP WILL RESULT IN RUNTIMES ON GAME START + +#maps/RandomZLevels/awaymission.dmm From 82a4dedf5d9c99f569926ef5c34c70e88e8f58ad Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Mon, 12 Aug 2013 21:17:38 -0700 Subject: [PATCH 06/22] Snowflake check for Soghun. FIX THE WHITELIST THING, HEAD. --- code/modules/client/preferences.dm | 2 +- code/modules/mob/new_player/new_player.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 92f30dc8f36..1809cfd205d 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -806,7 +806,7 @@ datum/preferences if(config.usealienwhitelist) //If we're using the whitelist, make sure to check it! for(var/S in whitelisted_species) - if(is_alien_whitelisted(user,S)) + if(is_alien_whitelisted(user,S) || (S == "Unathi" && is_alien_whitelisted(user,"Soghun"))) new_species += S whitelisted = 1 if(!whitelisted) diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 7bb662f91ea..ca9e3078246 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -351,7 +351,7 @@ if(client.prefs.species) chosen_species = all_species[client.prefs.species] if(chosen_species) - if(is_alien_whitelisted(src, client.prefs.species) || !config.usealienwhitelist || !(chosen_species.flags & WHITELISTED)) + if(is_alien_whitelisted(src, client.prefs.species) || (client.prefs.species == "Unathi" && is_alien_whitelisted(src, "Soghun")) || !config.usealienwhitelist || !(chosen_species.flags & WHITELISTED)) new_character.set_species(client.prefs.species) if(chosen_species.language) new_character.add_language(chosen_species.language) From 5476ae192d77f61b188262b3998464b0d9dc7c67 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Mon, 12 Aug 2013 22:44:57 -0700 Subject: [PATCH 07/22] Attempting to reduce incidence of clickspam against mobs. --- code/game/gamemodes/events/biomass.dm | 3 +++ code/modules/mob/living/carbon/carbon.dm | 6 ++++++ code/modules/mob/living/carbon/monkey/monkey.dm | 2 ++ code/modules/mob/mob.dm | 3 ++- 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/code/game/gamemodes/events/biomass.dm b/code/game/gamemodes/events/biomass.dm index d1508221f7c..7bc6cf92568 100644 --- a/code/game/gamemodes/events/biomass.dm +++ b/code/game/gamemodes/events/biomass.dm @@ -22,6 +22,9 @@ /obj/effect/biomass/attackby(obj/item/weapon/W as obj, mob/user as mob) if (!W || !user || !W.type) return + + user.delay_click(10) + switch(W.type) if(/obj/item/weapon/circular_saw) del src if(/obj/item/weapon/kitchen/utensil/knife) del src diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 061f06fe7d8..2347ca6b23c 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -49,7 +49,11 @@ . = ..() /mob/living/carbon/attack_hand(mob/M as mob) + if(!istype(M, /mob/living/carbon)) return + + M.delay_click(10) + if (hasorgans(M)) var/datum/organ/external/temp = M:organs_by_name["r_hand"] if (M.hand) @@ -76,6 +80,8 @@ /mob/living/carbon/attack_paw(mob/M as mob) if(!istype(M, /mob/living/carbon)) return + M.delay_click(10) + for(var/datum/disease/D in viruses) if(D.spread_by_touch()) diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index a073dfa10d5..add85c9d034 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -217,6 +217,8 @@ M << "No attacking people at spawn, you jackass." return + M.delay_click(10) + if(M.gloves && istype(M.gloves,/obj/item/clothing/gloves)) var/obj/item/clothing/gloves/G = M.gloves if(G.cell) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 3600b8b0f7b..9801ea9f6c5 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -83,6 +83,7 @@ //This is awful /mob/attackby(obj/item/weapon/W as obj, mob/user as mob) + user.delay_click(10) //Holding a balloon will shield you from an item that is_sharp() ... cause that makes sense if (user.intent != "harm") if (istype(src.l_hand,/obj/item/latexballon) && src.l_hand:air_contents && is_sharp(W)) @@ -960,4 +961,4 @@ mob/verb/yank_out_object() pinned -= O if(!pinned.len) anchored = 0 - return 1 + return 1 From 44aa77f7de17cefb37cf35553b2c0e950d979ad2 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Mon, 12 Aug 2013 22:51:27 -0700 Subject: [PATCH 08/22] Adds a delay to the RCD when building. --- code/game/objects/items/weapons/RCD.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/game/objects/items/weapons/RCD.dm b/code/game/objects/items/weapons/RCD.dm index a80a892af6f..6308189d8c2 100644 --- a/code/game/objects/items/weapons/RCD.dm +++ b/code/game/objects/items/weapons/RCD.dm @@ -86,6 +86,8 @@ RCD if(!(istype(A, /turf) || istype(A, /obj/machinery/door/airlock))) return 0 + user.delay_click(10) + switch(mode) if(1) if(istype(A, /turf/space)) From 4874d5691bbd551f95eca725671f376354551439 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Tue, 13 Aug 2013 00:00:34 -0700 Subject: [PATCH 09/22] Removes multicultural mrowling Vox from Heist. --- code/game/gamemodes/heist/heist.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/gamemodes/heist/heist.dm b/code/game/gamemodes/heist/heist.dm index 5a1e12a191b..c9cee00fbf5 100644 --- a/code/game/gamemodes/heist/heist.dm +++ b/code/game/gamemodes/heist/heist.dm @@ -102,6 +102,7 @@ var/global/vox_kills = 0 //Used to check the Inviolate. vox.age = rand(12,20) vox.dna.mutantrace = "vox" vox.set_species("Vox") + vox.languages = list() // Removing language from chargen. vox.add_language("Vox-pidgin") vox.h_style = "Short Vox Quills" vox.flavor_text = "" From bed45dd86405325d14fe2a2c8bac973712b58cde Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Tue, 13 Aug 2013 00:03:14 -0700 Subject: [PATCH 10/22] Removes Vox flavour text carried over from chargen. --- code/game/gamemodes/heist/heist.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/gamemodes/heist/heist.dm b/code/game/gamemodes/heist/heist.dm index c9cee00fbf5..4e269152ff9 100644 --- a/code/game/gamemodes/heist/heist.dm +++ b/code/game/gamemodes/heist/heist.dm @@ -103,6 +103,7 @@ var/global/vox_kills = 0 //Used to check the Inviolate. vox.dna.mutantrace = "vox" vox.set_species("Vox") vox.languages = list() // Removing language from chargen. + vox.flavor_text = "" vox.add_language("Vox-pidgin") vox.h_style = "Short Vox Quills" vox.flavor_text = "" From 1228ba8a2558980fe89858f0d66ede6b3ac63bbd Mon Sep 17 00:00:00 2001 From: Erthilo Date: Mon, 12 Aug 2013 21:17:16 +0100 Subject: [PATCH 11/22] Allows autoinjectors to be refilled. --- code/modules/reagents/reagent_containers/hypospray.dm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index a70ba4ab8ea..f14712865aa 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -68,11 +68,17 @@ /obj/item/weapon/reagent_containers/hypospray/autoinjector/attack(mob/M as mob, mob/user as mob) ..() - if(reagents.total_volume <= 0) +/*if(reagents.total_volume <= 0) //Prevents autoinjectors to be refilled. flags &= ~OPENCONTAINER +*/ update_icon() return +/obj/item/weapon/reagent_containers/hypospray/autoinjector/attackby(obj/item/I as obj, mob/user as mob) + ..() + update_icon() //Allows the autoinjector to be reset. + return + /obj/item/weapon/reagent_containers/hypospray/autoinjector/update_icon() if(reagents.total_volume > 0) icon_state = "[initial(icon_state)]1" From 254cef453a84c3145a6b418ede0b2130cd085854 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Tue, 13 Aug 2013 14:16:07 -0700 Subject: [PATCH 12/22] Added a preferences switch for diona. --- code/game/machinery/podmen.dm | 6 ++++-- code/modules/client/preferences.dm | 1 + code/setup.dm | 4 +++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/code/game/machinery/podmen.dm b/code/game/machinery/podmen.dm index 1e8eb4e5368..e9a1d50ff6a 100644 --- a/code/game/machinery/podmen.dm +++ b/code/game/machinery/podmen.dm @@ -74,10 +74,12 @@ Growing it to term with nothing injected will grab a ghost from the observers. * ghost = source else // If no sample was injected or revival is not allowed, we grab an interested observer. for(var/mob/dead/observer/O in player_list) - if(O.client) - var/response = alert(O, "Someone is harvesting a replica pod. Would you like to play as a Dionaea?", "Replica pod harvest", "Yes", "No") + if(O.client && O.client.prefs.be_special & BE_PLANT) + var/response = alert(O, "Someone is harvesting a replica pod. Would you like to play as a Dionaea?", "Replica pod harvest", "Yes", "No", "Never for this round.") if(response == "Yes") candidates += O + else if(response == "Never for this round") + O.client.prefs.be_special ^= BE_PLANT if(!do_after(user, 100)) return diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 1809cfd205d..8e977bbc7d1 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -16,6 +16,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set "infested monkey" = IS_MODE_COMPILED("monkey"), // 9 "ninja" = "true", // 10 "vox raider" = IS_MODE_COMPILED("heist"), // 11 + "diona" = 1, // 12 ) var/const/MAX_SAVE_SLOTS = 10 diff --git a/code/setup.dm b/code/setup.dm index 7e6f0cb7a98..e4beb3781df 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -641,6 +641,7 @@ var/list/TAGGERLOCATIONS = list("Disposals", #define BE_MONKEY 512 #define BE_NINJA 1024 #define BE_RAIDER 2048 +#define BE_PLANT 4096 var/list/be_special_flags = list( "Traitor" = BE_TRAITOR, @@ -654,7 +655,8 @@ var/list/be_special_flags = list( "Cultist" = BE_CULTIST, "Monkey" = BE_MONKEY, "Ninja" = BE_NINJA, - "Raider" = BE_RAIDER + "Raider" = BE_RAIDER, + "Diona" = BE_PLANT ) #define AGE_MIN 17 //youngest a character can be From b131d227175dc650ae5abe8fb4ad8f4be88ca9ac Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Tue, 13 Aug 2013 14:26:39 -0700 Subject: [PATCH 13/22] Fixes Check Antagonists for Heist mode. --- code/modules/admin/player_panel.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm index 44f1cfdd820..ecadd49d498 100644 --- a/code/modules/admin/player_panel.dm +++ b/code/modules/admin/player_panel.dm @@ -470,12 +470,15 @@ dat += "" if(ticker.mode.raiders.len > 0) + dat += "
" for(var/datum/mind/raider in ticker.mode.raiders) var/mob/M = raider.current if(M) dat += "" dat += "" dat += "" + dat += "
Wizards
[M.real_name][M.client ? "" : " (logged out)"][M.stat == 2 ? " (DEAD)" : ""]PMShow Objective
" + /* if(ticker.mode.ninjas.len > 0) dat += "
" From 86c66ebcd47e7ed6275e668341758d6906981bfa Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Tue, 13 Aug 2013 14:51:39 -0700 Subject: [PATCH 14/22] Possible fix to weird podman behavior. --- code/game/machinery/podmen.dm | 3 --- 1 file changed, 3 deletions(-) diff --git a/code/game/machinery/podmen.dm b/code/game/machinery/podmen.dm index e9a1d50ff6a..730f69e6643 100644 --- a/code/game/machinery/podmen.dm +++ b/code/game/machinery/podmen.dm @@ -84,9 +84,6 @@ Growing it to term with nothing injected will grab a ghost from the observers. * if(!do_after(user, 100)) return - if(!src || !user) - return - if(candidates.len) ghost = pick(candidates) From 4f3f3d6eff1bee4974adba8f5b9f56cc94c437b6 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Tue, 13 Aug 2013 14:55:29 -0700 Subject: [PATCH 15/22] Added vent crawl, hiding and table passing to brain slugs. --- .../modules/mob/living/simple_animal/borer.dm | 74 ++++++++++++++++++- 1 file changed, 73 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/borer.dm b/code/modules/mob/living/simple_animal/borer.dm index 647f9318afa..d2689de7d8b 100644 --- a/code/modules/mob/living/simple_animal/borer.dm +++ b/code/modules/mob/living/simple_animal/borer.dm @@ -38,6 +38,7 @@ attacktext = "nips" friendly = "prods" wander = 0 + pass_flags = PASSTABLE var/chemicals = 10 // Chemicals used for reproduction and spitting neurotoxin. var/mob/living/carbon/human/host // Human host for the brain worm. @@ -269,4 +270,75 @@ mob/living/simple_animal/borer/proc/detatch() return else src << "They are no longer in range!" - return \ No newline at end of file + return + +/mob/living/simple_animal/borer/Stat() + ..() + statpanel("Status") + + if(emergency_shuttle) + if(emergency_shuttle.online && emergency_shuttle.location < 2) + var/timeleft = emergency_shuttle.timeleft() + if (timeleft) + stat(null, "ETA-[(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]") + + if (client.statpanel == "Status") + stat("Chemicals", chemicals) + +/mob/living/simple_animal/borer/verb/ventcrawl() + set name = "Crawl through Vent" + set desc = "Enter an air vent and crawl through the pipe system." + set category = "Alien" + +// if(!istype(V,/obj/machinery/atmoalter/siphs/fullairsiphon/air_vent)) +// return + var/obj/machinery/atmospherics/unary/vent_pump/vent_found + var/welded = 0 + for(var/obj/machinery/atmospherics/unary/vent_pump/v in range(1,src)) + if(!v.welded) + vent_found = v + break + else + welded = 1 + if(vent_found) + if(vent_found.network&&vent_found.network.normal_members.len) + var/list/vents = list() + for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in vent_found.network.normal_members) + if(temp_vent.loc == loc) + continue + vents.Add(temp_vent) + var/list/choices = list() + for(var/obj/machinery/atmospherics/unary/vent_pump/vent in vents) + if(vent.loc.z != loc.z) + continue + var/atom/a = get_turf(vent) + choices.Add(a.loc) + var/turf/startloc = loc + var/obj/selection = input("Select a destination.", "Duct System") in choices + var/selection_position = choices.Find(selection) + if(loc==startloc) + var/obj/target_vent = vents[selection_position] + if(target_vent) + loc = target_vent.loc + else + src << "\blue You need to remain still while entering a vent." + else + src << "\blue This vent is not connected to anything." + else if(welded) + src << "\red That vent is welded." + else + src << "\blue You must be standing on or beside an air vent to enter it." + return + +//copy paste from alien/larva, if that func is updated please update this one alsoghost +/mob/living/simple_animal/borer/verb/hide() + set name = "Hide" + set desc = "Allows to hide beneath tables or certain items. Toggled on or off." + set category = "Alien" + + if (layer != TURF_LAYER+0.2) + layer = TURF_LAYER+0.2 + src << text("\blue You are now hiding.") + else + layer = MOB_LAYER + src << text("\blue You have stopped hiding.") \ No newline at end of file From 98510b3b0102783b9e0d347df52e48ae0cab4168 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Tue, 13 Aug 2013 15:06:11 -0700 Subject: [PATCH 16/22] Added the ability for worms to secrete useful chemicals. --- .../modules/mob/living/simple_animal/borer.dm | 54 ++++++++++++++----- 1 file changed, 40 insertions(+), 14 deletions(-) diff --git a/code/modules/mob/living/simple_animal/borer.dm b/code/modules/mob/living/simple_animal/borer.dm index d2689de7d8b..b55faf7b98e 100644 --- a/code/modules/mob/living/simple_animal/borer.dm +++ b/code/modules/mob/living/simple_animal/borer.dm @@ -110,6 +110,21 @@ src << "You drop words into [host]'s mind: \"[message]\"" host << "Your own thoughts speak: \"[message]\"" +/mob/living/simple_animal/borer/Stat() + ..() + statpanel("Status") + + if(emergency_shuttle) + if(emergency_shuttle.online && emergency_shuttle.location < 2) + var/timeleft = emergency_shuttle.timeleft() + if (timeleft) + stat(null, "ETA-[(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]") + + if (client.statpanel == "Status") + stat("Chemicals", chemicals) + +// VERBS! + /mob/living/simple_animal/borer/proc/borer_speak(var/message) if(!message) return @@ -149,7 +164,31 @@ host.verbs += /mob/living/carbon/human/proc/punish_host host.verbs += /mob/living/carbon/human/proc/spawn_larvae -mob/living/simple_animal/borer/verb/release_host() +/mob/living/simple_animal/borer/verb/bond_brain() + set category = "Alien" + set name = "Secrete Chemicals" + set desc = "Push some chemicals into your host's bloodstream." + + if(!host) + src << "You are not inside a host body." + return + + if(stat) + src << "You cannot secrete chemicals in your current state." + + if(chemicals < 50) + src << "You don't have enough chemicals!" + + var/chem = input("Select a chemical to secrete.", "Chemicals") in list("bicaridine","tramadol","hyperzine") + + if(chemicals < 50 || !host || controlling || !src || stat) //Sanity check. + return + + src << "\red You squirt a measure of [chem] from your reservoirs into [host]'s bloodstream." + host.reagents.add_reagent(chem, 15) + chemicals -= 50 + +/mob/living/simple_animal/borer/verb/release_host() set category = "Alien" set name = "Release Host" set desc = "Slither out of your host." @@ -272,19 +311,6 @@ mob/living/simple_animal/borer/proc/detatch() src << "They are no longer in range!" return -/mob/living/simple_animal/borer/Stat() - ..() - statpanel("Status") - - if(emergency_shuttle) - if(emergency_shuttle.online && emergency_shuttle.location < 2) - var/timeleft = emergency_shuttle.timeleft() - if (timeleft) - stat(null, "ETA-[(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]") - - if (client.statpanel == "Status") - stat("Chemicals", chemicals) - /mob/living/simple_animal/borer/verb/ventcrawl() set name = "Crawl through Vent" set desc = "Enter an air vent and crawl through the pipe system." From b10fe26a9ee866d82cd818d974bd1ab239c72270 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Tue, 13 Aug 2013 15:18:45 -0700 Subject: [PATCH 17/22] Typo fix. --- code/modules/admin/player_panel.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm index ecadd49d498..1b55ca6b039 100644 --- a/code/modules/admin/player_panel.dm +++ b/code/modules/admin/player_panel.dm @@ -470,7 +470,7 @@ dat += "
Ninjas
" if(ticker.mode.raiders.len > 0) - dat += "
" + dat += "
Wizards
" for(var/datum/mind/raider in ticker.mode.raiders) var/mob/M = raider.current if(M) From b820ce2fe6a1ae5b1d9957556562cfceaa943b2e Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Tue, 13 Aug 2013 15:36:05 -0700 Subject: [PATCH 18/22] Compile fix. --- code/modules/mob/living/simple_animal/borer.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/borer.dm b/code/modules/mob/living/simple_animal/borer.dm index b55faf7b98e..4ea4a23553f 100644 --- a/code/modules/mob/living/simple_animal/borer.dm +++ b/code/modules/mob/living/simple_animal/borer.dm @@ -164,7 +164,7 @@ host.verbs += /mob/living/carbon/human/proc/punish_host host.verbs += /mob/living/carbon/human/proc/spawn_larvae -/mob/living/simple_animal/borer/verb/bond_brain() +/mob/living/simple_animal/borer/verb/secrete_chemicals() set category = "Alien" set name = "Secrete Chemicals" set desc = "Push some chemicals into your host's bloodstream." From ccb87c446ad53541f2e1d1cf1bba1ae1690456b6 Mon Sep 17 00:00:00 2001 From: Segrain Date: Tue, 13 Aug 2013 09:21:28 +0300 Subject: [PATCH 19/22] Vox beards. --- code/game/gamemodes/heist/heist.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/gamemodes/heist/heist.dm b/code/game/gamemodes/heist/heist.dm index 4e269152ff9..0f1fd97b36f 100644 --- a/code/game/gamemodes/heist/heist.dm +++ b/code/game/gamemodes/heist/heist.dm @@ -106,7 +106,7 @@ var/global/vox_kills = 0 //Used to check the Inviolate. vox.flavor_text = "" vox.add_language("Vox-pidgin") vox.h_style = "Short Vox Quills" - vox.flavor_text = "" + vox.f_style = "Shaved" for(var/datum/organ/external/limb in vox.organs) limb.status &= ~(ORGAN_DESTROYED | ORGAN_ROBOT) vox.equip_vox_raider() From 6122d50ce032dff3c311fad1e507a028e843c568 Mon Sep 17 00:00:00 2001 From: Segrain Date: Tue, 13 Aug 2013 09:25:28 +0300 Subject: [PATCH 20/22] Reverting to as advertised. --- .../modules/reagents/reagent_containers/hypospray.dm | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index f14712865aa..eba96d7bbe9 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -68,17 +68,11 @@ /obj/item/weapon/reagent_containers/hypospray/autoinjector/attack(mob/M as mob, mob/user as mob) ..() -/*if(reagents.total_volume <= 0) //Prevents autoinjectors to be refilled. +if(reagents.total_volume <= 0) //Prevents autoinjectors to be refilled. flags &= ~OPENCONTAINER -*/ update_icon() return -/obj/item/weapon/reagent_containers/hypospray/autoinjector/attackby(obj/item/I as obj, mob/user as mob) - ..() - update_icon() //Allows the autoinjector to be reset. - return - /obj/item/weapon/reagent_containers/hypospray/autoinjector/update_icon() if(reagents.total_volume > 0) icon_state = "[initial(icon_state)]1" @@ -90,6 +84,4 @@ if(reagents && reagents.reagent_list.len) usr << "\blue It is currently loaded." else - usr << "\blue It is spent." - - + usr << "\blue It is spent." \ No newline at end of file From 3ba5c3e450c30ce5a49188c96625503b8b00e124 Mon Sep 17 00:00:00 2001 From: Segrain Date: Tue, 13 Aug 2013 13:47:22 +0300 Subject: [PATCH 21/22] Compile fix. --- code/modules/reagents/reagent_containers/hypospray.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index eba96d7bbe9..0b4a3c1e7e9 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -68,7 +68,7 @@ /obj/item/weapon/reagent_containers/hypospray/autoinjector/attack(mob/M as mob, mob/user as mob) ..() -if(reagents.total_volume <= 0) //Prevents autoinjectors to be refilled. + if(reagents.total_volume <= 0) //Prevents autoinjectors to be refilled. flags &= ~OPENCONTAINER update_icon() return From 71bdaa16987e15d84c36faf658abb767f03d1052 Mon Sep 17 00:00:00 2001 From: Mloc-Argent Date: Tue, 13 Aug 2013 13:10:09 +0100 Subject: [PATCH 22/22] Fully reverts clickdelay change. It was immensely buggy with certain mobs, and server lag all but negated the benefits. Signed-off-by: Mloc-Argent --- code/game/atoms.dm | 21 ++++++++++--------- code/game/gamemodes/events/biomass.dm | 3 --- code/game/objects/items.dm | 8 +++---- code/game/objects/items/weapons/RCD.dm | 2 -- .../objects/items/weapons/extinguisher.dm | 6 ++++++ code/game/objects/structures/grille.dm | 6 ------ code/game/objects/structures/window.dm | 7 ------- code/modules/admin/verbs/diagnostics.dm | 3 +-- code/modules/mob/living/carbon/carbon.dm | 6 ------ code/modules/mob/living/carbon/human/human.dm | 4 ++-- .../living/carbon/human/human_attackhand.dm | 2 -- .../mob/living/carbon/monkey/monkey.dm | 2 -- code/modules/mob/login.dm | 2 +- code/modules/mob/mob.dm | 7 +++---- code/modules/mob/mob_defines.dm | 4 ++-- code/modules/mob/mob_grab.dm | 8 +++---- code/modules/mob/mob_helpers.dm | 4 ---- code/modules/mob/screen.dm | 12 +++++------ code/modules/projectiles/gun.dm | 2 +- 19 files changed, 40 insertions(+), 69 deletions(-) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index d160e662e84..784ba44c188 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -490,7 +490,7 @@ its easier to just keep the beam vertical. var/using_new_click_proc = 0 //TODO ERRORAGE (This is temporary, while the DblClickNew() proc is being tested) -/*/atom/proc/DblClickNew() +/atom/proc/DblClickNew() if(!usr) return // TODO DOOHL: Intergrate params to new proc. Saved for another time because var/valid_place is a fucking brainfuck @@ -792,7 +792,7 @@ var/using_new_click_proc = 0 //TODO ERRORAGE (This is temporary, while the DblCl if (in_range) if ( !animal.restrained() ) - attack_animal(animal)*/ + attack_animal(animal) /atom/DblClick(location, control, params) //TODO: DEFERRED: REWRITE if(!usr) return @@ -943,9 +943,9 @@ var/using_new_click_proc = 0 //TODO ERRORAGE (This is temporary, while the DblCl // ------- ( CAN USE ITEM OR HAS 1 SECOND USE DELAY ) AND NOT CLICKING ON SCREEN ------- - if (usr.last_click + usr.click_delay < world.time) - usr.last_click = world.time - usr.click_delay = 0 + if (usr.next_move < world.time) + usr.prev_move = usr.next_move + usr.next_move = world.time + 10 else // ------- ALREADY USED ONE ITEM WITH USE DELAY IN THE PREVIOUS SECOND ------- return @@ -1109,9 +1109,10 @@ var/using_new_click_proc = 0 //TODO ERRORAGE (This is temporary, while the DblCl // ------- ITEM INACESSIBLE OR CLICKING ON SCREEN ------- if (istype(src, /obj/screen)) // ------- IT'S THE HUD YOU'RE CLICKING ON ------- - usr.delay_click(2) - if (usr.last_click + usr.click_delay < world.time) - usr.last_click = world.time + usr.prev_move = usr.next_move + usr:lastDblClick = world.time + 2 + if (usr.next_move < world.time) + usr.next_move = world.time + 2 else return @@ -1143,7 +1144,7 @@ var/using_new_click_proc = 0 //TODO ERRORAGE (This is temporary, while the DblCl src.hand_al(usr, usr.hand) else // ------- YOU ARE CLICKING ON AN OBJECT THAT'S INACCESSIBLE TO YOU AND IS NOT YOUR HUD ------- - if((LASER in usr:mutations) && usr:a_intent == "hurt" && usr.last_click + usr.click_delay < world.time) + if((LASER in usr:mutations) && usr:a_intent == "hurt" && world.time >= usr.next_move) // ------- YOU HAVE THE LASER MUTATION, YOUR INTENT SET TO HURT AND IT'S BEEN MORE THAN A DECISECOND SINCE YOU LAS TATTACKED ------- var/turf/T = get_turf(usr) @@ -1168,7 +1169,7 @@ var/using_new_click_proc = 0 //TODO ERRORAGE (This is temporary, while the DblCl spawn( 1 ) A.process() - usr.delay_click(6) + usr.next_move = world.time + 6 return /atom/proc/ShiftClick(var/mob/M as mob) diff --git a/code/game/gamemodes/events/biomass.dm b/code/game/gamemodes/events/biomass.dm index 7bc6cf92568..d1508221f7c 100644 --- a/code/game/gamemodes/events/biomass.dm +++ b/code/game/gamemodes/events/biomass.dm @@ -22,9 +22,6 @@ /obj/effect/biomass/attackby(obj/item/weapon/W as obj, mob/user as mob) if (!W || !user || !W.type) return - - user.delay_click(10) - switch(W.type) if(/obj/item/weapon/circular_saw) del src if(/obj/item/weapon/kitchen/utensil/knife) del src diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 281c23f0fd0..c55684eb197 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -131,7 +131,8 @@ else if(isliving(src.loc)) return - user.delay_click(2) + user.lastDblClick = world.time + 2 + user.next_move = world.time + 2 src.pickup(user) add_fingerprint(user) user.put_in_active_hand(src) @@ -165,7 +166,8 @@ if(istype(src.loc, /mob/living)) return src.pickup(user) - user.delay_click(2) + user.lastDblClick = world.time + 2 + user.next_move = world.time + 2 user.put_in_active_hand(src) return @@ -227,8 +229,6 @@ log_attack("[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(src.damtype)])" ) msg_admin_attack("ATTACK: [user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") //BS12 EDIT ALG - user.delay_click(10) - //spawn(1800) // this wont work right // M.lastattacker = null ///////////////////////// diff --git a/code/game/objects/items/weapons/RCD.dm b/code/game/objects/items/weapons/RCD.dm index 6308189d8c2..a80a892af6f 100644 --- a/code/game/objects/items/weapons/RCD.dm +++ b/code/game/objects/items/weapons/RCD.dm @@ -86,8 +86,6 @@ RCD if(!(istype(A, /turf) || istype(A, /obj/machinery/door/airlock))) return 0 - user.delay_click(10) - switch(mode) if(1) if(istype(A, /turf/space)) diff --git a/code/game/objects/items/weapons/extinguisher.dm b/code/game/objects/items/weapons/extinguisher.dm index 6a26f70e1f5..77cf343de21 100644 --- a/code/game/objects/items/weapons/extinguisher.dm +++ b/code/game/objects/items/weapons/extinguisher.dm @@ -14,6 +14,7 @@ m_amt = 90 attack_verb = list("slammed", "whacked", "bashed", "thunked", "battered", "bludgeoned", "thrashed") var/max_water = 50 + var/last_use = 1.0 var/safety = 1 var/sprite_name = "fire_extinguisher" @@ -66,6 +67,11 @@ usr << "\red \The [src] is empty." return + if (world.time < src.last_use + 20) + return + + src.last_use = world.time + playsound(src.loc, 'sound/effects/extinguish.ogg', 75, 1, -3) var/direction = get_dir(src,target) diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index 48c51cdacff..c2514a11241 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -35,7 +35,6 @@ user.visible_message("[user] kicks [src].", \ "You kick [src].", \ "You hear twisting metal.") - user.delay_click(10) if(shock(user, 70)) return @@ -52,7 +51,6 @@ user.visible_message("[user] mangles [src].", \ "You mangle [src].", \ "You hear twisting metal.") - user.delay_click(10) if(!shock(user, 70)) health -= 5 @@ -66,7 +64,6 @@ user.visible_message("[user] smashes against [src].", \ "You smash against [src].", \ "You hear twisting metal.") - user.delay_click(10) health -= rand(2,3) healthcheck() @@ -79,7 +76,6 @@ M.visible_message("[M] smashes against [src].", \ "You smash against [src].", \ "You hear twisting metal.") - M.delay_click(10) health -= M.melee_damage_upper healthcheck() @@ -164,10 +160,8 @@ else if(istype(W, /obj/item/weapon/shard)) health -= W.force * 0.1 - user.delay_click(10) else if(!shock(user, 70)) playsound(loc, 'sound/effects/grillehit.ogg', 80, 1) - user.delay_click(10) switch(W.damtype) if("fire") health -= W.force diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 65fefec03c7..28791229725 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -104,19 +104,16 @@ new /obj/item/weapon/shard(loc) if(reinf) new /obj/item/stack/rods(loc) del(src) - usr.delay_click(10) else if (usr.a_intent == "hurt") playsound(src.loc, 'glassknock.ogg', 80, 1) usr.visible_message("\red [usr.name] bangs against the [src.name]!", \ "\red You bang against the [src.name]!", \ "You hear a banging sound.") - usr.delay_click(5) else playsound(src.loc, 'glassknock.ogg', 80, 1) usr.visible_message("[usr.name] knocks on the [src.name].", \ "You knock on the [src.name].", \ "You hear a knocking sound.") - usr.delay_click(5) return @@ -131,11 +128,9 @@ new /obj/item/weapon/shard(loc) if(reinf) new /obj/item/stack/rods(loc) del(src) - user.delay_click(10) else //for nicer text~ user.visible_message("[user] smashes into [src]!") playsound(loc, 'sound/effects/Glasshit.ogg', 100, 1) - user.delay_click(10) /obj/structure/window/attack_alien(mob/user as mob) @@ -163,7 +158,6 @@ var/mob/living/M = G.affecting var/state = G.state del(W) //gotta delete it here because if window breaks, it won't get deleted - user.delay_click(10) switch (state) if(1) M.apply_damage(7) @@ -203,7 +197,6 @@ else if(W.damtype == BRUTE || W.damtype == BURN) hit(W.force) - user.delay_click(10) if(health <= 7) anchored = 0 update_nearby_icons() diff --git a/code/modules/admin/verbs/diagnostics.dm b/code/modules/admin/verbs/diagnostics.dm index dad75f8219a..1e328970fd8 100644 --- a/code/modules/admin/verbs/diagnostics.dm +++ b/code/modules/admin/verbs/diagnostics.dm @@ -62,7 +62,7 @@ */ /client/proc/fix_next_move() -/* set category = "Debug" + set category = "Debug" set name = "Unfreeze Everyone" var/largest_move_time = 0 var/largest_click_time = 0 @@ -90,7 +90,6 @@ message_admins("[key_name_admin(largest_click_mob)] had the largest click delay with [largest_click_time] frames / [largest_click_time/10] seconds!", 1) message_admins("world.time = [world.time]", 1) feedback_add_details("admin_verb","UFE") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - */ return /client/proc/radio_report() diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 2347ca6b23c..061f06fe7d8 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -49,11 +49,7 @@ . = ..() /mob/living/carbon/attack_hand(mob/M as mob) - if(!istype(M, /mob/living/carbon)) return - - M.delay_click(10) - if (hasorgans(M)) var/datum/organ/external/temp = M:organs_by_name["r_hand"] if (M.hand) @@ -80,8 +76,6 @@ /mob/living/carbon/attack_paw(mob/M as mob) if(!istype(M, /mob/living/carbon)) return - M.delay_click(10) - for(var/datum/disease/D in viruses) if(D.spread_by_touch()) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 89427c501e8..8c41ec8c9a3 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1121,9 +1121,9 @@ mob/living/carbon/human/yank_out_object() set desc = "Remove an embedded item at the cost of bleeding and pain." set src in view(1) - if(!isliving(usr) || usr.last_click + usr.click_delay > world.time) + if(!isliving(usr) || usr.next_move > world.time) return - usr.delay_click(20) + usr.next_move = world.time + 20 if(usr.stat == 1) usr << "You are unconcious and cannot do that!" diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index 0c6b8172a28..cb161b9d944 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -12,8 +12,6 @@ ..() - M.delay_click(10) - if((M != src) && check_shields(0, M.name)) visible_message("\red [M] attempted to touch [src]!") return 0 diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index add85c9d034..a073dfa10d5 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -217,8 +217,6 @@ M << "No attacking people at spawn, you jackass." return - M.delay_click(10) - if(M.gloves && istype(M.gloves,/obj/item/clothing/gloves)) var/obj/item/clothing/gloves/G = M.gloves if(G.cell) diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index be1fb566b7a..1c3498802d1 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -33,7 +33,7 @@ if(hud_used) del(hud_used) //remove the hud objects hud_used = new /datum/hud(src) - last_click = world.time + next_move = 1 sight |= SEE_SELF ..() diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 9801ea9f6c5..08aad3d7ad6 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -83,7 +83,6 @@ //This is awful /mob/attackby(obj/item/weapon/W as obj, mob/user as mob) - user.delay_click(10) //Holding a balloon will shield you from an item that is_sharp() ... cause that makes sense if (user.intent != "harm") if (istype(src.l_hand,/obj/item/latexballon) && src.l_hand:air_contents && is_sharp(W)) @@ -906,9 +905,9 @@ mob/verb/yank_out_object() set desc = "Remove an embedded item at the cost of bleeding and pain." set src in view(1) - if(!isliving(usr) || usr.last_click + usr.click_delay > world.time) + if(!isliving(usr) || usr.next_move > world.time) return - usr.delay_click(20) + usr.next_move = world.time + 20 if(usr.stat == 1) usr << "You are unconcious and cannot do that!" @@ -961,4 +960,4 @@ mob/verb/yank_out_object() pinned -= O if(!pinned.len) anchored = 0 - return 1 + return 1 diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 6cbd091c0c1..b82f6736bbe 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -54,8 +54,8 @@ var/sdisabilities = 0 //Carbon var/disabilities = 0 //Carbon var/atom/movable/pulling = null - var/last_click = null - var/click_delay = 0 + var/next_move = null + var/prev_move = null var/monkeyizing = null //Carbon var/other = 0.0 var/hand = null diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm index 07a07500083..5363c05a116 100644 --- a/code/modules/mob/mob_grab.dm +++ b/code/modules/mob/mob_grab.dm @@ -128,7 +128,7 @@ return if(killing) return - if (assailant.last_click + assailant.click_delay > world.time) + if (assailant.next_move > world.time) return if ((!( assailant.canmove ) || assailant.lying)) //SN src = null @@ -140,7 +140,7 @@ if (!( killing )) assailant.visible_message("\red [assailant] has temporarily tightened \his grip on [affecting]!") //Foreach goto(97) - assailant.delay_click(10) + assailant.next_move = world.time + 10 //affecting.stunned = max(2, affecting.stunned) //affecting.paralysis = max(1, affecting.paralysis) affecting.losebreath = min(affecting.losebreath + 1, 3) @@ -162,8 +162,6 @@ if(killing) return - assailant.delay_click(10) - switch(S.id) if(1.0) if (state < 2) @@ -237,7 +235,7 @@ assailant.attack_log += text("\[[time_stamp()]\] Strangled (kill intent) [affecting.name] ([affecting.ckey])") log_attack("[assailant.name] ([assailant.ckey]) Strangled (kill intent) [affecting.name] ([affecting.ckey])") - assailant.delay_click(10) + assailant.next_move = world.time + 10 affecting.losebreath += 1 else assailant.visible_message("\red [assailant] was unable to tighten \his grip on [affecting]'s neck!") diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 981d03962e7..29b2bfeac3c 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -454,7 +454,3 @@ var/list/intents = list("help","disarm","grab","hurt") hud_used.action_intent.icon_state = "harm" else hud_used.action_intent.icon_state = "help" - -/mob/proc/delay_click(var/delay) - src.click_delay = max(src.click_delay, delay) - return src.click_delay diff --git a/code/modules/mob/screen.dm b/code/modules/mob/screen.dm index 441a0d961fe..5742b95cb2d 100644 --- a/code/modules/mob/screen.dm +++ b/code/modules/mob/screen.dm @@ -600,9 +600,9 @@ set name = "Resist" set category = "IC" - if(!isliving(usr) || usr.last_click + usr.click_delay > world.time) + if(!isliving(usr) || usr.next_move > world.time) return - usr.delay_click(20) + usr.next_move = world.time + 20 var/mob/living/L = usr @@ -670,7 +670,7 @@ if(iscarbon(L)) var/mob/living/carbon/C = L if( C.handcuffed ) - C.delay_click(100) + C.next_move = world.time + 100 C.last_special = world.time + 100 C << "\red You attempt to unbuckle yourself. (This will take around 2 minutes and you need to stand still)" for(var/mob/O in viewers(L)) @@ -704,7 +704,7 @@ // breakout_time++ //Harder to get out of welded lockers than locked lockers //okay, so the closet is either welded or locked... resist!!! - usr.delay_click(100) + usr.next_move = world.time + 100 L.last_special = world.time + 100 L << "\red You lean on the back of \the [C] and start pushing the door open. (this will take about [breakout_time] minutes)" for(var/mob/O in viewers(usr.loc)) @@ -757,7 +757,7 @@ else if(iscarbon(L)) var/mob/living/carbon/CM = L if(CM.handcuffed && CM.canmove && (CM.last_special <= world.time)) - CM.delay_click(100) + CM.next_move = world.time + 100 CM.last_special = world.time + 100 if(isalienadult(CM) || (HULK in usr.mutations))//Don't want to do a lot of logic gating here. usr << "\red You attempt to break your handcuffs. (This will take around 5 seconds and you need to stand still)" @@ -795,7 +795,7 @@ CM.handcuffed = null CM.update_inv_handcuffed() else if(CM.legcuffed && CM.canmove && (CM.last_special <= world.time)) - CM.delay_click(100) + CM.next_move = world.time + 100 CM.last_special = world.time + 100 if(isalienadult(CM) || (HULK in usr.mutations))//Don't want to do a lot of logic gating here. usr << "\red You attempt to break your legcuffs. (This will take around 5 seconds and you need to stand still)" diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 7eabd7e59c2..35af50877cb 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -131,7 +131,7 @@ in_chamber.loc = get_turf(user) in_chamber.starting = get_turf(user) in_chamber.shot_from = src - usr.delay_click(4) + user.next_move = world.time + 4 in_chamber.silenced = silenced in_chamber.current = curloc in_chamber.yo = targloc.y - curloc.y
Raiders