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