From 00f1fa2756c906f4e8a673f20fc58963bb77cc49 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 18 Dec 2020 16:54:12 -0500 Subject: [PATCH 01/14] Exploration/Gateway Update - Adds a new Scatter type of gateway, abductor, which strips the person's gear and deposits them somewhere else - Nerfs Expedition Phasers and Holdout Phasers - Reduces the number of full size phasers in Exploration from 4 to 3 - Slightly buffs melee mobs - Removes humanoid mobs from Virgo 3B Wilderness - Removes ADG from one of the POIs from V2 --- code/datums/supplypacks/munitions_vr.dm | 2 +- code/game/objects/effects/landmarks_vr.dm | 3 ++ code/global_vr.dm | 2 + code/modules/awaymissions/gateway.dm | 40 +++++++++++++++++++ code/modules/awaymissions/zlevel.dm | 22 +++++++++- .../mob/living/simple_mob/simple_mob_vr.dm | 2 +- .../projectiles/guns/energy/laser_vr.dm | 4 +- maps/submaps/pois_vr/aerostat/Rockybase.dmm | 8 +--- .../surface_submaps/plains/Thiefc_vr.dmm | 18 ++++----- maps/tether/tether_things.dm | 2 +- 10 files changed, 79 insertions(+), 24 deletions(-) diff --git a/code/datums/supplypacks/munitions_vr.dm b/code/datums/supplypacks/munitions_vr.dm index e8674dd390..75f2124c96 100644 --- a/code/datums/supplypacks/munitions_vr.dm +++ b/code/datums/supplypacks/munitions_vr.dm @@ -2,7 +2,7 @@ name = "Frontier phaser (station-locked) crate" contains = list( /obj/item/weapon/gun/energy/locked/frontier = 2, - /obj/item/weapon/gun/energy/locked/frontier/holdout = 1, + /obj/item/weapon/gun/energy/locked/frontier/holdout = 2, ) cost = 35 containertype = /obj/structure/closet/crate/secure diff --git a/code/game/objects/effects/landmarks_vr.dm b/code/game/objects/effects/landmarks_vr.dm index 1111b71724..b9dd81e967 100644 --- a/code/game/objects/effects/landmarks_vr.dm +++ b/code/game/objects/effects/landmarks_vr.dm @@ -1,3 +1,6 @@ +/obj/effect/landmark + var/abductor = 0 + /obj/effect/landmark/late_antag name = "Antag Latespawn" var/antag_id diff --git a/code/global_vr.dm b/code/global_vr.dm index 9d06ea18a3..278df90f79 100644 --- a/code/global_vr.dm +++ b/code/global_vr.dm @@ -12,7 +12,9 @@ var/list/shell_module_types = list( "Standard", "Service", "Clerical", "Service-Hound" ) +var/list/awayabductors = list() // List of scatter landmarks for Abductors in Gateways var/list/eventdestinations = list() // List of scatter landmarks for VOREStation event portals +var/list/eventabductors = list() // List of scatter landmarks for VOREStation abductor portals var/global/list/acceptable_fruit_types= list( "ambrosia", diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm index 987d395992..417f5182e6 100644 --- a/code/modules/awaymissions/gateway.dm +++ b/code/modules/awaymissions/gateway.dm @@ -145,6 +145,46 @@ obj/machinery/gateway/centerstation/process() if(dest) M.forceMove(dest.loc) M.set_dir(SOUTH) + //VOREStation Addition Start: Abduction! + if(istype(M, /mob/living) && dest.abductor) + var/mob/living/L = M + //Situations to get the mob out of + if(L.buckled) + L.buckled.unbuckle_mob() + if(istype(L.loc,/obj/mecha)) + var/obj/mecha/ME = L.loc + ME.go_out() + else if(istype(L.loc,/obj/machinery/sleeper)) + var/obj/machinery/sleeper/SL = L.loc + SL.go_out() + else if(istype(L.loc,/obj/machinery/recharge_station)) + var/obj/machinery/recharge_station/RS = L.loc + RS.go_out() + + if(!issilicon(L)) //Don't drop borg modules... + for(var/obj/item/I in L) + if(istype(I,/obj/item/weapon/implant) || istype(I,/obj/item/device/nif)) + continue + if(istype(I,/obj/item/weapon/holder)) + var/obj/item/weapon/holder/H = I + var/mob/living/MI = H.held_mob + MI.forceMove(get_turf(H)) + for(var/obj/item/II in MI) + if(istype(II,/obj/item/weapon/implant) || istype(II,/obj/item/device/nif)) + continue + MI.drop_from_inventory(II, loc) + MI.Paralyse(10) + var/obj/effect/landmark/finaldest = pick(awayabductors) + MI.forceMove(finaldest) + MI << 'sound/effects/bamf.ogg' + to_chat(MI,"You're starting to come to. You feel like you've been out for a few minutes, at least...") + L.drop_from_inventory(I, loc) + L.Paralyse(10) + var/obj/effect/landmark/finaldest = pick(awayabductors) + L.forceMove(finaldest) + L << 'sound/effects/bamf.ogg' + to_chat(L,"You're starting to come to. You feel like you've been out for a few minutes, at least...") + //VOREStation Addition End return /obj/machinery/gateway/centerstation/attackby(obj/item/device/W as obj, mob/user as mob) diff --git a/code/modules/awaymissions/zlevel.dm b/code/modules/awaymissions/zlevel.dm index 43c1dc4a91..ee065d41d7 100644 --- a/code/modules/awaymissions/zlevel.dm +++ b/code/modules/awaymissions/zlevel.dm @@ -63,9 +63,29 @@ proc/createRandomZlevel() . = ..() awaydestinations += src +/obj/effect/landmark/gateway_scatter/abduct + name = "uncalibrated gateway abductor" + abductor = 1 + /obj/effect/landmark/event_scatter - name = "uncalibrated gateway destination" + name = "uncalibrated event destination" /obj/effect/landmark/event_scatter/Initialize() . = ..() eventdestinations += src + +/obj/effect/landmark/event_scatter/abduct + name = "uncalibrated event abductor" + abductor = 1 + +/obj/effect/landmark/gateway_abduct_dest + name = "abductor gateway destination" +/obj/effect/landmark/gateway_abduct_dest/Initialize() + . = ..() + awayabductors += src + +/obj/effect/landmark/event_abduct_dest + name = "abductor event destination" +/obj/effect/landmark/event_abduct_dest/Initialize() + . = ..() + eventabductors += src //VOREStation Add End diff --git a/code/modules/mob/living/simple_mob/simple_mob_vr.dm b/code/modules/mob/living/simple_mob/simple_mob_vr.dm index ef631fa897..7aadfcd30e 100644 --- a/code/modules/mob/living/simple_mob/simple_mob_vr.dm +++ b/code/modules/mob/living/simple_mob/simple_mob_vr.dm @@ -4,7 +4,7 @@ #define SA_ICON_REST 0x04 /mob/living/simple_mob - base_attack_cooldown = 15 + base_attack_cooldown = 10 var/temperature_range = 40 // How close will they get to environmental temperature before their body stops changing its heat diff --git a/code/modules/projectiles/guns/energy/laser_vr.dm b/code/modules/projectiles/guns/energy/laser_vr.dm index 86a32cb97f..e05f0cb8fd 100644 --- a/code/modules/projectiles/guns/energy/laser_vr.dm +++ b/code/modules/projectiles/guns/energy/laser_vr.dm @@ -199,7 +199,7 @@ item_icons = list(slot_l_hand_str = 'icons/mob/items/lefthand_guns_vr.dmi', slot_r_hand_str = 'icons/mob/items/righthand_guns_vr.dmi', "slot_belt" = 'icons/mob/belt_vr.dmi') fire_sound = 'sound/weapons/laser2.ogg' origin_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 2, TECH_POWER = 4) - charge_cost = 300 + charge_cost = 400 battery_lock = 1 unacidable = 1 @@ -287,7 +287,7 @@ phase_power = 100 w_class = ITEMSIZE_SMALL - charge_cost = 600 + charge_cost = 800 modifystate = "holdoutkill" firemodes = list( list(mode_name="lethal", fire_delay=12, projectile_type=/obj/item/projectile/beam, modifystate="holdoutkill", charge_cost = 600), diff --git a/maps/submaps/pois_vr/aerostat/Rockybase.dmm b/maps/submaps/pois_vr/aerostat/Rockybase.dmm index b9c9e2e327..657988b585 100644 --- a/maps/submaps/pois_vr/aerostat/Rockybase.dmm +++ b/maps/submaps/pois_vr/aerostat/Rockybase.dmm @@ -659,12 +659,6 @@ /obj/item/mecha_parts/chassis/gygax, /turf/simulated/floor/tiled/techfloor/virgo2, /area/submap/virgo2/Rockybase) -"co" = ( -/mob/living/simple_mob/mechanical/mecha/combat/gygax/dark/advanced{ - faction = "syndicate" - }, -/turf/simulated/floor/tiled/techfloor/virgo2, -/area/submap/virgo2/Rockybase) "cp" = ( /obj/machinery/vending/robotics, /obj/machinery/light{ @@ -1302,7 +1296,7 @@ al bA ao ao -co +ao bq ao al diff --git a/maps/submaps/surface_submaps/plains/Thiefc_vr.dmm b/maps/submaps/surface_submaps/plains/Thiefc_vr.dmm index aab0b0eb08..412b6c8739 100644 --- a/maps/submaps/surface_submaps/plains/Thiefc_vr.dmm +++ b/maps/submaps/surface_submaps/plains/Thiefc_vr.dmm @@ -75,7 +75,6 @@ /obj/random/firstaid, /obj/random/firstaid, /obj/random/firstaid, -/obj/random/firstaid, /turf/simulated/floor/outdoors/dirt{ outdoors = 0 }, @@ -103,7 +102,6 @@ /obj/vehicle/train/trolley, /obj/random/multiple/voidsuit, /obj/random/multiple/voidsuit, -/obj/random/multiple/voidsuit, /turf/simulated/floor/outdoors/dirt{ outdoors = 0 }, @@ -121,15 +119,13 @@ /area/submap/Thiefc) "p" = ( /obj/structure/closet/crate, -/obj/item/weapon/storage/box/shotgunammo, /obj/item/weapon/storage/box/practiceshells, -/obj/item/weapon/grenade/spawnergrenade/manhacks/station, /turf/simulated/floor/outdoors/dirt{ outdoors = 0 }, /area/submap/Thiefc) -"u" = ( -/mob/living/simple_mob/humanoid/merc/ranged/virgo, +"B" = ( +/mob/living/simple_mob/animal/giant_spider/phorogenic, /turf/simulated/floor/outdoors/dirt{ outdoors = 0 }, @@ -322,7 +318,7 @@ a c c c -u +h h h h @@ -346,7 +342,7 @@ c f h h -h +B h h c @@ -387,12 +383,12 @@ a a c e -h -u +B h h h h +B h h c @@ -414,7 +410,7 @@ i h h h -u +h c c c diff --git a/maps/tether/tether_things.dm b/maps/tether/tether_things.dm index 903026b657..2d981f1a48 100644 --- a/maps/tether/tether_things.dm +++ b/maps/tether/tether_things.dm @@ -366,7 +366,7 @@ var/global/list/latejoin_tram = list() /obj/structure/closet/secure_closet/guncabinet/excursion/New() ..() - for(var/i = 1 to 3) + for(var/i = 1 to 2) new /obj/item/weapon/gun/energy/locked/frontier(src) // Used at centcomm for the elevator From 5fc93728be3d7f0a4dd843353ae9ae0a9ef94be3 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 18 Dec 2020 17:05:41 -0500 Subject: [PATCH 02/14] Fixes bug with item holders --- code/modules/awaymissions/gateway.dm | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm index 417f5182e6..e808f242c5 100644 --- a/code/modules/awaymissions/gateway.dm +++ b/code/modules/awaymissions/gateway.dm @@ -169,15 +169,16 @@ obj/machinery/gateway/centerstation/process() var/obj/item/weapon/holder/H = I var/mob/living/MI = H.held_mob MI.forceMove(get_turf(H)) - for(var/obj/item/II in MI) - if(istype(II,/obj/item/weapon/implant) || istype(II,/obj/item/device/nif)) - continue - MI.drop_from_inventory(II, loc) - MI.Paralyse(10) - var/obj/effect/landmark/finaldest = pick(awayabductors) - MI.forceMove(finaldest) - MI << 'sound/effects/bamf.ogg' - to_chat(MI,"You're starting to come to. You feel like you've been out for a few minutes, at least...") + if(!issilicon(MI)) //Don't drop borg modules... + for(var/obj/item/II in MI) + if(istype(II,/obj/item/weapon/implant) || istype(II,/obj/item/device/nif)) + continue + MI.drop_from_inventory(II, loc) + var/obj/effect/landmark/finaldest = pick(awayabductors) + MI.Paralyse(10) + MI.forceMove(finaldest) + MI << 'sound/effects/bamf.ogg' + to_chat(MI,"You're starting to come to. You feel like you've been out for a few minutes, at least...") L.drop_from_inventory(I, loc) L.Paralyse(10) var/obj/effect/landmark/finaldest = pick(awayabductors) From ab2f5534b2aff52d8ab12cafc58fb48672ab2fb1 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 18 Dec 2020 17:55:41 -0500 Subject: [PATCH 03/14] Properly moves people into landmarks --- code/modules/awaymissions/gateway.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm index e808f242c5..1bbc164392 100644 --- a/code/modules/awaymissions/gateway.dm +++ b/code/modules/awaymissions/gateway.dm @@ -176,13 +176,13 @@ obj/machinery/gateway/centerstation/process() MI.drop_from_inventory(II, loc) var/obj/effect/landmark/finaldest = pick(awayabductors) MI.Paralyse(10) - MI.forceMove(finaldest) + MI.forceMove(finaldest.loc) MI << 'sound/effects/bamf.ogg' to_chat(MI,"You're starting to come to. You feel like you've been out for a few minutes, at least...") L.drop_from_inventory(I, loc) L.Paralyse(10) var/obj/effect/landmark/finaldest = pick(awayabductors) - L.forceMove(finaldest) + L.forceMove(finaldest.loc) L << 'sound/effects/bamf.ogg' to_chat(L,"You're starting to come to. You feel like you've been out for a few minutes, at least...") //VOREStation Addition End From eee2c5b9f2548fb8b6087efc5b3bbe73b3397fd0 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 18 Dec 2020 18:00:26 -0500 Subject: [PATCH 04/14] Maybe a sleep is needed? --- code/modules/awaymissions/gateway.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm index 1bbc164392..6b83bc43c0 100644 --- a/code/modules/awaymissions/gateway.dm +++ b/code/modules/awaymissions/gateway.dm @@ -148,6 +148,8 @@ obj/machinery/gateway/centerstation/process() //VOREStation Addition Start: Abduction! if(istype(M, /mob/living) && dest.abductor) var/mob/living/L = M + L.Paralyse(10) + sleep(5) //Situations to get the mob out of if(L.buckled) L.buckled.unbuckle_mob() @@ -180,7 +182,6 @@ obj/machinery/gateway/centerstation/process() MI << 'sound/effects/bamf.ogg' to_chat(MI,"You're starting to come to. You feel like you've been out for a few minutes, at least...") L.drop_from_inventory(I, loc) - L.Paralyse(10) var/obj/effect/landmark/finaldest = pick(awayabductors) L.forceMove(finaldest.loc) L << 'sound/effects/bamf.ogg' From 3721e070885624a440317134d26cb6ac0d16c698 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 18 Dec 2020 18:55:37 -0500 Subject: [PATCH 05/14] Test Test --- code/modules/awaymissions/gateway.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm index 6b83bc43c0..c133fbeba8 100644 --- a/code/modules/awaymissions/gateway.dm +++ b/code/modules/awaymissions/gateway.dm @@ -145,11 +145,11 @@ obj/machinery/gateway/centerstation/process() if(dest) M.forceMove(dest.loc) M.set_dir(SOUTH) + sleep(100) //VOREStation Addition Start: Abduction! if(istype(M, /mob/living) && dest.abductor) var/mob/living/L = M L.Paralyse(10) - sleep(5) //Situations to get the mob out of if(L.buckled) L.buckled.unbuckle_mob() From db0bde6b9896038c91f2ce19335b347d66283d9f Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 18 Dec 2020 19:20:37 -0500 Subject: [PATCH 06/14] Fixes issue --- code/modules/awaymissions/gateway.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm index c133fbeba8..25a7fce555 100644 --- a/code/modules/awaymissions/gateway.dm +++ b/code/modules/awaymissions/gateway.dm @@ -145,7 +145,6 @@ obj/machinery/gateway/centerstation/process() if(dest) M.forceMove(dest.loc) M.set_dir(SOUTH) - sleep(100) //VOREStation Addition Start: Abduction! if(istype(M, /mob/living) && dest.abductor) var/mob/living/L = M @@ -181,7 +180,7 @@ obj/machinery/gateway/centerstation/process() MI.forceMove(finaldest.loc) MI << 'sound/effects/bamf.ogg' to_chat(MI,"You're starting to come to. You feel like you've been out for a few minutes, at least...") - L.drop_from_inventory(I, loc) + L.drop_from_inventory(I, dest.loc) var/obj/effect/landmark/finaldest = pick(awayabductors) L.forceMove(finaldest.loc) L << 'sound/effects/bamf.ogg' From f2b4072f63c51311f6d4663ce68a9844a1a386e0 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 18 Dec 2020 20:26:48 -0500 Subject: [PATCH 07/14] Paralysis kicking in too early --- code/modules/awaymissions/gateway.dm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm index 25a7fce555..19b661faa7 100644 --- a/code/modules/awaymissions/gateway.dm +++ b/code/modules/awaymissions/gateway.dm @@ -148,7 +148,6 @@ obj/machinery/gateway/centerstation/process() //VOREStation Addition Start: Abduction! if(istype(M, /mob/living) && dest.abductor) var/mob/living/L = M - L.Paralyse(10) //Situations to get the mob out of if(L.buckled) L.buckled.unbuckle_mob() @@ -176,13 +175,16 @@ obj/machinery/gateway/centerstation/process() continue MI.drop_from_inventory(II, loc) var/obj/effect/landmark/finaldest = pick(awayabductors) - MI.Paralyse(10) MI.forceMove(finaldest.loc) + sleep(1) + MI.Paralyse(10) MI << 'sound/effects/bamf.ogg' to_chat(MI,"You're starting to come to. You feel like you've been out for a few minutes, at least...") L.drop_from_inventory(I, dest.loc) var/obj/effect/landmark/finaldest = pick(awayabductors) L.forceMove(finaldest.loc) + sleep(1) + L.Paralyse(10) L << 'sound/effects/bamf.ogg' to_chat(L,"You're starting to come to. You feel like you've been out for a few minutes, at least...") //VOREStation Addition End From 4eb7e0e07b32b5e9db1b3871c3cf093e1fbde092 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 18 Dec 2020 20:42:21 -0500 Subject: [PATCH 08/14] Ports code for scatter portals --- code/modules/multiz/structures_vr.dm | 40 ++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/code/modules/multiz/structures_vr.dm b/code/modules/multiz/structures_vr.dm index e55b0eae5a..a1d84be41e 100644 --- a/code/modules/multiz/structures_vr.dm +++ b/code/modules/multiz/structures_vr.dm @@ -76,4 +76,44 @@ M << 'sound/effects/phasein.ogg' playsound(src, 'sound/effects/phasein.ogg', 100, 1) M.forceMove(dest.loc) + if(istype(M, /mob/living) && dest.abductor) + var/mob/living/L = M + //Situations to get the mob out of + if(L.buckled) + L.buckled.unbuckle_mob() + if(istype(L.loc,/obj/mecha)) + var/obj/mecha/ME = L.loc + ME.go_out() + else if(istype(L.loc,/obj/machinery/sleeper)) + var/obj/machinery/sleeper/SL = L.loc + SL.go_out() + else if(istype(L.loc,/obj/machinery/recharge_station)) + var/obj/machinery/recharge_station/RS = L.loc + RS.go_out() + if(!issilicon(L)) //Don't drop borg modules... + for(var/obj/item/I in L) + if(istype(I,/obj/item/weapon/implant) || istype(I,/obj/item/device/nif)) + continue + if(istype(I,/obj/item/weapon/holder)) + var/obj/item/weapon/holder/H = I + var/mob/living/MI = H.held_mob + MI.forceMove(get_turf(H)) + if(!issilicon(MI)) //Don't drop borg modules... + for(var/obj/item/II in MI) + if(istype(II,/obj/item/weapon/implant) || istype(II,/obj/item/device/nif)) + continue + MI.drop_from_inventory(II, loc) + var/obj/effect/landmark/finaldest = pick(awayabductors) + MI.forceMove(finaldest.loc) + sleep(1) + MI.Paralyse(10) + MI << 'sound/effects/bamf.ogg' + to_chat(MI,"You're starting to come to. You feel like you've been out for a few minutes, at least...") + L.drop_from_inventory(I, dest.loc) + var/obj/effect/landmark/finaldest = pick(awayabductors) + L.forceMove(finaldest.loc) + sleep(1) + L.Paralyse(10) + L << 'sound/effects/bamf.ogg' + to_chat(L,"You're starting to come to. You feel like you've been out for a few minutes, at least...") return From 23f70de6a274cbe09fbc12ff3f48563c958b9d5c Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 18 Dec 2020 21:59:16 -0500 Subject: [PATCH 09/14] Experimental anti-micro technology --- code/modules/awaymissions/gateway.dm | 34 ++++++++++++++------------- code/modules/multiz/structures_vr.dm | 35 +++++++++++++++------------- 2 files changed, 37 insertions(+), 32 deletions(-) diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm index 19b661faa7..34430f0029 100644 --- a/code/modules/awaymissions/gateway.dm +++ b/code/modules/awaymissions/gateway.dm @@ -160,26 +160,28 @@ obj/machinery/gateway/centerstation/process() else if(istype(L.loc,/obj/machinery/recharge_station)) var/obj/machinery/recharge_station/RS = L.loc RS.go_out() - if(!issilicon(L)) //Don't drop borg modules... + var/list/mob_contents = list() //Things which are actually drained as a result of the above not being null. + mob_contents |= L // The recursive check below does not add the object being checked to its list. + mob_contents |= recursive_content_check(L, mob_contents, recursion_limit = 3, client_check = 0, sight_check = 0, include_mobs = 1, include_objects = 1, ignore_show_messages = 1) + for(var/obj/item/weapon/holder/I in mob_contents) + var/obj/item/weapon/holder/H = I + var/mob/living/MI = H.held_mob + MI.forceMove(get_turf(H)) + if(!issilicon(MI)) //Don't drop borg modules... + for(var/obj/item/II in MI) + if(istype(II,/obj/item/weapon/implant) || istype(II,/obj/item/device/nif)) + continue + MI.drop_from_inventory(II, loc) + var/obj/effect/landmark/finaldest = pick(awayabductors) + MI.forceMove(finaldest.loc) + sleep(1) + MI.Paralyse(10) + MI << 'sound/effects/bamf.ogg' + to_chat(MI,"You're starting to come to. You feel like you've been out for a few minutes, at least...") for(var/obj/item/I in L) if(istype(I,/obj/item/weapon/implant) || istype(I,/obj/item/device/nif)) continue - if(istype(I,/obj/item/weapon/holder)) - var/obj/item/weapon/holder/H = I - var/mob/living/MI = H.held_mob - MI.forceMove(get_turf(H)) - if(!issilicon(MI)) //Don't drop borg modules... - for(var/obj/item/II in MI) - if(istype(II,/obj/item/weapon/implant) || istype(II,/obj/item/device/nif)) - continue - MI.drop_from_inventory(II, loc) - var/obj/effect/landmark/finaldest = pick(awayabductors) - MI.forceMove(finaldest.loc) - sleep(1) - MI.Paralyse(10) - MI << 'sound/effects/bamf.ogg' - to_chat(MI,"You're starting to come to. You feel like you've been out for a few minutes, at least...") L.drop_from_inventory(I, dest.loc) var/obj/effect/landmark/finaldest = pick(awayabductors) L.forceMove(finaldest.loc) diff --git a/code/modules/multiz/structures_vr.dm b/code/modules/multiz/structures_vr.dm index a1d84be41e..23633489b9 100644 --- a/code/modules/multiz/structures_vr.dm +++ b/code/modules/multiz/structures_vr.dm @@ -90,25 +90,28 @@ else if(istype(L.loc,/obj/machinery/recharge_station)) var/obj/machinery/recharge_station/RS = L.loc RS.go_out() - if(!issilicon(L)) //Don't drop borg modules... + if(!issilicon(L)) //Don't drop borg modules... + var/list/mob_contents = list() //Things which are actually drained as a result of the above not being null. + mob_contents |= L // The recursive check below does not add the object being checked to its list. + mob_contents |= recursive_content_check(L, mob_contents, recursion_limit = 3, client_check = 0, sight_check = 0, include_mobs = 1, include_objects = 1, ignore_show_messages = 1) + for(var/obj/item/weapon/holder/I in mob_contents) + var/obj/item/weapon/holder/H = I + var/mob/living/MI = H.held_mob + MI.forceMove(get_turf(H)) + if(!issilicon(MI)) //Don't drop borg modules... + for(var/obj/item/II in MI) + if(istype(II,/obj/item/weapon/implant) || istype(II,/obj/item/device/nif)) + continue + MI.drop_from_inventory(II, loc) + var/obj/effect/landmark/finaldest = pick(awayabductors) + MI.forceMove(finaldest.loc) + sleep(1) + MI.Paralyse(10) + MI << 'sound/effects/bamf.ogg' + to_chat(MI,"You're starting to come to. You feel like you've been out for a few minutes, at least...") for(var/obj/item/I in L) if(istype(I,/obj/item/weapon/implant) || istype(I,/obj/item/device/nif)) continue - if(istype(I,/obj/item/weapon/holder)) - var/obj/item/weapon/holder/H = I - var/mob/living/MI = H.held_mob - MI.forceMove(get_turf(H)) - if(!issilicon(MI)) //Don't drop borg modules... - for(var/obj/item/II in MI) - if(istype(II,/obj/item/weapon/implant) || istype(II,/obj/item/device/nif)) - continue - MI.drop_from_inventory(II, loc) - var/obj/effect/landmark/finaldest = pick(awayabductors) - MI.forceMove(finaldest.loc) - sleep(1) - MI.Paralyse(10) - MI << 'sound/effects/bamf.ogg' - to_chat(MI,"You're starting to come to. You feel like you've been out for a few minutes, at least...") L.drop_from_inventory(I, dest.loc) var/obj/effect/landmark/finaldest = pick(awayabductors) L.forceMove(finaldest.loc) From 9aa0641524706447bc60a6570e735ea41932e157 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 18 Dec 2020 22:36:01 -0500 Subject: [PATCH 10/14] Bug Fix --- code/modules/awaymissions/gateway.dm | 2 +- code/modules/multiz/structures_vr.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm index 34430f0029..6467eb6e15 100644 --- a/code/modules/awaymissions/gateway.dm +++ b/code/modules/awaymissions/gateway.dm @@ -172,7 +172,7 @@ obj/machinery/gateway/centerstation/process() for(var/obj/item/II in MI) if(istype(II,/obj/item/weapon/implant) || istype(II,/obj/item/device/nif)) continue - MI.drop_from_inventory(II, loc) + MI.drop_from_inventory(II, dest.loc) var/obj/effect/landmark/finaldest = pick(awayabductors) MI.forceMove(finaldest.loc) sleep(1) diff --git a/code/modules/multiz/structures_vr.dm b/code/modules/multiz/structures_vr.dm index 23633489b9..8f96800a7e 100644 --- a/code/modules/multiz/structures_vr.dm +++ b/code/modules/multiz/structures_vr.dm @@ -102,7 +102,7 @@ for(var/obj/item/II in MI) if(istype(II,/obj/item/weapon/implant) || istype(II,/obj/item/device/nif)) continue - MI.drop_from_inventory(II, loc) + MI.drop_from_inventory(II, dest.loc) var/obj/effect/landmark/finaldest = pick(awayabductors) MI.forceMove(finaldest.loc) sleep(1) From 5772b95cc5700689feab2b8304dbcbc96c702046 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sat, 19 Dec 2020 21:14:42 -0500 Subject: [PATCH 11/14] Some ERT Tweaks --- code/datums/outfits/jobs/special_vr.dm | 12 +++++++++ code/game/jobs/job/special_vr.dm | 36 +++++++------------------- maps/submaps/admin_use_vr/ert.dmm | 27 ++++++------------- 3 files changed, 30 insertions(+), 45 deletions(-) diff --git a/code/datums/outfits/jobs/special_vr.dm b/code/datums/outfits/jobs/special_vr.dm index dd8316358b..89c4883e92 100644 --- a/code/datums/outfits/jobs/special_vr.dm +++ b/code/datums/outfits/jobs/special_vr.dm @@ -9,6 +9,18 @@ id_type = /obj/item/weapon/card/id/centcom pda_type = /obj/item/device/pda/centcom +/decl/hierarchy/outfit/job/emergency_responder + name = OUTFIT_JOB_NAME("Emergency Responder") + uniform = /obj/item/clothing/under/ert + shoes = /obj/item/clothing/shoes/boots/swat + gloves = /obj/item/clothing/gloves/swat + l_ear = /obj/item/device/radio/headset/ert + belt = /obj/item/weapon/gun/energy/gun + glasses = /obj/item/clothing/glasses/sunglasses + back = /obj/item/weapon/storage/backpack/satchel + id_type = /obj/item/weapon/card/id/centcom/ERT + pda_type = /obj/item/device/pda/centcom + /decl/hierarchy/outfit/job/clown name = OUTFIT_JOB_NAME("Clown") uniform = /obj/item/clothing/under/rank/clown diff --git a/code/game/jobs/job/special_vr.dm b/code/game/jobs/job/special_vr.dm index d2de3db85c..32c5893c22 100644 --- a/code/game/jobs/job/special_vr.dm +++ b/code/game/jobs/job/special_vr.dm @@ -24,47 +24,31 @@ get_access() return get_all_accesses().Copy() -/*/datum/job/centcom_visitor //For Pleasure // You mean for admin abuse... -Ace - title = "CentCom Visitor" - department = "Civilian" - head_position = 1 +/datum/job/emergency_responder //For staff managing/leading ERTs + title = "Emergency Responder" + departments = list("Central Command") + department_accounts = list(DEPARTMENT_COMMAND, DEPARTMENT_ENGINEERING, DEPARTMENT_MEDICAL, DEPARTMENT_RESEARCH, DEPARTMENT_SECURITY, DEPARTMENT_CARGO, DEPARTMENT_PLANET, DEPARTMENT_CIVILIAN) faction = "Station" total_positions = 2 spawn_positions = 1 supervisors = "company officials and Corporate Regulations" selection_color = "#1D1D4F" - idtype = /obj/item/weapon/card/id/centcom access = list() minimal_access = list() minimal_player_age = 14 economic_modifier = 20 whitelist_only = 1 latejoin_only = 1 + outfit_type = /decl/hierarchy/outfit/job/centcom_officer + job_description = "Emergency Responders are usually called in to deal with on-station emergencies that the crew require assistance to deal with." - minimum_character_age = 25 - ideal_character_age = 40 + minimum_character_age = 18 + ideal_character_age = 30 - equip(var/mob/living/carbon/human/H) - if(!H) return 0 - H.equip_to_slot_or_del(new /obj/item/device/radio/headset/centcom(H), slot_l_ear) - switch(H.backbag) - if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back) - if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) - if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) - H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom, slot_w_uniform) - H.equip_to_slot_or_del(new /obj/item/device/pda/centcom(H), slot_belt) - H.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(H), slot_shoes) - H.equip_to_slot_or_del(new /obj/item/clothing/gloves/white(H), slot_gloves) - H.equip_to_slot_or_del(new /obj/item/clothing/head/beret/centcom/officer(H), slot_head) - H.equip_to_slot_or_del(new /obj/item/clothing/glasses/omnihud(H), slot_l_store) - - H.implant_loyalty() - - return 1 + pto_type = PTO_CIVILIAN get_access() - var/access = get_all_accesses() - return access*/ + return get_all_accesses().Copy() /datum/job/clown title = "Clown" diff --git a/maps/submaps/admin_use_vr/ert.dmm b/maps/submaps/admin_use_vr/ert.dmm index 350005bbbc..0081799cc3 100644 --- a/maps/submaps/admin_use_vr/ert.dmm +++ b/maps/submaps/admin_use_vr/ert.dmm @@ -5270,25 +5270,13 @@ /area/ship/ert/atmos) "Lq" = ( /obj/structure/table/rack/steel, -/obj/item/weapon/gun/energy/gun/martin{ - battery_lock = 0 - }, -/obj/item/weapon/gun/energy/gun/martin{ - battery_lock = 0 - }, -/obj/item/weapon/gun/energy/gun/martin{ - battery_lock = 0 - }, -/obj/item/weapon/gun/energy/gun/martin{ - battery_lock = 0 - }, -/obj/item/weapon/gun/energy/gun/martin{ - battery_lock = 0 - }, -/obj/item/weapon/gun/energy/gun/martin{ - battery_lock = 0 - }, /obj/effect/floor_decal/industrial/outline/grey, +/obj/item/weapon/gun/energy/locked/frontier/holdout/unlocked, +/obj/item/weapon/gun/energy/locked/frontier/holdout/unlocked, +/obj/item/weapon/gun/energy/locked/frontier/holdout/unlocked, +/obj/item/weapon/gun/energy/locked/frontier/holdout/unlocked, +/obj/item/weapon/gun/energy/locked/frontier/holdout/unlocked, +/obj/item/weapon/gun/energy/locked/frontier/holdout/unlocked, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/armoury_st) "LA" = ( @@ -5601,6 +5589,7 @@ "NI" = ( /obj/structure/table/rack, /obj/item/weapon/storage/secure/briefcase/nsfw_pack_hybrid, +/obj/item/weapon/storage/belt/explorer/pathfinder, /turf/simulated/floor/wood, /area/ship/ert/commander) "NJ" = ( @@ -6757,7 +6746,7 @@ /turf/simulated/floor/wood, /area/ship/ert/commander) "Wd" = ( -/obj/machinery/telecomms/relay/preset/centcom/tether, +/obj/machinery/telecomms/relay, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/atmos) "Wj" = ( From d5e4c622a8957c086ca1d391b25a42fbf465b56d Mon Sep 17 00:00:00 2001 From: Unknown Date: Sat, 19 Dec 2020 21:17:34 -0500 Subject: [PATCH 12/14] Minor copypasta error --- code/game/jobs/job/special_vr.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/jobs/job/special_vr.dm b/code/game/jobs/job/special_vr.dm index 32c5893c22..dcb6a51521 100644 --- a/code/game/jobs/job/special_vr.dm +++ b/code/game/jobs/job/special_vr.dm @@ -39,7 +39,7 @@ economic_modifier = 20 whitelist_only = 1 latejoin_only = 1 - outfit_type = /decl/hierarchy/outfit/job/centcom_officer + outfit_type = /decl/hierarchy/outfit/job/emergency_responder job_description = "Emergency Responders are usually called in to deal with on-station emergencies that the crew require assistance to deal with." minimum_character_age = 18 From 8e81b41a79583aa14183e28326a2e0684fdeda88 Mon Sep 17 00:00:00 2001 From: Little-119 Date: Sun, 20 Dec 2020 01:25:44 -0500 Subject: [PATCH 13/14] Change medbay reception windows to polarized ones --- maps/tether/tether-03-surface3.dmm | 32 ++++-------------------------- 1 file changed, 4 insertions(+), 28 deletions(-) diff --git a/maps/tether/tether-03-surface3.dmm b/maps/tether/tether-03-surface3.dmm index 85316eacdd..575ec6b44c 100644 --- a/maps/tether/tether-03-surface3.dmm +++ b/maps/tether/tether-03-surface3.dmm @@ -2460,7 +2460,7 @@ dir = 10 }, /obj/effect/floor_decal/steeldecal/steel_decals4, -/obj/machinery/button/windowtint/doortint{ +/obj/machinery/button/windowtint/multitint{ id = "medbayfoyer"; pixel_x = -8; pixel_y = -24 @@ -26246,33 +26246,9 @@ /area/tether/surfacebase/medical/storage) "aSM" = ( /obj/structure/grille, -/obj/structure/window/reinforced/full, /obj/machinery/door/firedoor, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/simulated/floor/plating, -/area/tether/surfacebase/medical/triage) -"aSN" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/full, -/obj/machinery/door/firedoor, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 +/obj/structure/window/reinforced/polarized/full{ + id = "medbayfoyer" }, /turf/simulated/floor/plating, /area/tether/surfacebase/medical/triage) @@ -55536,7 +55512,7 @@ acR aap akb aFC -aSN +aSM ahY afz bnX From 3cc5be3fc0466e8fec92f7d037f426c4a5288800 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 20 Dec 2020 22:06:37 -0500 Subject: [PATCH 14/14] Suggested Changes --- code/modules/projectiles/guns/energy/laser_vr.dm | 16 ++++++++-------- code/modules/projectiles/projectile/beams_vr.dm | 5 +++++ 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/code/modules/projectiles/guns/energy/laser_vr.dm b/code/modules/projectiles/guns/energy/laser_vr.dm index e05f0cb8fd..f6bc584455 100644 --- a/code/modules/projectiles/guns/energy/laser_vr.dm +++ b/code/modules/projectiles/guns/energy/laser_vr.dm @@ -199,7 +199,7 @@ item_icons = list(slot_l_hand_str = 'icons/mob/items/lefthand_guns_vr.dmi', slot_r_hand_str = 'icons/mob/items/righthand_guns_vr.dmi', "slot_belt" = 'icons/mob/belt_vr.dmi') fire_sound = 'sound/weapons/laser2.ogg' origin_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 2, TECH_POWER = 4) - charge_cost = 400 + charge_cost = 300 battery_lock = 1 unacidable = 1 @@ -209,8 +209,8 @@ projectile_type = /obj/item/projectile/beam firemodes = list( - list(mode_name="lethal", fire_delay=12, projectile_type=/obj/item/projectile/beam, charge_cost = 300), - list(mode_name="low-power", fire_delay=8, projectile_type=/obj/item/projectile/beam/weaklaser, charge_cost = 60), + list(mode_name="lethal", fire_delay=12, projectile_type=/obj/item/projectile/beam/blue, charge_cost = 300), + list(mode_name="low-power", fire_delay=8, projectile_type=/obj/item/projectile/beam/weaklaser/blue, charge_cost = 80), ) /obj/item/weapon/gun/energy/locked/frontier/unload_ammo(var/mob/user) @@ -260,8 +260,8 @@ modifystate = "carbinekill" firemodes = list( - list(mode_name="lethal", fire_delay=12, projectile_type=/obj/item/projectile/beam, modifystate="carbinekill", charge_cost = 300), - list(mode_name="low-power", fire_delay=8, projectile_type=/obj/item/projectile/beam/weaklaser, modifystate="carbinestun", charge_cost = 60), + list(mode_name="lethal", fire_delay=12, projectile_type=/obj/item/projectile/beam/blue, modifystate="carbinekill", charge_cost = 300), + list(mode_name="low-power", fire_delay=8, projectile_type=/obj/item/projectile/beam/weaklaser/blue, modifystate="carbinestun", charge_cost = 80), ) /obj/item/weapon/gun/energy/locked/frontier/carbine/update_icon() @@ -287,11 +287,11 @@ phase_power = 100 w_class = ITEMSIZE_SMALL - charge_cost = 800 + charge_cost = 600 modifystate = "holdoutkill" firemodes = list( - list(mode_name="lethal", fire_delay=12, projectile_type=/obj/item/projectile/beam, modifystate="holdoutkill", charge_cost = 600), - list(mode_name="low-power", fire_delay=8, projectile_type=/obj/item/projectile/beam/weaklaser, modifystate="holdoutstun", charge_cost = 120), + list(mode_name="lethal", fire_delay=12, projectile_type=/obj/item/projectile/beam/blue, modifystate="holdoutkill", charge_cost = 600), + list(mode_name="low-power", fire_delay=8, projectile_type=/obj/item/projectile/beam/weaklaser/blue, modifystate="holdoutstun", charge_cost = 160), list(mode_name="stun", fire_delay=12, projectile_type=/obj/item/projectile/beam/stun/med, modifystate="holdoutshock", charge_cost = 300), ) diff --git a/code/modules/projectiles/projectile/beams_vr.dm b/code/modules/projectiles/projectile/beams_vr.dm index 8930260e9e..f4aa2522de 100644 --- a/code/modules/projectiles/projectile/beams_vr.dm +++ b/code/modules/projectiles/projectile/beams_vr.dm @@ -42,6 +42,11 @@ tracer_type = /obj/effect/projectile/tracer/laser_blue impact_type = /obj/effect/projectile/impact/laser_blue +/obj/item/projectile/beam/weaklaser/blue + muzzle_type = /obj/effect/projectile/muzzle/laser_blue + tracer_type = /obj/effect/projectile/tracer/laser_blue + impact_type = /obj/effect/projectile/impact/laser_blue + /obj/item/projectile/beam/medigun name = "healing beam" icon_state = "healbeam"