Removes heist mode & associated code (#17256)

This commit is contained in:
AffectedArc07
2022-01-11 11:36:57 +01:00
committed by GitHub
parent b5171e3ad6
commit 1c8a28425a
27 changed files with 2903 additions and 3706 deletions
+5 -49
View File
@@ -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
+3 -36
View File
@@ -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
+1 -12
View File
@@ -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
File diff suppressed because it is too large Load Diff
+948
View File
@@ -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
"}
-1
View File
@@ -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"
-2
View File
@@ -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
-1
View File
@@ -10,7 +10,6 @@ GLOBAL_LIST_INIT(antag_roles, list(
ROLE_BLOB,
ROLE_NINJA,
ROLE_SHADOWLING,
ROLE_RAIDER,
ROLE_VAMPIRE,
ROLE_BORER,
ROLE_DEMON,
-7
View File
@@ -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)
+5
View File
@@ -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."
-8
View File
@@ -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"
-316
View File
@@ -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
-213
View File
@@ -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.
+1 -7
View File
@@ -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"
-1
View File
@@ -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,
))
-7
View File
@@ -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"
-3
View File
@@ -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)*/
-4
View File
@@ -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>")
+1 -107
View File
@@ -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
-65
View File
@@ -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,
-43
View File
@@ -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"
-298
View File
@@ -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)
+12
View File
@@ -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"
-20
View File
@@ -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
-1
View File
@@ -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},
-4
View File
@@ -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"