mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 03:57:13 +01:00
Removes heist mode & associated code (#17256)
This commit is contained in:
@@ -306,17 +306,6 @@
|
||||
},
|
||||
/turf/simulated/floor/mineral/titanium/blue,
|
||||
/area/shuttle/pod_1)
|
||||
"adT" = (
|
||||
/obj/docking_port/stationary{
|
||||
dir = 2;
|
||||
dwidth = 2;
|
||||
height = 18;
|
||||
id = "skipjack_nw";
|
||||
name = "northwest of SS13";
|
||||
width = 19
|
||||
},
|
||||
/turf/space,
|
||||
/area/space)
|
||||
"adZ" = (
|
||||
/obj/effect/decal/warning_stripes/west,
|
||||
/turf/simulated/floor/plasteel,
|
||||
@@ -2359,17 +2348,6 @@
|
||||
icon_state = "redfull"
|
||||
},
|
||||
/area/maintenance/fore2)
|
||||
"aoP" = (
|
||||
/obj/docking_port/stationary{
|
||||
dir = 2;
|
||||
dwidth = 2;
|
||||
height = 18;
|
||||
id = "skipjack_ne";
|
||||
name = "northeast of SS13";
|
||||
width = 19
|
||||
},
|
||||
/turf/space,
|
||||
/area/space)
|
||||
"aoR" = (
|
||||
/obj/machinery/light/small{
|
||||
dir = 8
|
||||
@@ -90513,28 +90491,6 @@
|
||||
icon_state = "solarpanel"
|
||||
},
|
||||
/area/maintenance/portsolar)
|
||||
"dWd" = (
|
||||
/obj/docking_port/stationary{
|
||||
dir = 2;
|
||||
dwidth = 2;
|
||||
height = 18;
|
||||
id = "skipjack_sw";
|
||||
name = "southwest of SS13";
|
||||
width = 19
|
||||
},
|
||||
/turf/space,
|
||||
/area/space)
|
||||
"dWe" = (
|
||||
/obj/docking_port/stationary{
|
||||
dir = 2;
|
||||
dwidth = 2;
|
||||
height = 18;
|
||||
id = "skipjack_se";
|
||||
name = "southeast of SS13";
|
||||
width = 19
|
||||
},
|
||||
/turf/space,
|
||||
/area/space)
|
||||
"dWf" = (
|
||||
/obj/docking_port/stationary{
|
||||
dheight = 9;
|
||||
@@ -113144,7 +113100,7 @@ aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
dWd
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -116807,7 +116763,7 @@ aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
adT
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -152813,7 +152769,7 @@ aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
aoP
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -153238,7 +153194,7 @@ aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
dWe
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -159740,7 +159696,7 @@ aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
aoP
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
|
||||
@@ -396,17 +396,6 @@
|
||||
/obj/machinery/power/tracker,
|
||||
/turf/simulated/floor/plating/airless,
|
||||
/area/solar/auxstarboard)
|
||||
"acy" = (
|
||||
/obj/docking_port/stationary{
|
||||
dir = 2;
|
||||
dwidth = 2;
|
||||
height = 18;
|
||||
id = "skipjack_nw";
|
||||
name = "northwest of SS13";
|
||||
width = 19
|
||||
},
|
||||
/turf/space,
|
||||
/area/space)
|
||||
"acz" = (
|
||||
/obj/structure/lattice/catwalk,
|
||||
/obj/effect/landmark/spawner/xeno,
|
||||
@@ -966,17 +955,6 @@
|
||||
icon_state = "whitered"
|
||||
},
|
||||
/area/security/permabrig)
|
||||
"adN" = (
|
||||
/obj/docking_port/stationary{
|
||||
dir = 2;
|
||||
dwidth = 2;
|
||||
height = 18;
|
||||
id = "skipjack_ne";
|
||||
name = "northeast of SS13";
|
||||
width = 19
|
||||
},
|
||||
/turf/space,
|
||||
/area/space)
|
||||
"adP" = (
|
||||
/obj/structure/cable,
|
||||
/obj/structure/lattice/catwalk,
|
||||
@@ -73565,17 +73543,6 @@
|
||||
icon_state = "solarpanel"
|
||||
},
|
||||
/area/solar/starboard)
|
||||
"ddv" = (
|
||||
/obj/docking_port/stationary{
|
||||
dir = 2;
|
||||
dwidth = 2;
|
||||
height = 18;
|
||||
id = "skipjack_se";
|
||||
name = "southeast of SS13";
|
||||
width = 19
|
||||
},
|
||||
/turf/space,
|
||||
/area/space)
|
||||
"ddw" = (
|
||||
/obj/structure/lattice/catwalk,
|
||||
/obj/effect/landmark/spawner/xeno,
|
||||
@@ -94337,7 +94304,7 @@ aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
acy
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -122753,7 +122720,7 @@ aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
ddv
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -132633,7 +132600,7 @@ aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
adN
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
|
||||
@@ -1385,17 +1385,6 @@
|
||||
/obj/structure/grille,
|
||||
/turf/simulated/floor/plating/airless,
|
||||
/area/space/nearstation)
|
||||
"agd" = (
|
||||
/obj/docking_port/stationary{
|
||||
dir = 2;
|
||||
dwidth = 2;
|
||||
height = 18;
|
||||
id = "skipjack_ne";
|
||||
name = "northeast of SS13";
|
||||
width = 19
|
||||
},
|
||||
/turf/space,
|
||||
/area/space)
|
||||
"agk" = (
|
||||
/obj/structure/cable{
|
||||
d1 = 1;
|
||||
@@ -140089,7 +140078,7 @@ aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
agd
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
|
||||
+1927
-2500
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,948 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"aa" = (
|
||||
/turf/space,
|
||||
/area/space)
|
||||
"ab" = (
|
||||
/obj/structure/rack,
|
||||
/obj/item/gun/energy/noisecannon,
|
||||
/obj/item/gun/energy/noisecannon,
|
||||
/obj/item/gun/energy/noisecannon,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"ac" = (
|
||||
/obj/machinery/computer/camera_advanced/shuttle_docker/admin/vox,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"ad" = (
|
||||
/obj/machinery/door/airlock/hatch{
|
||||
frequency = 1331;
|
||||
id_tag = "vox_northwest_lock";
|
||||
locked = 1;
|
||||
req_access_txt = "152"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"ae" = (
|
||||
/obj/machinery/computer/shuttle/admin/vox,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"ai" = (
|
||||
/obj/machinery/door/airlock/external,
|
||||
/obj/machinery/door/poddoor/shutters{
|
||||
density = 0;
|
||||
dir = 2;
|
||||
icon_state = "open";
|
||||
id_tag = "voxshutters";
|
||||
name = "Blast Shutters";
|
||||
opacity = 0
|
||||
},
|
||||
/turf/simulated/floor/plating/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"aj" = (
|
||||
/obj/docking_port/mobile{
|
||||
dir = 2;
|
||||
dwidth = 9;
|
||||
height = 18;
|
||||
id = "admin";
|
||||
name = "skipjack";
|
||||
roundstart_move = "cc_bay_1";
|
||||
timid = 1;
|
||||
width = 19
|
||||
},
|
||||
/obj/machinery/door/airlock/external,
|
||||
/obj/machinery/door/poddoor/shutters{
|
||||
density = 0;
|
||||
dir = 2;
|
||||
icon_state = "open";
|
||||
id_tag = "voxshutters";
|
||||
name = "Blast Shutters";
|
||||
opacity = 0
|
||||
},
|
||||
/turf/simulated/floor/plating/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"aq" = (
|
||||
/obj/machinery/airlock_sensor{
|
||||
frequency = 1331;
|
||||
id_tag = "vox_west_sensor";
|
||||
pixel_x = 25;
|
||||
req_access_txt = "152"
|
||||
},
|
||||
/obj/machinery/light{
|
||||
dir = 4
|
||||
},
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"au" = (
|
||||
/obj/structure/shuttle/engine/propulsion{
|
||||
dir = 1;
|
||||
icon_state = "propulsion_l"
|
||||
},
|
||||
/turf/simulated/floor/plating/airless,
|
||||
/area/shuttle/administration)
|
||||
"av" = (
|
||||
/obj/machinery/access_button{
|
||||
command = "cycle_exterior";
|
||||
frequency = 1331;
|
||||
master_tag = "vox_west_control";
|
||||
req_one_access_txt = "152"
|
||||
},
|
||||
/turf/simulated/wall/mineral/plastitanium,
|
||||
/area/shuttle/administration)
|
||||
"az" = (
|
||||
/turf/space,
|
||||
/area/shuttle/administration)
|
||||
"aB" = (
|
||||
/obj/machinery/airlock_sensor{
|
||||
frequency = 1331;
|
||||
id_tag = "vox_east_sensor";
|
||||
pixel_x = -25;
|
||||
req_access_txt = "152"
|
||||
},
|
||||
/obj/machinery/light{
|
||||
dir = 8
|
||||
},
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"aG" = (
|
||||
/obj/machinery/embedded_controller/radio/airlock/airlock_controller{
|
||||
frequency = 1331;
|
||||
id_tag = "vox_west_control";
|
||||
pixel_x = 24;
|
||||
req_access_txt = "152";
|
||||
tag_airpump = "vox_west_vent";
|
||||
tag_chamber_sensor = "vox_west_sensor";
|
||||
tag_exterior_door = "vox_northwest_lock";
|
||||
tag_interior_door = "vox_southwest_lock"
|
||||
},
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"aH" = (
|
||||
/obj/structure/shuttle/engine/heater{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/window/reinforced,
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4
|
||||
},
|
||||
/turf/simulated/floor/plating/airless,
|
||||
/area/shuttle/administration)
|
||||
"aI" = (
|
||||
/obj/item/clothing/head/bearpelt,
|
||||
/obj/item/xenos_claw,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"aJ" = (
|
||||
/obj/structure/shuttle/engine/heater{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/window/reinforced,
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 8
|
||||
},
|
||||
/turf/simulated/floor/plating/airless,
|
||||
/area/shuttle/administration)
|
||||
"aM" = (
|
||||
/obj/machinery/door/airlock/hatch{
|
||||
frequency = 1331;
|
||||
id_tag = "vox_northeast_lock";
|
||||
locked = 1;
|
||||
req_access_txt = "152"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"aN" = (
|
||||
/obj/machinery/door/airlock/hatch{
|
||||
frequency = 1331;
|
||||
id_tag = "vox_southwest_lock";
|
||||
locked = 1;
|
||||
req_access_txt = "152"
|
||||
},
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"aP" = (
|
||||
/obj/item/broken_bottle,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"aR" = (
|
||||
/obj/item/stack/spacecash/c50,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"aT" = (
|
||||
/obj/item/clothing/mask/breath,
|
||||
/obj/machinery/light,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"aU" = (
|
||||
/obj/item/stack/spacecash/c50,
|
||||
/obj/machinery/light,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"bb" = (
|
||||
/obj/machinery/door/airlock/hatch{
|
||||
req_access_txt = "152"
|
||||
},
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"bd" = (
|
||||
/obj/machinery/light{
|
||||
dir = 1
|
||||
},
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"bj" = (
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/table,
|
||||
/obj/item/broken_device,
|
||||
/obj/item/robot_parts/chest,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"bo" = (
|
||||
/obj/machinery/door/poddoor/shutters{
|
||||
density = 0;
|
||||
dir = 8;
|
||||
icon_state = "open";
|
||||
id_tag = "voxshutters";
|
||||
name = "Blast Shutters";
|
||||
opacity = 0
|
||||
},
|
||||
/obj/effect/spawner/window/plastitanium,
|
||||
/turf/simulated/floor/plating/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"bt" = (
|
||||
/obj/item/storage/toolbox/syndicate,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"bv" = (
|
||||
/obj/structure/table,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"bC" = (
|
||||
/obj/machinery/atmospherics/unary/tank/nitrogen{
|
||||
dir = 1
|
||||
},
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"bD" = (
|
||||
/obj/structure/rack,
|
||||
/obj/item/rcd,
|
||||
/obj/item/rcd_ammo,
|
||||
/obj/item/rcd_ammo,
|
||||
/obj/item/rcd_ammo,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"bG" = (
|
||||
/obj/machinery/sleeper/upgraded{
|
||||
dir = 4
|
||||
},
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"bJ" = (
|
||||
/obj/structure/shuttle/engine/heater,
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 1
|
||||
},
|
||||
/turf/simulated/floor/plating/airless,
|
||||
/area/shuttle/administration)
|
||||
"bO" = (
|
||||
/obj/machinery/access_button{
|
||||
command = "cycle_exterior";
|
||||
frequency = 1331;
|
||||
master_tag = "vox_east_control";
|
||||
req_access_txt = "152"
|
||||
},
|
||||
/turf/simulated/wall/mineral/plastitanium,
|
||||
/area/shuttle/administration)
|
||||
"bQ" = (
|
||||
/obj/structure/rack,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"bR" = (
|
||||
/obj/structure/chair/comfy/shuttle{
|
||||
dir = 4
|
||||
},
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"bV" = (
|
||||
/obj/structure/shuttle/engine/propulsion{
|
||||
icon_state = "propulsion_l"
|
||||
},
|
||||
/turf/simulated/floor/plating/airless,
|
||||
/area/shuttle/administration)
|
||||
"bY" = (
|
||||
/obj/item/tank/internals/emergency_oxygen,
|
||||
/obj/item/clothing/mask/breath,
|
||||
/obj/machinery/portable_atmospherics/canister/oxygen,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"ca" = (
|
||||
/obj/structure/rack,
|
||||
/obj/item/clothing/accessory/storage/black_vest,
|
||||
/obj/item/clothing/suit/space/vox/stealth,
|
||||
/obj/item/clothing/head/helmet/space/vox/stealth,
|
||||
/obj/item/clothing/mask/breath,
|
||||
/obj/machinery/light{
|
||||
dir = 8
|
||||
},
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"cb" = (
|
||||
/obj/structure/rack,
|
||||
/obj/machinery/light{
|
||||
dir = 4
|
||||
},
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"cf" = (
|
||||
/obj/machinery/embedded_controller/radio/airlock/airlock_controller{
|
||||
frequency = 1331;
|
||||
id_tag = "vox_east_control";
|
||||
pixel_x = -24;
|
||||
req_access_txt = "152";
|
||||
tag_airpump = "vox_east_vent";
|
||||
tag_chamber_sensor = "vox_east_sensor";
|
||||
tag_exterior_door = "vox_northeast_lock";
|
||||
tag_interior_door = "vox_southeast_lock"
|
||||
},
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"cg" = (
|
||||
/obj/machinery/access_button{
|
||||
command = "cycle_interior";
|
||||
frequency = 1331;
|
||||
master_tag = "vox_west_control";
|
||||
req_one_access_txt = "152"
|
||||
},
|
||||
/turf/simulated/wall/mineral/plastitanium,
|
||||
/area/shuttle/administration)
|
||||
"ci" = (
|
||||
/obj/effect/spawner/window/plastitanium,
|
||||
/turf/simulated/floor/plating/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"cj" = (
|
||||
/obj/item/clothing/mask/breath,
|
||||
/obj/item/stack/spacecash/c50,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"ck" = (
|
||||
/obj/item/clothing/head/collectable/xenom,
|
||||
/obj/item/clothing/head/chicken,
|
||||
/obj/item/aiModule/syndicate,
|
||||
/obj/item/storage/box/zipties,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"cl" = (
|
||||
/obj/item/stack/spacecash/c1000,
|
||||
/obj/item/stack/spacecash/c500,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"cm" = (
|
||||
/obj/machinery/door/poddoor/shutters{
|
||||
density = 0;
|
||||
icon_state = "open";
|
||||
id_tag = "voxshutters";
|
||||
name = "Blast Shutters";
|
||||
opacity = 0
|
||||
},
|
||||
/obj/effect/spawner/window/plastitanium,
|
||||
/turf/simulated/floor/plating/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"cn" = (
|
||||
/obj/machinery/access_button{
|
||||
command = "cycle_interior";
|
||||
frequency = 1331;
|
||||
master_tag = "vox_east_control";
|
||||
req_one_access_txt = "152"
|
||||
},
|
||||
/turf/simulated/wall/mineral/plastitanium,
|
||||
/area/shuttle/administration)
|
||||
"co" = (
|
||||
/obj/machinery/door/airlock/hatch{
|
||||
frequency = 1331;
|
||||
id_tag = "vox_southeast_lock";
|
||||
locked = 1;
|
||||
req_access_txt = "152"
|
||||
},
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"cp" = (
|
||||
/obj/structure/AIcore,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"cu" = (
|
||||
/obj/item/clothing/head/bearpelt,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"cv" = (
|
||||
/obj/item/xenos_claw,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"cw" = (
|
||||
/obj/structure/shuttle/engine/heater{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/window/reinforced,
|
||||
/turf/simulated/floor/plating/airless,
|
||||
/area/shuttle/administration)
|
||||
"cx" = (
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/table,
|
||||
/obj/machinery/recharger,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"eP" = (
|
||||
/obj/structure/chair/comfy/shuttle{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/light{
|
||||
dir = 4
|
||||
},
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"jg" = (
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"nk" = (
|
||||
/obj/structure/rack,
|
||||
/obj/item/clothing/accessory/storage/black_vest,
|
||||
/obj/item/clothing/suit/space/vox/pressure,
|
||||
/obj/item/clothing/head/helmet/space/vox/pressure,
|
||||
/obj/item/clothing/mask/breath,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"qa" = (
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/table,
|
||||
/obj/machinery/cell_charger,
|
||||
/obj/item/weed_extract,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"sd" = (
|
||||
/obj/machinery/portable_atmospherics/canister/nitrogen,
|
||||
/obj/machinery/light,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"ue" = (
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/table,
|
||||
/obj/item/pickaxe,
|
||||
/obj/item/storage/firstaid/toxin,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"wb" = (
|
||||
/obj/effect/spawner/window/plastitanium,
|
||||
/obj/machinery/door/poddoor/shutters{
|
||||
density = 0;
|
||||
dir = 2;
|
||||
icon_state = "open";
|
||||
id_tag = "voxshutters";
|
||||
name = "Blast Shutters";
|
||||
opacity = 0
|
||||
},
|
||||
/turf/simulated/floor/plating/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"wk" = (
|
||||
/obj/structure/chair/comfy/shuttle{
|
||||
dir = 8
|
||||
},
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"wB" = (
|
||||
/obj/structure/rack,
|
||||
/obj/item/clothing/accessory/storage/black_vest,
|
||||
/obj/item/clothing/suit/space/vox/carapace,
|
||||
/obj/item/clothing/head/helmet/space/vox/carapace,
|
||||
/obj/item/clothing/mask/breath,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"wZ" = (
|
||||
/obj/structure/rack,
|
||||
/obj/item/clothing/accessory/storage/black_vest,
|
||||
/obj/item/clothing/suit/space/vox/medic,
|
||||
/obj/item/clothing/head/helmet/space/vox/medic,
|
||||
/obj/item/clothing/mask/breath,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"xi" = (
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/table,
|
||||
/obj/item/circular_saw,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"zD" = (
|
||||
/turf/simulated/wall/mineral/plastitanium,
|
||||
/area/shuttle/administration)
|
||||
"CD" = (
|
||||
/obj/structure/chair/comfy/shuttle{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/light{
|
||||
dir = 8
|
||||
},
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"Gs" = (
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/table,
|
||||
/obj/item/scalpel,
|
||||
/obj/item/stack/cable_coil,
|
||||
/obj/item/storage/firstaid/regular,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"IH" = (
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/table,
|
||||
/mob/living/simple_animal/bot/floorbot{
|
||||
on = 0
|
||||
},
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"Jk" = (
|
||||
/obj/structure/table,
|
||||
/obj/machinery/door_control{
|
||||
id = "voxshutters";
|
||||
name = "remote shutter control";
|
||||
req_access_txt = "152"
|
||||
},
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"JJ" = (
|
||||
/obj/structure/rack,
|
||||
/obj/item/tank/internals/nitrogen,
|
||||
/obj/item/tank/internals/nitrogen,
|
||||
/obj/item/tank/internals/nitrogen,
|
||||
/obj/item/tank/internals/nitrogen,
|
||||
/obj/item/tank/internals/nitrogen,
|
||||
/obj/item/tank/internals/nitrogen,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"MT" = (
|
||||
/obj/structure/rack,
|
||||
/obj/item/pneumatic_cannon,
|
||||
/obj/item/harpoon,
|
||||
/obj/item/harpoon,
|
||||
/obj/item/harpoon,
|
||||
/obj/item/harpoon,
|
||||
/obj/item/tank/internals/nitrogen,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"Ua" = (
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/optable,
|
||||
/obj/item/organ/internal/brain,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"Vl" = (
|
||||
/obj/machinery/bodyscanner,
|
||||
/obj/machinery/light,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"XB" = (
|
||||
/obj/machinery/portable_atmospherics/canister/toxins,
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
"XK" = (
|
||||
/obj/item/clothing/head/collectable/petehat{
|
||||
desc = "It smells faintly of reptile.";
|
||||
name = "fancy leader hat"
|
||||
},
|
||||
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
|
||||
/area/shuttle/administration)
|
||||
|
||||
(1,1,1) = {"
|
||||
zD
|
||||
zD
|
||||
zD
|
||||
zD
|
||||
zD
|
||||
zD
|
||||
bo
|
||||
bo
|
||||
bo
|
||||
zD
|
||||
zD
|
||||
zD
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
av
|
||||
jg
|
||||
jg
|
||||
aN
|
||||
jg
|
||||
jg
|
||||
jg
|
||||
jg
|
||||
jg
|
||||
bC
|
||||
bJ
|
||||
bV
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
ad
|
||||
aq
|
||||
aG
|
||||
cg
|
||||
zD
|
||||
zD
|
||||
jg
|
||||
cx
|
||||
jg
|
||||
XB
|
||||
bJ
|
||||
bV
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
zD
|
||||
zD
|
||||
zD
|
||||
zD
|
||||
az
|
||||
zD
|
||||
jg
|
||||
qa
|
||||
jg
|
||||
sd
|
||||
zD
|
||||
zD
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
az
|
||||
az
|
||||
az
|
||||
az
|
||||
au
|
||||
cw
|
||||
jg
|
||||
IH
|
||||
jg
|
||||
bD
|
||||
zD
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
az
|
||||
az
|
||||
zD
|
||||
bo
|
||||
bo
|
||||
zD
|
||||
jg
|
||||
bj
|
||||
bt
|
||||
JJ
|
||||
zD
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
az
|
||||
au
|
||||
aH
|
||||
aP
|
||||
aT
|
||||
zD
|
||||
bb
|
||||
zD
|
||||
zD
|
||||
zD
|
||||
zD
|
||||
zD
|
||||
zD
|
||||
zD
|
||||
zD
|
||||
zD
|
||||
zD
|
||||
zD
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
zD
|
||||
zD
|
||||
aP
|
||||
cj
|
||||
cp
|
||||
zD
|
||||
bd
|
||||
bR
|
||||
bR
|
||||
wB
|
||||
wZ
|
||||
nk
|
||||
ca
|
||||
ci
|
||||
CD
|
||||
bR
|
||||
ae
|
||||
zD
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
ai
|
||||
jg
|
||||
jg
|
||||
ck
|
||||
jg
|
||||
bb
|
||||
jg
|
||||
jg
|
||||
jg
|
||||
jg
|
||||
jg
|
||||
jg
|
||||
jg
|
||||
bb
|
||||
jg
|
||||
jg
|
||||
wk
|
||||
wb
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
aj
|
||||
jg
|
||||
bY
|
||||
cl
|
||||
cu
|
||||
bb
|
||||
jg
|
||||
jg
|
||||
jg
|
||||
jg
|
||||
jg
|
||||
jg
|
||||
jg
|
||||
bb
|
||||
XK
|
||||
jg
|
||||
bR
|
||||
wb
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
zD
|
||||
zD
|
||||
aI
|
||||
aR
|
||||
cv
|
||||
zD
|
||||
bd
|
||||
wk
|
||||
bv
|
||||
ab
|
||||
MT
|
||||
bQ
|
||||
cb
|
||||
ci
|
||||
eP
|
||||
Jk
|
||||
ac
|
||||
zD
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
az
|
||||
au
|
||||
aJ
|
||||
jg
|
||||
aU
|
||||
zD
|
||||
bb
|
||||
zD
|
||||
zD
|
||||
zD
|
||||
zD
|
||||
zD
|
||||
zD
|
||||
zD
|
||||
zD
|
||||
zD
|
||||
zD
|
||||
zD
|
||||
"}
|
||||
(13,1,1) = {"
|
||||
az
|
||||
az
|
||||
zD
|
||||
cm
|
||||
cm
|
||||
zD
|
||||
jg
|
||||
ue
|
||||
jg
|
||||
bG
|
||||
zD
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
az
|
||||
az
|
||||
az
|
||||
az
|
||||
au
|
||||
cw
|
||||
jg
|
||||
Gs
|
||||
jg
|
||||
jg
|
||||
zD
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
"}
|
||||
(15,1,1) = {"
|
||||
zD
|
||||
zD
|
||||
zD
|
||||
zD
|
||||
az
|
||||
zD
|
||||
jg
|
||||
xi
|
||||
jg
|
||||
Vl
|
||||
zD
|
||||
zD
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
"}
|
||||
(16,1,1) = {"
|
||||
aM
|
||||
aB
|
||||
cf
|
||||
cn
|
||||
zD
|
||||
zD
|
||||
jg
|
||||
Ua
|
||||
jg
|
||||
jg
|
||||
bJ
|
||||
bV
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
"}
|
||||
(17,1,1) = {"
|
||||
bO
|
||||
jg
|
||||
jg
|
||||
co
|
||||
jg
|
||||
jg
|
||||
jg
|
||||
jg
|
||||
jg
|
||||
bC
|
||||
bJ
|
||||
bV
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
"}
|
||||
(18,1,1) = {"
|
||||
zD
|
||||
zD
|
||||
zD
|
||||
zD
|
||||
zD
|
||||
zD
|
||||
cm
|
||||
cm
|
||||
cm
|
||||
zD
|
||||
zD
|
||||
zD
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
"}
|
||||
(19,1,1) = {"
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
"}
|
||||
@@ -37,7 +37,6 @@
|
||||
#define SPECIAL_ROLE_MULTIVERSE "Multiverse Traveller"
|
||||
#define SPECIAL_ROLE_NUKEOPS "Syndicate"
|
||||
#define SPECIAL_ROLE_PYROCLASTIC_SLIME "Pyroclastic Anomaly Slime"
|
||||
#define SPECIAL_ROLE_RAIDER "Vox Raider"
|
||||
#define SPECIAL_ROLE_REVENANT "Revenant"
|
||||
#define SPECIAL_ROLE_SHADOWLING "Shadowling"
|
||||
#define SPECIAL_ROLE_SHADOWLING_THRALL "Shadowling Thrall"
|
||||
|
||||
@@ -26,7 +26,6 @@
|
||||
#define ROLE_REVENANT "revenant"
|
||||
#define ROLE_HOG_GOD "hand of god: god" // We're prolly gonna port this one day or another
|
||||
#define ROLE_HOG_CULTIST "hand of god: cultist"
|
||||
#define ROLE_RAIDER "vox raider"
|
||||
#define ROLE_TRADER "trader"
|
||||
#define ROLE_VAMPIRE "vampire"
|
||||
// Role tags for EVERYONE!
|
||||
@@ -73,7 +72,6 @@ GLOBAL_LIST_INIT(special_roles, list(
|
||||
ROLE_TRADER, // Trader
|
||||
ROLE_TRAITOR = /datum/game_mode/traitor, // Traitor
|
||||
ROLE_VAMPIRE = /datum/game_mode/vampire, // Vampire
|
||||
ROLE_RAIDER = /datum/game_mode/heist, // Vox raider
|
||||
ROLE_ALIEN, // Xenomorph
|
||||
ROLE_WIZARD = /datum/game_mode/wizard // Wizard
|
||||
// UNUSED/BROKEN ANTAGS
|
||||
|
||||
@@ -10,7 +10,6 @@ GLOBAL_LIST_INIT(antag_roles, list(
|
||||
ROLE_BLOB,
|
||||
ROLE_NINJA,
|
||||
ROLE_SHADOWLING,
|
||||
ROLE_RAIDER,
|
||||
ROLE_VAMPIRE,
|
||||
ROLE_BORER,
|
||||
ROLE_DEMON,
|
||||
|
||||
@@ -325,13 +325,6 @@
|
||||
/obj/item/gun/energy/noisecannon = 1
|
||||
)
|
||||
|
||||
/datum/outfit/admin/vox/equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
if(isvoxarmalis(H))
|
||||
. = ..()
|
||||
else
|
||||
H.equip_vox_raider()
|
||||
H.regenerate_icons()
|
||||
|
||||
/datum/outfit/admin/vox/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
if(visualsOnly)
|
||||
|
||||
@@ -138,3 +138,8 @@
|
||||
suffix = "armory"
|
||||
name = "NRV Sparta"
|
||||
description = "Armory Shuttle, with plenty of guns to hand out and some general supplies."
|
||||
|
||||
/datum/map_template/shuttle/admin/skipjack
|
||||
suffix = "skipjack"
|
||||
name = "Vox Skipjack"
|
||||
description = "Vox skipjack ship."
|
||||
|
||||
@@ -293,14 +293,6 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
/area/shuttle/research/outpost
|
||||
icon_state = "shuttle"
|
||||
|
||||
/area/shuttle/vox
|
||||
name = "\improper Vox Skipjack"
|
||||
icon_state = "shuttle"
|
||||
|
||||
/area/shuttle/vox/station
|
||||
name = "\improper Vox Skipjack"
|
||||
icon_state = "yellow"
|
||||
|
||||
/area/shuttle/salvage
|
||||
name = "\improper Salvage Ship"
|
||||
icon_state = "yellow"
|
||||
|
||||
@@ -1,316 +0,0 @@
|
||||
/*
|
||||
VOX HEIST ROUNDTYPE
|
||||
*/
|
||||
GLOBAL_LIST_EMPTY(raider_spawn)
|
||||
GLOBAL_LIST_EMPTY(cortical_stacks) //Stacks for 'leave nobody behind' objective. Clumsy, rewrite sometime.
|
||||
|
||||
/datum/game_mode/
|
||||
var/list/datum/mind/raiders = list() //Antags.
|
||||
var/list/raid_objectives = list() //Raid objectives
|
||||
|
||||
/datum/game_mode/heist
|
||||
name = "heist"
|
||||
config_tag = "heist"
|
||||
required_players = 25
|
||||
required_enemies = 4
|
||||
recommended_enemies = 5
|
||||
votable = 0
|
||||
|
||||
var/list/obj/cortical_stacks = list() //Stacks for 'leave nobody behind' objective.
|
||||
var/win_button_triggered = 0
|
||||
|
||||
/datum/game_mode/heist/announce()
|
||||
to_chat(world, "<B>The current game mode is - Heist!</B>")
|
||||
to_chat(world, "<B>An unidentified bluespace signature has slipped past the Icarus and is approaching [station_name()]!</B>")
|
||||
to_chat(world, "Whoever they are, they're likely up to no good. Protect the crew and station resources against this dastardly threat!")
|
||||
to_chat(world, "<B>Raiders:</B> Loot [station_name()] for anything and everything you need, or choose the peaceful route and attempt to trade with them.")
|
||||
to_chat(world, "<B>Personnel:</B> Trade with the raiders, or repel them and their low, low prices and/or crossbows.")
|
||||
|
||||
/datum/game_mode/heist/can_start()
|
||||
|
||||
if(!..())
|
||||
return 0
|
||||
|
||||
var/list/candidates = get_players_for_role(ROLE_RAIDER)
|
||||
var/raider_num = 0
|
||||
|
||||
//Check that we have enough vox.
|
||||
if(candidates.len < required_enemies)
|
||||
return 0
|
||||
else if(candidates.len < recommended_enemies)
|
||||
raider_num = candidates.len
|
||||
else
|
||||
raider_num = recommended_enemies
|
||||
|
||||
//Grab candidates randomly until we have enough.
|
||||
while(raider_num > 0)
|
||||
var/datum/mind/new_raider = pick(candidates)
|
||||
raiders += new_raider
|
||||
candidates -= new_raider
|
||||
raider_num--
|
||||
|
||||
for(var/datum/mind/raider in raiders)
|
||||
raider.assigned_role = SPECIAL_ROLE_RAIDER
|
||||
raider.special_role = SPECIAL_ROLE_RAIDER
|
||||
raider.offstation_role = TRUE
|
||||
..()
|
||||
return 1
|
||||
|
||||
/datum/game_mode/heist/pre_setup()
|
||||
return 1
|
||||
|
||||
/datum/game_mode/heist/post_setup()
|
||||
|
||||
//Generate objectives for the group.
|
||||
raid_objectives = forge_vox_objectives()
|
||||
|
||||
var/index = 1
|
||||
|
||||
//Spawn the vox!
|
||||
for(var/datum/mind/raider in raiders)
|
||||
|
||||
if(index > GLOB.raider_spawn.len)
|
||||
index = 1
|
||||
|
||||
raider.current.loc = GLOB.raider_spawn[index]
|
||||
index++
|
||||
|
||||
create_vox(raider)
|
||||
greet_vox(raider)
|
||||
|
||||
if(raid_objectives)
|
||||
raider.objectives = raid_objectives
|
||||
|
||||
return ..()
|
||||
|
||||
/datum/game_mode/proc/create_vox(datum/mind/newraider)
|
||||
|
||||
var/sounds = rand(2,8)
|
||||
var/i = 0
|
||||
var/newname = ""
|
||||
|
||||
while(i<=sounds)
|
||||
i++
|
||||
newname += pick(list("ti","hi","ki","ya","ta","ha","ka","ya","chi","cha","kah"))
|
||||
|
||||
var/mob/living/carbon/human/vox = newraider.current
|
||||
var/obj/item/organ/external/head/head_organ = vox.get_organ("head")
|
||||
|
||||
vox.real_name = capitalize(newname)
|
||||
vox.dna.real_name = vox.real_name
|
||||
vox.name = vox.real_name
|
||||
newraider.name = vox.name
|
||||
vox.age = rand(12,20)
|
||||
vox.set_species(/datum/species/vox)
|
||||
vox.s_tone = rand(1, 6)
|
||||
vox.languages = list() // Removing language from chargen.
|
||||
vox.flavor_text = ""
|
||||
vox.add_language("Vox-pidgin")
|
||||
vox.add_language("Galactic Common")
|
||||
vox.add_language("Tradeband")
|
||||
head_organ.h_style = "Short Vox Quills"
|
||||
head_organ.f_style = "Shaved"
|
||||
vox.change_hair_color(97, 79, 25) //Same as the species default colour.
|
||||
vox.change_eye_color(rand(1, 255), rand(1, 255), rand(1, 255))
|
||||
vox.underwear = "Nude"
|
||||
vox.undershirt = "Nude"
|
||||
vox.socks = "Nude"
|
||||
|
||||
// Do the initial caching of the player's body icons.
|
||||
vox.force_update_limbs()
|
||||
vox.update_dna()
|
||||
vox.update_eyes()
|
||||
|
||||
for(var/obj/item/organ/external/limb in vox.bodyparts)
|
||||
limb.status &= ~ORGAN_ROBOT
|
||||
|
||||
//Now apply cortical stack.
|
||||
var/obj/item/implant/cortical/I = new(vox)
|
||||
I.implant(vox)
|
||||
GLOB.cortical_stacks += I
|
||||
|
||||
vox.equip_vox_raider()
|
||||
vox.regenerate_icons()
|
||||
|
||||
/datum/game_mode/proc/is_raider_crew_safe()
|
||||
if(GLOB.cortical_stacks.len == 0)
|
||||
return 0
|
||||
|
||||
for(var/obj/stack in GLOB.cortical_stacks)
|
||||
if(get_area(stack) != locate(/area/shuttle/vox) && get_area(stack) != locate(/area/vox_station))
|
||||
return 0 //this is stupid as fuck
|
||||
return 1
|
||||
|
||||
/datum/game_mode/proc/is_raider_crew_alive()
|
||||
for(var/datum/mind/raider in raiders)
|
||||
if(raider.current)
|
||||
if(istype(raider.current,/mob/living/carbon/human) && raider.current.stat != DEAD)
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/datum/game_mode/proc/forge_vox_objectives()
|
||||
var/i = 1
|
||||
var/max_objectives = pick(2,2,2,2,3,3,3,4)
|
||||
var/list/objs = list()
|
||||
var/list/goals = list("kidnap","loot","salvage")
|
||||
while(i<= max_objectives)
|
||||
var/goal = pick(goals)
|
||||
var/datum/objective/heist/O
|
||||
|
||||
if(goal == "kidnap")
|
||||
goals -= "kidnap"
|
||||
O = new /datum/objective/heist/kidnap()
|
||||
else if(goal == "loot")
|
||||
O = new /datum/objective/heist/loot()
|
||||
else
|
||||
O = new /datum/objective/heist/salvage()
|
||||
O.choose_target()
|
||||
objs += O
|
||||
|
||||
i++
|
||||
|
||||
//-All- vox raids have these two objectives. Failing them loses the game.
|
||||
objs += new /datum/objective/heist/inviolate_crew
|
||||
objs += new /datum/objective/heist/inviolate_death
|
||||
|
||||
return objs
|
||||
|
||||
/datum/game_mode/proc/greet_vox(datum/mind/raider)
|
||||
to_chat(raider.current, "<span class='boldnotice'>You are a Vox Raider, fresh from the Shoal!</span>")
|
||||
to_chat(raider.current, "<span class='notice'>The Vox are a race of cunning, sharp-eyed nomadic raiders and traders endemic to the frontier and much of the unexplored galaxy. You and the crew have come to the [station_name()] for plunder, trade or both.</span>")
|
||||
to_chat(raider.current, "<span class='notice'>Vox are cowardly and will flee from larger groups, but corner one or find them en masse and they are vicious.</span>")
|
||||
to_chat(raider.current, "<span class='notice'>Use :V to voxtalk, :H to talk on your encrypted channel, and don't forget to turn on your nitrogen internals!</span>")
|
||||
to_chat(raider.current, "<span class='notice'>Choose to accomplish your objectives by either raiding the crew and taking what you need, or by attempting to trade with them.</span>")
|
||||
to_chat(raider.current, "<span class='motd'>For more information, check the wiki page: ([GLOB.configuration.url.wiki_url]/index.php/Vox_Raider)</span>")
|
||||
spawn(25)
|
||||
show_objectives(raider)
|
||||
|
||||
/datum/game_mode/heist/declare_completion()
|
||||
//No objectives, go straight to the feedback.
|
||||
if(!(raid_objectives.len)) return ..()
|
||||
|
||||
var/win_type = "Major"
|
||||
var/win_group = "Crew"
|
||||
var/win_msg = ""
|
||||
|
||||
var/success = raid_objectives.len
|
||||
|
||||
//Decrease success for failed objectives.
|
||||
for(var/datum/objective/O in raid_objectives)
|
||||
if(!(O.check_completion())) success--
|
||||
|
||||
//Set result by objectives.
|
||||
if(success == raid_objectives.len)
|
||||
win_type = "Major"
|
||||
win_group = "Vox"
|
||||
else if(success > 2)
|
||||
win_type = "Minor"
|
||||
win_group = "Vox"
|
||||
else
|
||||
win_type = "Minor"
|
||||
win_group = "Crew"
|
||||
|
||||
//Now we modify that result by the state of the vox crew.
|
||||
if(!is_raider_crew_alive())
|
||||
|
||||
win_type = "Major"
|
||||
win_group = "Crew"
|
||||
win_msg += "<B>The Vox Raiders have been wiped out!</B>"
|
||||
|
||||
else if(!is_raider_crew_safe())
|
||||
|
||||
if(win_group == "Crew" && win_type == "Minor")
|
||||
win_type = "Major"
|
||||
|
||||
win_group = "Crew"
|
||||
win_msg += "<B>The Vox Raiders have left someone behind!</B>"
|
||||
|
||||
else
|
||||
|
||||
if(win_group == "Vox")
|
||||
if(win_type == "Minor")
|
||||
|
||||
win_type = "Major"
|
||||
win_msg += "<B>The Vox Raiders escaped the station!</B>"
|
||||
else
|
||||
win_msg += "<B>The Vox Raiders were repelled!</B>"
|
||||
|
||||
to_chat(world, "<span class='warning'><FONT size = 3><B>[win_type] [win_group] victory!</B></FONT></span>")
|
||||
to_chat(world, "[win_msg]")
|
||||
SSticker.mode_result = "heist - [win_type] [win_group]"
|
||||
|
||||
var/count = 1
|
||||
for(var/datum/objective/objective in raid_objectives)
|
||||
if(objective.check_completion())
|
||||
to_chat(world, "<br><B>Objective #[count]</B>: [objective.explanation_text] <font color='green'><B>Success!</B></font>")
|
||||
SSblackbox.record_feedback("nested tally", "traitor_objective", 1, list("[objective.type]", "SUCCESS"))
|
||||
else
|
||||
to_chat(world, "<br><B>Objective #[count]</B>: [objective.explanation_text] <font color='red'>Fail.</font>")
|
||||
SSblackbox.record_feedback("nested tally", "traitor_objective", 1, list("[objective.type]", "FAIL"))
|
||||
count++
|
||||
|
||||
..()
|
||||
|
||||
/datum/game_mode/proc/auto_declare_completion_heist()
|
||||
if(raiders.len)
|
||||
var/check_return = 0
|
||||
if(GAMEMODE_IS_HEIST)
|
||||
check_return = 1
|
||||
var/text = "<FONT size = 2><B>The Vox raiders were:</B></FONT>"
|
||||
|
||||
for(var/datum/mind/vox in raiders)
|
||||
text += "<br>[vox.key] was [vox.name] ("
|
||||
if(check_return)
|
||||
var/obj/stack = raiders[vox]
|
||||
if(get_area(stack.loc) != locate(/area/shuttle/vox))
|
||||
text += "left behind)"
|
||||
continue
|
||||
if(vox.current)
|
||||
if(vox.current.stat == DEAD)
|
||||
text += "died"
|
||||
else
|
||||
text += "survived"
|
||||
if(vox.current.real_name != vox.name)
|
||||
text += " as [vox.current.real_name]"
|
||||
else
|
||||
text += "body destroyed"
|
||||
text += ")"
|
||||
|
||||
to_chat(world, text)
|
||||
|
||||
return 1
|
||||
|
||||
/datum/game_mode/heist/check_finished()
|
||||
if(!(is_raider_crew_alive()))
|
||||
return 1
|
||||
if(win_button_triggered)
|
||||
return 1
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/machinery/vox_win_button
|
||||
name = "shoal contact computer"
|
||||
desc = "Used to contact the Vox Shoal, generally to arrange for pickup."
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "tcstation"
|
||||
|
||||
/obj/machinery/vox_win_button/New()
|
||||
. = ..()
|
||||
overlays += icon('icons/obj/computer.dmi', "syndie")
|
||||
|
||||
/obj/machinery/vox_win_button/attack_hand(mob/user)
|
||||
if(!GAMEMODE_IS_HEIST || (world.time < 10 MINUTES)) //has to be heist, and at least ten minutes into the round
|
||||
to_chat(user, "<span class='warning'>\The [src] does not appear to have a connection.</span>")
|
||||
return 0
|
||||
|
||||
if(alert(user, "Warning: This will end the round. Are you sure you wish to end the round?", "Vox End", "Yes", "No") == "No")
|
||||
return 0
|
||||
|
||||
if(alert(user, "Are you *absolutely* sure you want to end the round?", "!!WARNING!!", "Yes", "No") == "No")
|
||||
return 0
|
||||
|
||||
message_admins("[key_name_admin(user)] has pressed the vox win button.")
|
||||
log_admin("[key_name(user)] pressed the vox win button during a vox round.")
|
||||
|
||||
var/datum/game_mode/heist/H = SSticker.mode
|
||||
H.win_button_triggered = 1
|
||||
@@ -619,219 +619,6 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
|
||||
else
|
||||
return 0
|
||||
|
||||
// /vg/; Vox Inviolate for humans :V
|
||||
/datum/objective/minimize_casualties
|
||||
explanation_text = "Minimise casualties."
|
||||
|
||||
/datum/objective/minimize_casualties/check_completion()
|
||||
return TRUE
|
||||
|
||||
|
||||
//Vox heist objectives.
|
||||
|
||||
/datum/objective/heist
|
||||
/datum/objective/heist/proc/choose_target()
|
||||
return
|
||||
|
||||
/datum/objective/heist/kidnap
|
||||
/datum/objective/heist/kidnap/choose_target()
|
||||
var/list/roles = list("Chief Engineer","Research Director","Roboticist","Chemist","Station Engineer")
|
||||
var/list/possible_targets = list()
|
||||
var/list/priority_targets = list()
|
||||
|
||||
for(var/datum/mind/possible_target in SSticker.minds)
|
||||
if(possible_target != owner && ishuman(possible_target.current) && (possible_target.current.stat != DEAD) && (possible_target.assigned_role != possible_target.special_role) && !possible_target.offstation_role)
|
||||
possible_targets += possible_target
|
||||
for(var/role in roles)
|
||||
if(possible_target.assigned_role == role)
|
||||
priority_targets += possible_target
|
||||
continue
|
||||
|
||||
if(priority_targets.len > 0)
|
||||
target = pick(priority_targets)
|
||||
else if(possible_targets.len > 0)
|
||||
target = pick(possible_targets)
|
||||
|
||||
if(target && target.current)
|
||||
explanation_text = "The Shoal has a need for [target.current.real_name], the [target.assigned_role]. Take [target.current.p_them()] alive."
|
||||
else
|
||||
explanation_text = "Free Objective"
|
||||
return target
|
||||
|
||||
/datum/objective/heist/kidnap/check_completion()
|
||||
if(target && target.current)
|
||||
if(target.current.stat == DEAD)
|
||||
return 0
|
||||
|
||||
var/area/shuttle/vox/A = locate() //stupid fucking hardcoding
|
||||
var/area/vox_station/B = locate() //but necessary
|
||||
|
||||
for(var/mob/living/carbon/human/M in A)
|
||||
if(target.current == M)
|
||||
return 1
|
||||
for(var/mob/living/carbon/human/M in B)
|
||||
if(target.current == M)
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
|
||||
/datum/objective/heist/loot
|
||||
/datum/objective/heist/loot/choose_target()
|
||||
var/loot = "an object"
|
||||
switch(rand(1,8))
|
||||
if(1)
|
||||
target = /obj/structure/particle_accelerator
|
||||
target_amount = 6
|
||||
loot = "a complete particle accelerator"
|
||||
if(2)
|
||||
target = /obj/machinery/the_singularitygen
|
||||
target_amount = 1
|
||||
loot = "a gravitational singularity generator"
|
||||
if(3)
|
||||
target = /obj/machinery/power/emitter
|
||||
target_amount = 4
|
||||
loot = "four emitters"
|
||||
if(4)
|
||||
target = /obj/machinery/nuclearbomb
|
||||
target_amount = 1
|
||||
loot = "a nuclear bomb"
|
||||
if(5)
|
||||
target = /obj/item/gun
|
||||
target_amount = 6
|
||||
loot = "six guns. Tasers and other non-lethal guns are acceptable"
|
||||
if(6)
|
||||
target = /obj/item/gun/energy
|
||||
target_amount = 4
|
||||
loot = "four energy guns"
|
||||
if(7)
|
||||
target = /obj/item/gun/energy/laser
|
||||
target_amount = 2
|
||||
loot = "two laser guns"
|
||||
if(8)
|
||||
target = /obj/item/gun/energy/ionrifle
|
||||
target_amount = 1
|
||||
loot = "an ion gun"
|
||||
|
||||
explanation_text = "We are lacking in hardware. Steal or trade [loot]."
|
||||
|
||||
/datum/objective/heist/loot/check_completion()
|
||||
var/total_amount = 0
|
||||
|
||||
for(var/obj/O in locate(/area/shuttle/vox))
|
||||
if(istype(O, target))
|
||||
total_amount++
|
||||
for(var/obj/I in O.contents)
|
||||
if(istype(I, target))
|
||||
total_amount++
|
||||
if(total_amount >= target_amount)
|
||||
return 1
|
||||
|
||||
for(var/obj/O in locate(/area/vox_station))
|
||||
if(istype(O, target))
|
||||
total_amount++
|
||||
for(var/obj/I in O.contents)
|
||||
if(istype(I, target))
|
||||
total_amount++
|
||||
if(total_amount >= target_amount)
|
||||
return 1
|
||||
|
||||
var/datum/game_mode/heist/H = SSticker.mode
|
||||
for(var/datum/mind/raider in H.raiders)
|
||||
if(raider.current)
|
||||
for(var/obj/O in raider.current.get_contents())
|
||||
if(istype(O,target))
|
||||
total_amount++
|
||||
if(total_amount >= target_amount)
|
||||
return 1
|
||||
|
||||
return 0
|
||||
|
||||
/datum/objective/heist/salvage
|
||||
/datum/objective/heist/salvage/choose_target()
|
||||
switch(rand(1,8))
|
||||
if(1)
|
||||
target = "metal"
|
||||
target_amount = 300
|
||||
if(2)
|
||||
target = "glass"
|
||||
target_amount = 200
|
||||
if(3)
|
||||
target = "plasteel"
|
||||
target_amount = 100
|
||||
if(4)
|
||||
target = "solid plasma"
|
||||
target_amount = 100
|
||||
if(5)
|
||||
target = "silver"
|
||||
target_amount = 50
|
||||
if(6)
|
||||
target = "gold"
|
||||
target_amount = 20
|
||||
if(7)
|
||||
target = "uranium"
|
||||
target_amount = 20
|
||||
if(8)
|
||||
target = "diamond"
|
||||
target_amount = 20
|
||||
|
||||
explanation_text = "Ransack or trade with the station and escape with [target_amount] [target]."
|
||||
|
||||
/datum/objective/heist/salvage/check_completion()
|
||||
var/total_amount = 0
|
||||
|
||||
for(var/obj/item/O in locate(/area/shuttle/vox))
|
||||
var/obj/item/stack/sheet/S
|
||||
if(istype(O,/obj/item/stack/sheet))
|
||||
if(O.name == target)
|
||||
S = O
|
||||
total_amount += S.get_amount()
|
||||
|
||||
for(var/obj/I in O.contents)
|
||||
if(istype(I,/obj/item/stack/sheet))
|
||||
if(I.name == target)
|
||||
S = I
|
||||
total_amount += S.get_amount()
|
||||
|
||||
for(var/obj/item/O in locate(/area/vox_station))
|
||||
var/obj/item/stack/sheet/S
|
||||
if(istype(O,/obj/item/stack/sheet))
|
||||
if(O.name == target)
|
||||
S = O
|
||||
total_amount += S.get_amount()
|
||||
|
||||
for(var/obj/I in O.contents)
|
||||
if(istype(I,/obj/item/stack/sheet))
|
||||
if(I.name == target)
|
||||
S = I
|
||||
total_amount += S.get_amount()
|
||||
|
||||
var/datum/game_mode/heist/H = SSticker.mode
|
||||
for(var/datum/mind/raider in H.raiders)
|
||||
if(raider.current)
|
||||
for(var/obj/item/O in raider.current.get_contents())
|
||||
if(istype(O,/obj/item/stack/sheet))
|
||||
if(O.name == target)
|
||||
var/obj/item/stack/sheet/S = O
|
||||
total_amount += S.get_amount()
|
||||
|
||||
if(total_amount >= target_amount) return 1
|
||||
return 0
|
||||
|
||||
|
||||
/datum/objective/heist/inviolate_crew
|
||||
explanation_text = "Do not leave any Vox behind, alive or dead."
|
||||
|
||||
/datum/objective/heist/inviolate_crew/check_completion()
|
||||
var/datum/game_mode/heist/H = SSticker.mode
|
||||
if(H.is_raider_crew_safe())
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/datum/objective/heist/inviolate_death
|
||||
explanation_text = "Follow the Inviolate. Minimise death and loss of resources."
|
||||
|
||||
/datum/objective/heist/inviolate_death/check_completion()
|
||||
return TRUE
|
||||
|
||||
// Traders
|
||||
// These objectives have no check_completion, they exist only to tell Sol Traders what to aim for.
|
||||
|
||||
@@ -119,10 +119,6 @@
|
||||
return list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER)
|
||||
if("Syndicate Agent")
|
||||
return list(ACCESS_SYNDICATE, ACCESS_MAINT_TUNNELS)
|
||||
if("Vox Raider")
|
||||
return list(ACCESS_VOX)
|
||||
if("Vox Trader")
|
||||
return list(ACCESS_VOX)
|
||||
if("Syndicate Commando")
|
||||
return list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER)
|
||||
if("Syndicate Officer")
|
||||
@@ -143,7 +139,7 @@
|
||||
return list(ACCESS_CENT_GENERAL, ACCESS_CENT_LIVING, ACCESS_CENT_MEDICAL, ACCESS_CENT_SECURITY, ACCESS_CENT_STORAGE, ACCESS_CENT_SHUTTLES, ACCESS_CENT_TELECOMMS, ACCESS_CENT_TELEPORTER, ACCESS_CENT_SPECOPS, ACCESS_CENT_SPECOPS_COMMANDER, ACCESS_CENT_BLACKOPS, ACCESS_CENT_THUNDER, ACCESS_CENT_BRIDGE, ACCESS_CENT_COMMANDER)
|
||||
|
||||
/proc/get_all_syndicate_access()
|
||||
return list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER, ACCESS_VOX, ACCESS_SYNDICATE_COMMAND)
|
||||
return list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER, ACCESS_SYNDICATE_COMMAND)
|
||||
|
||||
/proc/get_all_misc_access()
|
||||
return list(ACCESS_SALVAGE_CAPTAIN, ACCESS_TRADE_SOL, ACCESS_CRATE_CASH, ACCESS_AWAY01)
|
||||
@@ -380,8 +376,6 @@
|
||||
return "Syndicate Operative"
|
||||
if(ACCESS_SYNDICATE_LEADER)
|
||||
return "Syndicate Operative Leader"
|
||||
if(ACCESS_VOX)
|
||||
return "Vox"
|
||||
if(ACCESS_SYNDICATE_COMMAND)
|
||||
return "Syndicate Command"
|
||||
|
||||
|
||||
@@ -32,7 +32,6 @@ GLOBAL_LIST_INIT(role_playtime_requirements, list(
|
||||
ROLE_REV = 10,
|
||||
ROLE_OPERATIVE = 20,
|
||||
ROLE_CULTIST = 20,
|
||||
ROLE_RAIDER = 10,
|
||||
ROLE_ALIEN = 10,
|
||||
ROLE_ABDUCTOR = 20,
|
||||
))
|
||||
|
||||
@@ -152,13 +152,6 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/awaystart) //Without this away mission
|
||||
spawner_list = GLOB.ertdirector
|
||||
return ..()
|
||||
|
||||
/obj/effect/landmark/spawner/raider_spawn
|
||||
name = "voxstart"
|
||||
|
||||
/obj/effect/landmark/spawner/raider_spawn/Initialize(mapload)
|
||||
spawner_list = GLOB.raider_spawn
|
||||
return ..()
|
||||
|
||||
/obj/effect/landmark/spawner/ninjastart
|
||||
name = "ninjastart"
|
||||
|
||||
|
||||
@@ -435,9 +435,6 @@
|
||||
if(SSticker.mode.apprentices.len)
|
||||
dat += check_role_table("Apprentices", SSticker.mode.apprentices)
|
||||
|
||||
if(SSticker.mode.raiders.len)
|
||||
dat += check_role_table("Raiders", SSticker.mode.raiders)
|
||||
|
||||
/*if(ticker.mode.ninjas.len)
|
||||
dat += check_role_table("Ninjas", ticker.mode.ninjas)*/
|
||||
|
||||
|
||||
@@ -67,10 +67,6 @@
|
||||
if(!makeVampires())
|
||||
to_chat(usr, "<span class='warning'>Unfortunately there weren't enough candidates available.</span>")
|
||||
if("7")
|
||||
log_admin("[key_name(usr)] has spawned vox raiders.")
|
||||
if(!makeVoxRaiders())
|
||||
to_chat(usr, "<span class='warning'>Unfortunately there weren't enough candidates available.</span>")
|
||||
if("8")
|
||||
log_admin("[key_name(usr)] has spawned an abductor team.")
|
||||
if(!makeAbductorTeam())
|
||||
to_chat(usr, "<span class='warning'>Unfortunately there weren't enough candidates available.</span>")
|
||||
|
||||
@@ -19,8 +19,7 @@
|
||||
<a href='?src=[UID()];makeAntag=4'>Make Cult</a><br>
|
||||
<a href='?src=[UID()];makeAntag=5'>Make Wizard (Requires Ghosts)</a><br>
|
||||
<a href='?src=[UID()];makeAntag=6'>Make Vampires</a><br>
|
||||
<a href='?src=[UID()];makeAntag=7'>Make Vox Raiders (Requires Ghosts)</a><br>
|
||||
<a href='?src=[UID()];makeAntag=8'>Make Abductor Team (Requires Ghosts)</a><br>
|
||||
<a href='?src=[UID()];makeAntag=7'>Make Abductor Team (Requires Ghosts)</a><br>
|
||||
"}
|
||||
usr << browse(dat, "window=oneclickantag;size=400x400")
|
||||
return
|
||||
@@ -410,111 +409,6 @@
|
||||
|
||||
return new_syndicate_commando
|
||||
|
||||
/datum/admins/proc/makeVoxRaiders()
|
||||
|
||||
var/list/mob/candidates = list()
|
||||
var/mob/theghost = null
|
||||
var/time_passed = world.time
|
||||
var/input = "Disregard shinies, acquire hardware."
|
||||
|
||||
var/leader_chosen = 0 //when the leader is chosen. The last person spawned.
|
||||
|
||||
var/antnum = input(owner, "How many raiders you want to create? Enter 0 to cancel.","Amount:", 0) as num
|
||||
if(!antnum || antnum <= 0)
|
||||
return
|
||||
log_admin("[key_name(owner)] tried making Vox Raiders with One-Click-Antag")
|
||||
message_admins("[key_name_admin(owner)] tried making Vox Raiders with One-Click-Antag")
|
||||
//Generates a list of candidates from active ghosts.
|
||||
for(var/mob/G in GLOB.respawnable_list)
|
||||
if(istype(G) && G.client && (ROLE_RAIDER in G.client.prefs.be_special))
|
||||
if(player_old_enough_antag(G.client,ROLE_RAIDER))
|
||||
if(!jobban_isbanned(G, ROLE_RAIDER) && !jobban_isbanned(G, ROLE_SYNDICATE))
|
||||
spawn(0)
|
||||
switch(alert(G,"Do you wish to be considered for a vox raiding party arriving on the station?","Please answer in 30 seconds!","Yes","No"))
|
||||
if("Yes")
|
||||
if((world.time-time_passed)>300)//If more than 30 game seconds passed.
|
||||
return
|
||||
candidates += G
|
||||
if("No")
|
||||
return
|
||||
else
|
||||
return
|
||||
|
||||
sleep(300) //Debug.
|
||||
|
||||
for(var/mob/dead/observer/G in candidates)
|
||||
if(!G.key)
|
||||
candidates.Remove(G)
|
||||
|
||||
if(candidates.len)
|
||||
var/raiders = min(antnum, candidates.len)
|
||||
//Spawns vox raiders and equips them.
|
||||
for(var/thing in GLOB.landmarks_list)
|
||||
var/obj/effect/landmark/L = thing
|
||||
if(L.name == "voxstart")
|
||||
if(raiders<=0)
|
||||
break
|
||||
|
||||
var/mob/living/carbon/human/new_vox = create_vox_raider(L, leader_chosen)
|
||||
|
||||
while((!theghost || !theghost.client) && candidates.len)
|
||||
theghost = pick(candidates)
|
||||
candidates.Remove(theghost)
|
||||
|
||||
if(!theghost)
|
||||
qdel(new_vox)
|
||||
break
|
||||
|
||||
new_vox.key = theghost.key
|
||||
SSticker.mode.traitors += new_vox.mind
|
||||
|
||||
to_chat(new_vox, "<span class='notice'>You are a Vox Primalis, fresh out of the Shoal. Your ship has arrived at the Tau Ceti system hosting the NSV Exodus... or was it the Luna? NSS? Utopia? Nobody is really sure, but everyong is raring to start pillaging! Your current goal is: <span class='danger'> [input]</span></span>")
|
||||
to_chat(new_vox, "<span class='warning'>Don't forget to turn on your nitrogen internals!</span>")
|
||||
|
||||
raiders--
|
||||
else
|
||||
return 0
|
||||
return 1
|
||||
|
||||
/datum/admins/proc/create_vox_raider(obj/spawn_location, leader_chosen = 0)
|
||||
|
||||
var/sounds = rand(2,8)
|
||||
var/i = 0
|
||||
var/newname = ""
|
||||
|
||||
while(i<=sounds)
|
||||
i++
|
||||
newname += pick(list("ti","hi","ki","ya","ta","ha","ka","ya","chi","cha","kah"))
|
||||
|
||||
var/mob/living/carbon/human/new_vox = new /mob/living/carbon/human/vox(spawn_location.loc)
|
||||
|
||||
new_vox.add_language("Tradeband")
|
||||
new_vox.real_name = capitalize(newname)
|
||||
new_vox.dna.real_name = new_vox.real_name
|
||||
new_vox.name = new_vox.real_name
|
||||
new_vox.age = rand(12,20)
|
||||
new_vox.flavor_text = ""
|
||||
new_vox.change_eye_color(rand(1, 255), rand(1, 255), rand(1, 255))
|
||||
new_vox.s_tone = rand(1, 6)
|
||||
|
||||
// Do the initial caching of the player's body icons.
|
||||
new_vox.force_update_limbs()
|
||||
new_vox.update_dna()
|
||||
new_vox.update_eyes()
|
||||
|
||||
for(var/obj/item/organ/external/limb in new_vox.bodyparts)
|
||||
limb.status &= ~ORGAN_ROBOT
|
||||
|
||||
//Now apply cortical stack.
|
||||
var/obj/item/implant/cortical/I = new(new_vox)
|
||||
I.implant(new_vox)
|
||||
GLOB.cortical_stacks += I
|
||||
|
||||
new_vox.equip_vox_raider()
|
||||
new_vox.regenerate_icons()
|
||||
|
||||
return new_vox
|
||||
|
||||
/datum/admins/proc/makeVampires()
|
||||
|
||||
var/datum/game_mode/vampire/temp = new
|
||||
|
||||
@@ -1,65 +0,0 @@
|
||||
GLOBAL_VAR_INIT(vox_tick, 1)
|
||||
|
||||
/mob/living/carbon/human/proc/equip_vox_raider()
|
||||
|
||||
var/obj/item/radio/R = new /obj/item/radio/headset/syndicate(src)
|
||||
R.set_frequency(SYND_FREQ) //Same frequency as the syndicate team in Nuke mode.
|
||||
equip_to_slot_or_del(R, slot_l_ear)
|
||||
|
||||
equip_to_slot_or_del(new /obj/item/clothing/under/vox/vox_robes(src), slot_w_uniform)
|
||||
equip_to_slot_or_del(new /obj/item/clothing/shoes/magboots/vox(src), slot_shoes) // REPLACE THESE WITH CODED VOX ALTERNATIVES.
|
||||
equip_to_slot_or_del(new /obj/item/clothing/gloves/color/yellow/vox(src), slot_gloves) // AS ABOVE.
|
||||
|
||||
switch(GLOB.vox_tick)
|
||||
if(1) // Vox raider!
|
||||
equip_to_slot_or_del(new /obj/item/clothing/suit/space/vox/carapace(src), slot_wear_suit)
|
||||
equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/vox/carapace(src), slot_head)
|
||||
equip_to_slot_or_del(new /obj/item/melee/classic_baton/telescopic(src), slot_belt)
|
||||
equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/monocle(src), slot_glasses) // REPLACE WITH CODED VOX ALTERNATIVE.
|
||||
equip_to_slot_or_del(new /obj/item/chameleon(src), slot_l_store)
|
||||
|
||||
var/obj/item/gun/energy/spikethrower/W = new(src)
|
||||
equip_to_slot_or_del(W, slot_r_hand)
|
||||
|
||||
|
||||
if(2) // Vox engineer!
|
||||
equip_to_slot_or_del(new /obj/item/clothing/suit/space/vox/pressure(src), slot_wear_suit)
|
||||
equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/vox/pressure(src), slot_head)
|
||||
equip_to_slot_or_del(new /obj/item/storage/belt/utility/full(src), slot_belt)
|
||||
equip_to_slot_or_del(new /obj/item/clothing/glasses/meson(src), slot_glasses) // REPLACE WITH CODED VOX ALTERNATIVE.
|
||||
equip_to_slot_or_del(new /obj/item/storage/box/emps(src), slot_r_hand)
|
||||
equip_to_slot_or_del(new /obj/item/multitool(src), slot_l_hand)
|
||||
|
||||
|
||||
if(3) // Vox saboteur!
|
||||
equip_to_slot_or_del(new /obj/item/clothing/suit/space/vox/stealth(src), slot_wear_suit)
|
||||
equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/vox/stealth(src), slot_head)
|
||||
equip_to_slot_or_del(new /obj/item/storage/belt/utility/full(src), slot_belt)
|
||||
equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/monocle(src), slot_glasses) // REPLACE WITH CODED VOX ALTERNATIVE.
|
||||
equip_to_slot_or_del(new /obj/item/card/emag(src), slot_l_store)
|
||||
equip_to_slot_or_del(new /obj/item/gun/dartgun/vox/raider(src), slot_r_hand)
|
||||
equip_to_slot_or_del(new /obj/item/multitool(src), slot_l_hand)
|
||||
|
||||
if(4) // Vox medic!
|
||||
equip_to_slot_or_del(new /obj/item/clothing/suit/space/vox/medic(src), slot_wear_suit)
|
||||
equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/vox/medic(src), slot_head)
|
||||
equip_to_slot_or_del(new /obj/item/storage/belt/utility/full(src), slot_belt) // Who needs actual surgical tools?
|
||||
equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health(src), slot_glasses) // REPLACE WITH CODED VOX ALTERNATIVE.
|
||||
equip_to_slot_or_del(new /obj/item/circular_saw(src), slot_l_store)
|
||||
equip_to_slot_or_del(new /obj/item/gun/dartgun/vox/medical, slot_r_hand)
|
||||
|
||||
equip_to_slot_or_del(new /obj/item/clothing/mask/breath/vox(src), slot_wear_mask)
|
||||
equip_to_slot_or_del(new /obj/item/tank/internals/nitrogen(src), slot_back)
|
||||
equip_to_slot_or_del(new /obj/item/flashlight(src), slot_r_store)
|
||||
|
||||
var/obj/item/card/id/syndicate/vox/W = new(src)
|
||||
W.name = "[real_name]'s Legitimate Human ID Card"
|
||||
W.assignment = "Trader"
|
||||
W.registered_name = real_name
|
||||
W.registered_user = src
|
||||
equip_to_slot_or_del(W, slot_wear_id)
|
||||
|
||||
GLOB.vox_tick++
|
||||
if(GLOB.vox_tick > 4) GLOB.vox_tick = 1
|
||||
|
||||
return 1
|
||||
@@ -12,7 +12,6 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts
|
||||
ROLE_REVENANT = 14,
|
||||
ROLE_OPERATIVE = 21,
|
||||
ROLE_CULTIST = 21,
|
||||
ROLE_RAIDER = 21,
|
||||
ROLE_ALIEN = 21,
|
||||
ROLE_DEMON = 21,
|
||||
ROLE_SENTIENT = 21,
|
||||
|
||||
@@ -1,46 +1,3 @@
|
||||
/obj/item/gun/energy/spikethrower //It's like the cyborg LMG, uses energy to make spikes
|
||||
name = "\improper Vox spike thrower"
|
||||
desc = "A vicious alien projectile weapon. Parts of it quiver gelatinously, as though the thing is insectile and alive."
|
||||
icon = 'icons/obj/guns/projectile.dmi'
|
||||
icon_state = "spikethrower"
|
||||
item_state = "spikethrower"
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
fire_sound_text = "a strange noise"
|
||||
can_suppress = 0
|
||||
burst_size = 2 // burst has to be stored here
|
||||
can_charge = FALSE
|
||||
selfcharge = TRUE
|
||||
charge_delay = 10
|
||||
restricted_species = list(/datum/species/vox)
|
||||
ammo_type = list(/obj/item/ammo_casing/energy/spike)
|
||||
|
||||
/obj/item/gun/energy/spikethrower/emp_act()
|
||||
return
|
||||
|
||||
/obj/item/ammo_casing/energy/spike
|
||||
name = "alloy spike"
|
||||
desc = "A broadhead spike made out of a weird silvery metal."
|
||||
projectile_type = /obj/item/projectile/bullet/spike
|
||||
muzzle_flash_effect = null
|
||||
e_cost = 100
|
||||
delay = 3 //and delay has to be stored here on energy guns
|
||||
select_name = "spike"
|
||||
fire_sound = 'sound/weapons/bladeslice.ogg'
|
||||
|
||||
/obj/item/projectile/bullet/spike
|
||||
name = "alloy spike"
|
||||
desc = "It's about a foot of weird silvery metal with a wicked point."
|
||||
damage = 25
|
||||
stun = 1
|
||||
armour_penetration = 30
|
||||
icon_state = "magspear"
|
||||
|
||||
/obj/item/projectile/bullet/spike/on_hit(atom/target, blocked = 0)
|
||||
if((blocked != 100) && istype(target, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = target
|
||||
H.bleed(50)
|
||||
..()
|
||||
|
||||
//This gun only functions for armalis. The on-sprite is too huge to render properly on other sprites.
|
||||
/obj/item/gun/energy/noisecannon
|
||||
name = "alien heavy cannon"
|
||||
|
||||
@@ -1,298 +0,0 @@
|
||||
/obj/item/dart_cartridge
|
||||
name = "dart cartridge"
|
||||
desc = "A rack of hollow darts."
|
||||
icon = 'icons/obj/ammo.dmi'
|
||||
icon_state = "darts-5"
|
||||
item_state = "rcdammo"
|
||||
opacity = 0
|
||||
density = 0
|
||||
anchored = 0.0
|
||||
origin_tech = "materials=2"
|
||||
var/darts = 5
|
||||
|
||||
/obj/item/dart_cartridge/update_icon()
|
||||
if(!darts)
|
||||
icon_state = "darts-0"
|
||||
else if(darts > 5)
|
||||
icon_state = "darts-5"
|
||||
else
|
||||
icon_state = "darts-[darts]"
|
||||
return 1
|
||||
|
||||
/obj/item/gun/dartgun
|
||||
name = "dart gun"
|
||||
desc = "A small gas-powered dartgun, capable of delivering chemical cocktails swiftly across short distances."
|
||||
icon_state = "dartgun-empty"
|
||||
|
||||
var/list/beakers = list() //All containers inside the gun.
|
||||
var/list/mixing = list() //Containers being used for mixing.
|
||||
var/obj/item/dart_cartridge/cartridge = null //Container of darts.
|
||||
var/max_beakers = 3
|
||||
var/dart_reagent_amount = 15
|
||||
var/containers_type = /obj/item/reagent_containers/glass/beaker
|
||||
var/list/starting_chems = null
|
||||
|
||||
/obj/item/gun/dartgun/update_icon()
|
||||
if(!cartridge)
|
||||
icon_state = "dartgun-e"
|
||||
return 1
|
||||
|
||||
if(!cartridge.darts)
|
||||
icon_state = "dartgun-0"
|
||||
else if(cartridge.darts > 5)
|
||||
icon_state = "dartgun-5"
|
||||
else
|
||||
icon_state = "dartgun-[cartridge.darts]"
|
||||
return 1
|
||||
|
||||
/obj/item/gun/dartgun/New()
|
||||
..()
|
||||
if(starting_chems)
|
||||
for(var/chem in starting_chems)
|
||||
var/obj/B = new containers_type(src)
|
||||
B.reagents.add_reagent(chem, 50)
|
||||
beakers += B
|
||||
cartridge = new /obj/item/dart_cartridge(src)
|
||||
update_icon()
|
||||
|
||||
/obj/item/gun/dartgun/examine(mob/user)
|
||||
. = ..()
|
||||
if(get_dist(user, src) <= 2)
|
||||
if(beakers.len)
|
||||
. += "<span class='notice'>[src] contains:</span>"
|
||||
for(var/obj/item/reagent_containers/glass/beaker/B in beakers)
|
||||
if(B.reagents && B.reagents.reagent_list.len)
|
||||
for(var/datum/reagent/R in B.reagents.reagent_list)
|
||||
. += "<span class='notice'>[R.volume] units of [R.name]</span>"
|
||||
|
||||
/obj/item/gun/dartgun/attackby(obj/item/I as obj, mob/user as mob, params)
|
||||
if(istype(I, /obj/item/dart_cartridge))
|
||||
|
||||
var/obj/item/dart_cartridge/D = I
|
||||
|
||||
if(!D.darts)
|
||||
to_chat(user, "<span class='warning'>[D] is empty.</span>")
|
||||
return 0
|
||||
|
||||
if(cartridge)
|
||||
if(cartridge.darts <= 0)
|
||||
src.remove_cartridge()
|
||||
else
|
||||
to_chat(user, "<span class='warning'>There's already a cartridge in [src].</span>")
|
||||
return 0
|
||||
|
||||
user.drop_item()
|
||||
cartridge = D
|
||||
D.forceMove(src)
|
||||
to_chat(user, "<span class='notice'>You slot [D] into [src].</span>")
|
||||
update_icon()
|
||||
return
|
||||
if(istype(I, /obj/item/reagent_containers/glass))
|
||||
if(!istype(I, containers_type))
|
||||
to_chat(user, "<span class='warning'>[I] doesn't seem to fit into [src].</span>")
|
||||
return
|
||||
if(beakers.len >= max_beakers)
|
||||
to_chat(user, "<span class='warning'>[src] already has [max_beakers] beakers in it - another one isn't going to fit!</span>")
|
||||
return
|
||||
var/obj/item/reagent_containers/glass/beaker/B = I
|
||||
if(!user.drop_item())
|
||||
to_chat(user, "<span class='warning'>\The [B] is stuck to you!</span>")
|
||||
return
|
||||
B.forceMove(src)
|
||||
beakers += B
|
||||
to_chat(user, "<span class='notice'>You slot [B] into [src].</span>")
|
||||
src.updateUsrDialog()
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/gun/dartgun/can_shoot()
|
||||
if(!cartridge)
|
||||
return 0
|
||||
else
|
||||
return cartridge.darts
|
||||
|
||||
/obj/item/gun/dartgun/proc/has_selected_beaker_reagents()
|
||||
return 0
|
||||
|
||||
/obj/item/gun/dartgun/proc/remove_cartridge()
|
||||
if(cartridge)
|
||||
to_chat(usr, "<span class='notice'>You pop the cartridge out of [src].</span>")
|
||||
var/obj/item/dart_cartridge/C = cartridge
|
||||
C.forceMove(get_turf(src))
|
||||
C.update_icon()
|
||||
cartridge = null
|
||||
src.update_icon()
|
||||
|
||||
/obj/item/gun/dartgun/proc/get_mixed_syringe()
|
||||
if(!cartridge)
|
||||
return 0
|
||||
if(!cartridge.darts)
|
||||
return 0
|
||||
|
||||
var/obj/item/reagent_containers/syringe/dart = new(src)
|
||||
|
||||
if(mixing.len)
|
||||
var/mix_amount = dart_reagent_amount/mixing.len
|
||||
for(var/obj/item/reagent_containers/glass/beaker/B in mixing)
|
||||
B.reagents.trans_to(dart,mix_amount)
|
||||
|
||||
return dart
|
||||
|
||||
/obj/item/gun/dartgun/proc/fire_dart(atom/target, mob/user)
|
||||
if(locate (/obj/structure/table, src.loc))
|
||||
return
|
||||
else
|
||||
var/turf/trg = get_turf(target)
|
||||
var/obj/effect/syringe_gun_dummy/D = new/obj/effect/syringe_gun_dummy(get_turf(src))
|
||||
var/obj/item/reagent_containers/syringe/S = get_mixed_syringe()
|
||||
if(!S)
|
||||
to_chat(user, "<span class='warning'>There are no darts in [src]!</span>")
|
||||
return
|
||||
if(!S.reagents)
|
||||
to_chat(user, "<span class='warning'>There are no reagents available!</span>")
|
||||
return
|
||||
cartridge.darts--
|
||||
src.update_icon()
|
||||
S.reagents.trans_to(D, S.reagents.total_volume)
|
||||
qdel(S)
|
||||
D.icon_state = "syringeproj"
|
||||
D.name = "syringe"
|
||||
D.reagents.set_reacting(FALSE)
|
||||
playsound(user.loc, 'sound/items/syringeproj.ogg', 50, 1)
|
||||
|
||||
for(var/i=0, i<6, i++)
|
||||
if(!D) break
|
||||
if(D.loc == trg) break
|
||||
step_towards(D,trg)
|
||||
|
||||
if(D)
|
||||
for(var/mob/living/carbon/M in D.loc)
|
||||
if(!istype(M,/mob/living/carbon)) continue
|
||||
if(M == user) continue
|
||||
//Syringe gun attack logging by Yvarov
|
||||
var/R
|
||||
if(D.reagents)
|
||||
for(var/datum/reagent/A in D.reagents.reagent_list)
|
||||
R += A.id + " ("
|
||||
R += num2text(A.volume) + "),"
|
||||
|
||||
add_attack_logs(user, M, "Shot with dartgun containing [R]")
|
||||
|
||||
if(D.reagents)
|
||||
D.reagents.trans_to(M, 15)
|
||||
to_chat(M, "<span class='danger'>You feel a slight prick.</span>")
|
||||
|
||||
qdel(D)
|
||||
break
|
||||
if(D)
|
||||
for(var/atom/A in D.loc)
|
||||
if(A == user) continue
|
||||
if(A.density) qdel(D)
|
||||
|
||||
sleep(1)
|
||||
|
||||
if(D) spawn(10) qdel(D)
|
||||
|
||||
return
|
||||
|
||||
/obj/item/gun/dartgun/afterattack(atom/target, mob/living/user, flag, params)
|
||||
if(!isturf(target.loc) || target == user)
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/item/gun/dartgun/attack_self(mob/user)
|
||||
user.set_machine(src)
|
||||
var/dat = "<b>[src] mixing control:</b><br><br>"
|
||||
|
||||
if(beakers.len)
|
||||
var/i = 1
|
||||
for(var/obj/item/reagent_containers/glass/beaker/B in beakers)
|
||||
dat += "Beaker [i] contains: "
|
||||
if(B.reagents && B.reagents.reagent_list.len)
|
||||
for(var/datum/reagent/R in B.reagents.reagent_list)
|
||||
dat += "<br> [R.volume] units of [R.name], "
|
||||
if(check_beaker_mixing(B))
|
||||
dat += text("<A href='?src=[UID()];stop_mix=[i]'><font color='green'>Mixing</font></A> ")
|
||||
else
|
||||
dat += text("<A href='?src=[UID()];mix=[i]'><font color='red'>Not mixing</font></A> ")
|
||||
else
|
||||
dat += "nothing."
|
||||
dat += " \[<A href='?src=[UID()];eject=[i]'>Eject</A>\]<br>"
|
||||
i++
|
||||
else
|
||||
dat += "There are no beakers inserted!<br><br>"
|
||||
|
||||
if(cartridge)
|
||||
if(cartridge.darts)
|
||||
dat += "The dart cartridge has [cartridge.darts] shots remaining."
|
||||
else
|
||||
dat += "<font color='red'>The dart cartridge is empty!</font>"
|
||||
dat += " \[<A href='?src=[UID()];eject_cart=1'>Eject</A>\]"
|
||||
|
||||
user << browse(dat, "window=dartgun")
|
||||
onclose(user, "dartgun", src)
|
||||
|
||||
/obj/item/gun/dartgun/proc/check_beaker_mixing(obj/item/B)
|
||||
if(!mixing || !beakers)
|
||||
return 0
|
||||
for(var/obj/item/M in mixing)
|
||||
if(M == B)
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/obj/item/gun/dartgun/Topic(href, href_list)
|
||||
src.add_fingerprint(usr)
|
||||
if(href_list["stop_mix"])
|
||||
var/index = text2num(href_list["stop_mix"])
|
||||
if(index <= beakers.len)
|
||||
for(var/obj/item/M in mixing)
|
||||
if(M == beakers[index])
|
||||
mixing -= M
|
||||
break
|
||||
else if(href_list["mix"])
|
||||
var/index = text2num(href_list["mix"])
|
||||
if(index <= beakers.len)
|
||||
mixing += beakers[index]
|
||||
else if(href_list["eject"])
|
||||
var/index = text2num(href_list["eject"])
|
||||
if(index <= beakers.len)
|
||||
if(beakers[index])
|
||||
var/obj/item/reagent_containers/glass/beaker/B = beakers[index]
|
||||
to_chat(usr, "<span class='notice'>You remove [B] from [src].</span>")
|
||||
mixing -= B
|
||||
beakers -= B
|
||||
B.forceMove(get_turf(src))
|
||||
else if(href_list["eject_cart"])
|
||||
remove_cartridge()
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
|
||||
/obj/item/gun/dartgun/process_fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, message = 1, params, zone_override)
|
||||
if(cartridge)
|
||||
spawn(0)
|
||||
fire_dart(target,user)
|
||||
else
|
||||
to_chat(usr, "<span class='warning'>[src] is empty.</span>")
|
||||
|
||||
|
||||
/obj/item/gun/dartgun/vox
|
||||
name = "alien dart gun"
|
||||
desc = "A small gas-powered dartgun, fitted for nonhuman hands."
|
||||
|
||||
/obj/item/gun/dartgun/vox/medical
|
||||
starting_chems = list("silver_sulfadiazine","styptic_powder","charcoal")
|
||||
|
||||
/obj/item/gun/dartgun/vox/raider
|
||||
starting_chems = list("space_drugs","ether","haloperidol")
|
||||
|
||||
/obj/effect/syringe_gun_dummy //moved this shitty thing here
|
||||
name = ""
|
||||
desc = ""
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "null"
|
||||
anchored = 1
|
||||
density = 0
|
||||
|
||||
/obj/effect/syringe_gun_dummy/New()
|
||||
. = ..()
|
||||
create_reagents(15)
|
||||
@@ -100,3 +100,15 @@
|
||||
y_offset = 0
|
||||
|
||||
#undef SYNDICATE_CHALLENGE_TIMER
|
||||
|
||||
// Fuck it its syndicate now
|
||||
/obj/machinery/computer/camera_advanced/shuttle_docker/admin/vox
|
||||
name = "skipjack navigation computer"
|
||||
desc = "Used to designate a precise transit location for the skipjack."
|
||||
flags = NODECONSTRUCT
|
||||
access_mining = FALSE
|
||||
|
||||
/obj/machinery/computer/shuttle/admin/vox
|
||||
name = "vox skipjack console"
|
||||
req_access = list(ACCESS_VOX)
|
||||
possible_destinations = "admin_home;admin_custom"
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
/obj/machinery/computer/shuttle/vox
|
||||
name = "skipjack control console"
|
||||
req_access = list(ACCESS_VOX)
|
||||
shuttleId = "skipjack"
|
||||
possible_destinations = "skipjack_away;skipjack_ne;skipjack_nw;skipjack_se;skipjack_sw;skipjack_z5;skipjack_custom"
|
||||
resistance_flags = INDESTRUCTIBLE
|
||||
flags = NODECONSTRUCT
|
||||
|
||||
/obj/machinery/computer/camera_advanced/shuttle_docker/vox
|
||||
name = "skipjack navigation computer"
|
||||
desc = "Used to designate a precise transit location for the skipjack."
|
||||
icon_screen = "navigation"
|
||||
icon_keyboard = "med_key"
|
||||
shuttleId = "skipjack"
|
||||
shuttlePortId = "skipjack_custom"
|
||||
view_range = 13
|
||||
x_offset = -10
|
||||
y_offset = -10
|
||||
resistance_flags = INDESTRUCTIBLE
|
||||
flags = NODECONSTRUCT
|
||||
@@ -231,7 +231,6 @@ gamemode_probabilities = [
|
||||
{gamemode = "cult", probability = 3},
|
||||
{gamemode = "extend-a-traitormongous", probability = 2}, # Autotraitor
|
||||
{gamemode = "extended", probability = 3},
|
||||
{gamemode = "heist", probability = 0},
|
||||
{gamemode = "nuclear", probability = 2},
|
||||
{gamemode = "raginmages", probability = 0},
|
||||
{gamemode = "revolution", probability = 0},
|
||||
|
||||
@@ -579,7 +579,6 @@
|
||||
#include "code\game\gamemodes\cult\ritual.dm"
|
||||
#include "code\game\gamemodes\cult\runes.dm"
|
||||
#include "code\game\gamemodes\extended\extended.dm"
|
||||
#include "code\game\gamemodes\heist\heist.dm"
|
||||
#include "code\game\gamemodes\malfunction\Malf_Modules.dm"
|
||||
#include "code\game\gamemodes\miniantags\abduction\abductee_objectives.dm"
|
||||
#include "code\game\gamemodes\miniantags\abduction\abduction.dm"
|
||||
@@ -1262,7 +1261,6 @@
|
||||
#include "code\modules\admin\verbs\toggledebugverbs.dm"
|
||||
#include "code\modules\admin\verbs\tripAI.dm"
|
||||
#include "code\modules\admin\verbs\view_instances.dm"
|
||||
#include "code\modules\admin\verbs\vox_raiders.dm"
|
||||
#include "code\modules\admin\verbs\SDQL2\SDQL_2.dm"
|
||||
#include "code\modules\admin\verbs\SDQL2\SDQL_2_parser.dm"
|
||||
#include "code\modules\admin\verbs\SDQL2\useful_procs.dm"
|
||||
@@ -2281,7 +2279,6 @@
|
||||
#include "code\modules\projectiles\ammunition\magazines.dm"
|
||||
#include "code\modules\projectiles\ammunition\special.dm"
|
||||
#include "code\modules\projectiles\guns\alien.dm"
|
||||
#include "code\modules\projectiles\guns\dartgun.dm"
|
||||
#include "code\modules\projectiles\guns\energy.dm"
|
||||
#include "code\modules\projectiles\guns\grenade_launcher.dm"
|
||||
#include "code\modules\projectiles\guns\magic.dm"
|
||||
@@ -2433,7 +2430,6 @@
|
||||
#include "code\modules\shuttle\shuttle_rotate.dm"
|
||||
#include "code\modules\shuttle\supply.dm"
|
||||
#include "code\modules\shuttle\syndicate.dm"
|
||||
#include "code\modules\shuttle\vox.dm"
|
||||
#include "code\modules\space_management\heap_space_level.dm"
|
||||
#include "code\modules\space_management\level_check.dm"
|
||||
#include "code\modules\space_management\level_traits.dm"
|
||||
|
||||
Reference in New Issue
Block a user