mirror of
https://github.com/Sandstorm-Station/Sandstorm-Station-13.git
synced 2026-07-21 05:04:43 +01:00
Merge branch 'master' of https://github.com/Citadel-Station-13/Citadel-Station-13 into master
This commit is contained in:
@@ -112,7 +112,7 @@
|
||||
/obj/machinery/light/small{
|
||||
dir = 8
|
||||
},
|
||||
/turf/closed/mineral/random/snow,
|
||||
/turf/open/floor/plating/asteroid/snow/icemoon,
|
||||
/area/icemoon/underground/unexplored/rivers)
|
||||
"eH" = (
|
||||
/obj/machinery/airalarm{
|
||||
@@ -581,7 +581,7 @@
|
||||
desc = "A horn off of a bicycle. This one has been charred to hell and back, yet somehow it still honks.";
|
||||
name = "charred bike horn"
|
||||
},
|
||||
/turf/closed/mineral/random/snow,
|
||||
/turf/open/floor/plating/asteroid/snow/icemoon,
|
||||
/area/icemoon/underground/unexplored/rivers)
|
||||
"nN" = (
|
||||
/turf/closed/wall/r_wall,
|
||||
@@ -722,6 +722,9 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mine/living_quarters)
|
||||
"rs" = (
|
||||
/turf/open/floor/plating/asteroid/snow/icemoon,
|
||||
/area/icemoon/underground/unexplored/rivers)
|
||||
"ry" = (
|
||||
/obj/effect/turf_decal/tile/purple{
|
||||
dir = 8
|
||||
@@ -809,6 +812,9 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/mine/living_quarters)
|
||||
"sL" = (
|
||||
/turf/open/transparent/openspace/icemoon,
|
||||
/area/icemoon/underground/unexplored/rivers)
|
||||
"sM" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/storage/firstaid/toxin{
|
||||
@@ -2367,7 +2373,7 @@
|
||||
/obj/machinery/light/small{
|
||||
dir = 1
|
||||
},
|
||||
/turf/closed/mineral/random/snow,
|
||||
/turf/open/floor/plating/asteroid/snow/icemoon,
|
||||
/area/icemoon/underground/unexplored/rivers)
|
||||
"WE" = (
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
|
||||
@@ -29940,9 +29946,9 @@ ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -30199,8 +30205,8 @@ ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -30456,8 +30462,8 @@ ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -30712,10 +30718,10 @@ ah
|
||||
ah
|
||||
ah
|
||||
nE
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
sL
|
||||
sL
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -30968,11 +30974,11 @@ ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
sL
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -31498,8 +31504,8 @@ ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -31749,14 +31755,14 @@ ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -32005,14 +32011,14 @@ Gw
|
||||
op
|
||||
nd
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
sL
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -32262,15 +32268,15 @@ GI
|
||||
Lg
|
||||
nd
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
sL
|
||||
sL
|
||||
rs
|
||||
op
|
||||
WE
|
||||
op
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -32519,17 +32525,17 @@ GN
|
||||
Lu
|
||||
nd
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
op
|
||||
sa
|
||||
op
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -32782,11 +32788,11 @@ nd
|
||||
op
|
||||
WM
|
||||
op
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -33039,10 +33045,10 @@ Rx
|
||||
ry
|
||||
WO
|
||||
op
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -33296,9 +33302,9 @@ sa
|
||||
sa
|
||||
sa
|
||||
op
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -33553,8 +33559,8 @@ TA
|
||||
sa
|
||||
Xf
|
||||
op
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -33810,8 +33816,8 @@ TA
|
||||
sa
|
||||
sa
|
||||
op
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -37651,8 +37657,8 @@ ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
op
|
||||
sa
|
||||
Ho
|
||||
@@ -37908,8 +37914,8 @@ ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
op
|
||||
ET
|
||||
HY
|
||||
@@ -38165,18 +38171,18 @@ ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
op
|
||||
op
|
||||
Iq
|
||||
op
|
||||
op
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -38422,19 +38428,19 @@ ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
op
|
||||
Iv
|
||||
op
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -38680,18 +38686,18 @@ ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
op
|
||||
Ho
|
||||
op
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
sL
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -38937,18 +38943,18 @@ ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
sL
|
||||
rs
|
||||
op
|
||||
Ho
|
||||
op
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
sL
|
||||
sL
|
||||
sL
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -39193,21 +39199,21 @@ ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
sL
|
||||
sL
|
||||
rs
|
||||
op
|
||||
Ho
|
||||
op
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
sL
|
||||
sL
|
||||
sL
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -39444,26 +39450,26 @@ ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
er
|
||||
IB
|
||||
er
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
sL
|
||||
sL
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -39700,24 +39706,24 @@ ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
er
|
||||
IB
|
||||
er
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
sL
|
||||
sL
|
||||
rs
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -39957,24 +39963,24 @@ ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
eZ
|
||||
fB
|
||||
er
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
er
|
||||
IB
|
||||
er
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
sL
|
||||
sL
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -40213,25 +40219,25 @@ ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
er
|
||||
fC
|
||||
er
|
||||
rs
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
er
|
||||
IF
|
||||
er
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
sL
|
||||
sL
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -40470,25 +40476,25 @@ ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
er
|
||||
er
|
||||
fD
|
||||
er
|
||||
er
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
Be
|
||||
er
|
||||
IK
|
||||
er
|
||||
er
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -40743,8 +40749,8 @@ IM
|
||||
gS
|
||||
er
|
||||
eq
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -40983,7 +40989,7 @@ ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
eq
|
||||
eH
|
||||
fb
|
||||
@@ -41000,8 +41006,8 @@ IB
|
||||
fC
|
||||
Nt
|
||||
eq
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -41240,7 +41246,7 @@ ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
er
|
||||
eI
|
||||
fc
|
||||
@@ -41497,7 +41503,7 @@ ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
er
|
||||
eJ
|
||||
fd
|
||||
@@ -41774,8 +41780,8 @@ er
|
||||
Tk
|
||||
NK
|
||||
er
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -42009,7 +42015,7 @@ ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
dW
|
||||
ei
|
||||
es
|
||||
@@ -42031,9 +42037,9 @@ Rf
|
||||
Tn
|
||||
NP
|
||||
VC
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -42265,8 +42271,8 @@ ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
dX
|
||||
ej
|
||||
et
|
||||
@@ -42288,8 +42294,8 @@ er
|
||||
To
|
||||
UJ
|
||||
er
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -42522,8 +42528,8 @@ ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
dX
|
||||
ej
|
||||
eu
|
||||
@@ -42780,7 +42786,7 @@ ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
dW
|
||||
ek
|
||||
ew
|
||||
@@ -44069,9 +44075,9 @@ ah
|
||||
ah
|
||||
ah
|
||||
ex
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
ex
|
||||
ah
|
||||
ah
|
||||
@@ -44324,13 +44330,13 @@ ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -44581,13 +44587,13 @@ ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -44839,11 +44845,11 @@ ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -45097,9 +45103,9 @@ ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
rs
|
||||
rs
|
||||
rs
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
|
||||
@@ -5,6 +5,9 @@
|
||||
"b" = (
|
||||
/turf/closed/mineral/random/high_chance/snow,
|
||||
/area/icemoon/underground/unexplored/rivers)
|
||||
"c" = (
|
||||
/turf/open/floor/plating/asteroid/snow/icemoon,
|
||||
/area/icemoon/underground/unexplored/rivers)
|
||||
"d" = (
|
||||
/turf/closed/wall,
|
||||
/area/icemoon/underground/explored)
|
||||
@@ -19,6 +22,9 @@
|
||||
/obj/item/gps/mining,
|
||||
/turf/open/floor/plating/asteroid/snow/icemoon,
|
||||
/area/icemoon/underground/explored)
|
||||
"G" = (
|
||||
/turf/open/floor/plating/asteroid/snow/icemoon,
|
||||
/area/mine/maintenance)
|
||||
"N" = (
|
||||
/obj/item/flashlight/lantern{
|
||||
on = 1
|
||||
@@ -33,6 +39,22 @@
|
||||
/obj/structure/ladder,
|
||||
/turf/open/floor/plating/asteroid/snow/icemoon,
|
||||
/area/icemoon/underground/explored)
|
||||
"X" = (
|
||||
/obj/machinery/telecomms/relay/preset/mining,
|
||||
/obj/machinery/bluespace_beacon,
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/window/reinforced,
|
||||
/obj/machinery/door/window/eastright{
|
||||
dir = 8;
|
||||
req_access_txt = "48"
|
||||
},
|
||||
/turf/open/floor/circuit,
|
||||
/area/icemoon/underground/explored)
|
||||
|
||||
(1,1,1) = {"
|
||||
a
|
||||
@@ -39499,9 +39521,9 @@ a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
c
|
||||
c
|
||||
c
|
||||
a
|
||||
a
|
||||
a
|
||||
@@ -40011,13 +40033,13 @@ a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
c
|
||||
e
|
||||
i
|
||||
h
|
||||
h
|
||||
e
|
||||
a
|
||||
c
|
||||
a
|
||||
a
|
||||
a
|
||||
@@ -40268,13 +40290,13 @@ a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
c
|
||||
h
|
||||
h
|
||||
T
|
||||
h
|
||||
h
|
||||
a
|
||||
c
|
||||
a
|
||||
a
|
||||
a
|
||||
@@ -40525,13 +40547,13 @@ a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
c
|
||||
e
|
||||
N
|
||||
h
|
||||
h
|
||||
G
|
||||
e
|
||||
a
|
||||
c
|
||||
a
|
||||
a
|
||||
a
|
||||
@@ -40786,7 +40808,7 @@ a
|
||||
d
|
||||
O
|
||||
h
|
||||
e
|
||||
X
|
||||
d
|
||||
a
|
||||
a
|
||||
@@ -41041,9 +41063,9 @@ a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
c
|
||||
c
|
||||
c
|
||||
a
|
||||
a
|
||||
a
|
||||
|
||||
+2844
-2357
File diff suppressed because it is too large
Load Diff
@@ -200,13 +200,15 @@
|
||||
/datum/dynamic_ruleset/latejoin/heretic_smuggler
|
||||
name = "Heretic Smuggler"
|
||||
antag_datum = /datum/antagonist/heretic
|
||||
antag_flag = ROLE_HERETIC
|
||||
antag_flag = "latejoin_heretic"
|
||||
protected_roles = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
|
||||
restricted_roles = list("AI","Cyborg")
|
||||
required_candidates = 1
|
||||
weight = 4
|
||||
cost = 10
|
||||
requirements = list(40,30,20,10,10,10,10,10,10,10)
|
||||
cost = 25
|
||||
requirements = list(60,60,60,55,50,50,50,50,50,50)
|
||||
high_population_requirement = 50
|
||||
property_weights = list("story_potential" = 1, "trust" = -1, "chaos" = 2, "extended" = -1, "valid" = 2)
|
||||
repeatable = TRUE
|
||||
|
||||
//////////////////////////////////////////////
|
||||
|
||||
@@ -151,16 +151,18 @@
|
||||
|
||||
/datum/dynamic_ruleset/roundstart/heretics
|
||||
name = "Heretics"
|
||||
antag_flag = ROLE_HERETIC
|
||||
antag_flag = "heretic"
|
||||
antag_datum = /datum/antagonist/heretic
|
||||
protected_roles = list("Prisoner","Security Officer", "Warden", "Detective", "Head of Security", "Captain")
|
||||
restricted_roles = list("AI", "Cyborg")
|
||||
required_candidates = 1
|
||||
weight = 3
|
||||
cost = 20
|
||||
cost = 25
|
||||
scaling_cost = 15
|
||||
requirements = list(50,45,45,40,35,20,20,15,10,10)
|
||||
requirements = list(60,60,60,55,50,50,50,50,50,50)
|
||||
property_weights = list("story_potential" = 1, "trust" = -1, "chaos" = 2, "extended" = -1, "valid" = 2)
|
||||
antag_cap = list(1,1,1,1,2,2,2,2,3,3)
|
||||
high_population_requirement = 50
|
||||
|
||||
|
||||
/datum/dynamic_ruleset/roundstart/heretics/pre_execute()
|
||||
|
||||
@@ -22,14 +22,14 @@
|
||||
var/datum/game_mode/dynamic/mode = null // Cached as soon as it's made, by dynamic.
|
||||
|
||||
/**
|
||||
Property weights are:
|
||||
Property weights are added to the config weight of the ruleset. They are:
|
||||
"story_potential" -- essentially how many different ways the antag can be played.
|
||||
"trust" -- How much it makes the crew trust each other. Negative values means they're suspicious. Team antags are like this.
|
||||
"chaos" -- How chaotic it makes the round. Has some overlap with "valid" and somewhat contradicts "extended".
|
||||
"valid" -- How likely the non-antag-enemy crew are to get involved, e.g. nukies encouraging the warden to
|
||||
let everyone into the armory, wizard moving around and being a nuisance, nightmare busting lights.
|
||||
"extended" -- How much the antag is conducive to a long round. Nukies and cults are bad for this; Wizard is less bad; and so on.
|
||||
"conversion" -- Basically a bool. Conversion antags, well, convert. It's its own class for a good reason.
|
||||
"conversion" -- Basically a bool. Conversion antags, well, convert. It's in its own class 'cause people kinda hate conversion.
|
||||
*/
|
||||
|
||||
/datum/dynamic_storyteller/proc/start_injection_cooldowns()
|
||||
@@ -126,8 +126,9 @@ Property weights are:
|
||||
for(var/property in property_weights)
|
||||
if(property in rule.property_weights) // just treat it as 0 if it's not in there
|
||||
property_weight += rule.property_weights[property] * property_weights[property]
|
||||
if(property_weight > 0)
|
||||
drafted_rules[rule] = rule.get_weight() * property_weight * rule.weight_mult
|
||||
var/calced_weight = (rule.get_weight() + property_weight) * rule.weight_mult
|
||||
if(calced_weight > 0) // negatives in the list might cause problems
|
||||
drafted_rules[rule] = calced_weight
|
||||
return drafted_rules
|
||||
|
||||
/datum/dynamic_storyteller/proc/midround_draft()
|
||||
@@ -144,21 +145,24 @@ Property weights are:
|
||||
for(var/property in property_weights)
|
||||
if(property in rule.property_weights) // just treat it as 0 if it's not in there
|
||||
property_weight += rule.property_weights[property] * property_weights[property]
|
||||
if(property_weight > 0)
|
||||
var/threat_weight = 1
|
||||
if(!(rule.flags & TRAITOR_RULESET) || (rule.flags & MINOR_RULESET)) // makes the traitor rulesets always possible anyway
|
||||
var/cost_difference = abs(rule.cost-(mode.threat_level-mode.threat))
|
||||
/* Basically, the closer the cost is to the current threat-level-away-from-threat, the more likely it is to
|
||||
pick this particular ruleset.
|
||||
Let's use a toy example: there's 60 threat level and 10 threat spent.
|
||||
We want to pick a ruleset that's close to that, so we run the below equation, on two rulesets.
|
||||
Ruleset 1 has 30 cost, ruleset 2 has 5 cost.
|
||||
When we do the math, ruleset 1's threat_weight is 0.538, and ruleset 2's is 0.238, meaning ruleset 1
|
||||
is 2.26 times as likely to be picked, all other things considered.
|
||||
Of course, we don't want it to GUARANTEE the closest, that's no fun, so it's just a weight.
|
||||
*/
|
||||
threat_weight = abs(1-abs(1-LOGISTIC_FUNCTION(2,0.05,cost_difference,0)))
|
||||
drafted_rules[rule] = rule.get_weight() * property_weight * rule.weight_mult * threat_weight
|
||||
var/threat_weight = 1
|
||||
if(!(rule.flags & TRAITOR_RULESET) || (rule.flags & MINOR_RULESET)) // makes the traitor rulesets always possible anyway
|
||||
var/cost_difference = rule.cost-(mode.threat_level-mode.threat)
|
||||
/* Basically, the closer the cost is to the current threat-level-away-from-threat, the more likely it is to
|
||||
pick this particular ruleset.
|
||||
Let's use a toy example: there's 60 threat level and 10 threat spent.
|
||||
We want to pick a ruleset that's close to that, so we run the below equation, on two rulesets.
|
||||
Ruleset 1 has 30 cost, ruleset 2 has 5 cost.
|
||||
When we do the math, ruleset 1's threat_weight is 0.538, and ruleset 2's is 0.238, meaning ruleset 1
|
||||
is 2.26 times as likely to be picked, all other things considered.
|
||||
Of course, we don't want it to GUARANTEE the closest, that's no fun, so it's just a weight.
|
||||
*/
|
||||
threat_weight = abs(1-abs(1-LOGISTIC_FUNCTION(2,0.05,abs(cost_difference),0)))
|
||||
if(cost_difference > 0)
|
||||
threat_weight /= (1+(cost_difference*0.1))
|
||||
var/calced_weight = (rule.get_weight() + property_weight) * rule.weight_mult * threat_weight
|
||||
if(calced_weight > 0)
|
||||
drafted_rules[rule] = calced_weight
|
||||
return drafted_rules
|
||||
|
||||
/datum/dynamic_storyteller/proc/latejoin_draft(mob/living/carbon/human/newPlayer)
|
||||
@@ -180,12 +184,15 @@ Property weights are:
|
||||
for(var/property in property_weights)
|
||||
if(property in rule.property_weights)
|
||||
property_weight += rule.property_weights[property] * property_weights[property]
|
||||
if(property_weight > 0)
|
||||
var/threat_weight = 1
|
||||
if(!(rule.flags & TRAITOR_RULESET) || (rule.flags & MINOR_RULESET))
|
||||
var/cost_difference = abs(rule.cost-(mode.threat_level-mode.threat))
|
||||
threat_weight = 1-abs(1-(LOGISTIC_FUNCTION(2,0.05,cost_difference,0)))
|
||||
drafted_rules[rule] = rule.get_weight() * property_weight * rule.weight_mult * threat_weight
|
||||
var/threat_weight = 1
|
||||
if(!(rule.flags & TRAITOR_RULESET) || (rule.flags & MINOR_RULESET))
|
||||
var/cost_difference = rule.cost-(mode.threat_level-mode.threat)
|
||||
threat_weight = 1-abs(1-(LOGISTIC_FUNCTION(2,0.05,abs(cost_difference),0)))
|
||||
if(cost_difference > 0)
|
||||
threat_weight /= (1+(cost_difference*0.1))
|
||||
var/calced_weight = (rule.get_weight() + property_weight) * rule.weight_mult * threat_weight
|
||||
if(calced_weight > 0)
|
||||
drafted_rules[rule] = calced_weight
|
||||
return drafted_rules
|
||||
|
||||
/datum/dynamic_storyteller/proc/event_draft()
|
||||
@@ -196,8 +203,9 @@ Property weights are:
|
||||
for(var/property in property_weights)
|
||||
if(property in rule.property_weights)
|
||||
property_weight += rule.property_weights[property] * property_weights[property]
|
||||
if(property_weight > 0)
|
||||
drafted_rules[rule] = rule.get_weight() + property_weight * rule.weight_mult
|
||||
var/calced_weight = (rule.get_weight() + property_weight) * rule.weight_mult
|
||||
if(calced_weight > 0)
|
||||
drafted_rules[rule] = calced_weight
|
||||
return drafted_rules
|
||||
|
||||
|
||||
@@ -327,12 +335,6 @@ Property weights are:
|
||||
flags = USE_PREV_ROUND_WEIGHTS
|
||||
property_weights = list("story_potential" = 2)
|
||||
|
||||
|
||||
/datum/dynamic_storyteller/story/calculate_threat()
|
||||
var/current_time = (world.time / SSautotransfer.targettime)*180
|
||||
mode.threat_level = round((mode.initial_threat_level*(sin(current_time)/2)+0.75),0.1)
|
||||
return ..()
|
||||
|
||||
/datum/dynamic_storyteller/classic
|
||||
name = "Classic"
|
||||
config_tag = "classic"
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
/obj/mecha/proc/get_armour_facing(relative_dir)
|
||||
switch(relative_dir)
|
||||
if(0) // BACKSTAB!
|
||||
if(180) // BACKSTAB!
|
||||
return facing_modifiers[BACK_ARMOUR]
|
||||
if(45, 90, 270, 315)
|
||||
return facing_modifiers[SIDE_ARMOUR]
|
||||
if(225, 180, 135)
|
||||
if(0, 45) // direct or 45 degrees off
|
||||
return facing_modifiers[FRONT_ARMOUR]
|
||||
return 1 //always return non-0
|
||||
return facing_modifiers[SIDE_ARMOUR] //if its not a front hit or back hit then assume its from the side
|
||||
|
||||
/obj/mecha/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir)
|
||||
. = ..()
|
||||
@@ -43,7 +41,7 @@
|
||||
break
|
||||
|
||||
if(attack_dir)
|
||||
var/facing_modifier = get_armour_facing(dir2angle(attack_dir) - dir2angle(src))
|
||||
var/facing_modifier = get_armour_facing(abs(dir2angle(dir) - dir2angle(attack_dir)))
|
||||
booster_damage_modifier /= facing_modifier
|
||||
booster_deflection_modifier *= facing_modifier
|
||||
if(prob(deflect_chance * booster_deflection_modifier))
|
||||
|
||||
@@ -251,7 +251,8 @@
|
||||
var/mob/camera/eminence/E = owner
|
||||
E.eminence_help()
|
||||
|
||||
//Returns to the Ark
|
||||
/*
|
||||
//Returns to the Ark - Commented out and replaced with obelisk_jump
|
||||
/datum/action/innate/eminence/ark_jump
|
||||
name = "Return to Ark"
|
||||
desc = "Warps you to the Ark."
|
||||
@@ -265,6 +266,40 @@
|
||||
flash_color(owner, flash_color = "#AF0AAF", flash_time = 25)
|
||||
else
|
||||
to_chat(owner, "<span class='warning'>There is no Ark!</span>")
|
||||
*/
|
||||
|
||||
//Warps to a chosen Obelisk
|
||||
/datum/action/innate/eminence/obelisk_jump
|
||||
name = "Warp to Obelisk"
|
||||
desc = "Warps to a chosen clockwork obelisk."
|
||||
button_icon_state = "Abscond"
|
||||
|
||||
/datum/action/innate/eminence/obelisk_jump/Activate()
|
||||
var/list/possible_targets = list()
|
||||
var/list/warpnames = list()
|
||||
|
||||
for(var/obj/structure/destructible/clockwork/powered/clockwork_obelisk/O in GLOB.all_clockwork_objects)
|
||||
if(!O.Adjacent(owner) && O.anchored)
|
||||
var/area/A = get_area(O)
|
||||
var/locname = initial(A.name)
|
||||
possible_targets[avoid_assoc_duplicate_keys("[locname] [O.name]", warpnames)] = O
|
||||
|
||||
if(!possible_targets.len)
|
||||
to_chat(owner, "<span class='warning'>There are no Obelisks to warp to!</span>")
|
||||
return
|
||||
|
||||
var/target_key = input(owner, "Choose an Obelisk to warp to.", "Obelisk Warp") as null|anything in possible_targets
|
||||
var/obj/structure/destructible/clockwork/powered/clockwork_obelisk/target = possible_targets[target_key]
|
||||
|
||||
if(!target_key || !owner)
|
||||
return
|
||||
|
||||
if(!target)
|
||||
to_chat(owner, "<span class='warning'>That Obelisk does no longer exist!</span>")
|
||||
return
|
||||
owner.forceMove(get_turf(target))
|
||||
owner.playsound_local(owner, 'sound/magic/magic_missile.ogg', 50, TRUE)
|
||||
flash_color(owner, flash_color = "#AF0AAF", flash_time = 25)
|
||||
|
||||
//Warps to the Station
|
||||
/datum/action/innate/eminence/station_jump
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
job_rank = ROLE_HERETIC
|
||||
antag_hud_type = ANTAG_HUD_HERETIC
|
||||
antag_hud_name = "heretic"
|
||||
threat = 10
|
||||
var/give_equipment = TRUE
|
||||
var/list/researched_knowledge = list()
|
||||
var/total_sacrifices = 0
|
||||
@@ -208,6 +209,14 @@
|
||||
/datum/antagonist/heretic/proc/get_all_knowledge()
|
||||
return researched_knowledge
|
||||
|
||||
/datum/antagonist/heretic/threat()
|
||||
. = ..()
|
||||
for(var/X in researched_knowledge)
|
||||
var/datum/eldritch_knowledge/EK = researched_knowledge[X]
|
||||
. += EK.cost
|
||||
if(ascended)
|
||||
. += 20
|
||||
|
||||
////////////////
|
||||
// Objectives //
|
||||
////////////////
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "Putnam3145"
|
||||
delete-after: True
|
||||
changes:
|
||||
- bugfix: "Dynamic storytellers now calculate property weights properly."
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "lolman360"
|
||||
delete-after: True
|
||||
changes:
|
||||
- bugfix: "shuttle engine/heater sprites now face the right way"
|
||||
@@ -0,0 +1,5 @@
|
||||
author: "DeltaFire15"
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscdel: "teleport-to-ark ability of the eminence, commented out"
|
||||
- rscadd: "teleport-to-obelisk ability for the eminence"
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "Couls, ported by NecromancerAnne"
|
||||
delete-after: True
|
||||
changes:
|
||||
- code_imp: "cleans up mech backstabbing code"
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 57 KiB |
Reference in New Issue
Block a user