mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-21 02:57:48 +01:00
Merge remote-tracking branch 'ParadiseSS13/master' into toml-config
This commit is contained in:
+1
-1
@@ -58,7 +58,7 @@
|
||||
return ..()
|
||||
|
||||
/datum/beam/proc/Draw()
|
||||
var/Angle = round(Get_Angle(origin,target))
|
||||
var/Angle = round(get_angle(origin, target))
|
||||
|
||||
var/matrix/rot_matrix = matrix()
|
||||
rot_matrix.Turn(Angle)
|
||||
|
||||
Vendored
+1
@@ -49,6 +49,7 @@ GLOBAL_DATUM_INIT(crew_repository, /datum/repository/crew, new())
|
||||
|
||||
if(C.sensor_mode >= SUIT_SENSOR_VITAL)
|
||||
crewmemberData["stat"] = H.stat
|
||||
crewmemberData["health"] = H.health
|
||||
crewmemberData["oxy"] = round(H.getOxyLoss(), 1)
|
||||
crewmemberData["tox"] = round(H.getToxLoss(), 1)
|
||||
crewmemberData["fire"] = round(H.getFireLoss(), 1)
|
||||
|
||||
@@ -163,7 +163,7 @@ GLOBAL_VAR_INIT(record_id_num, 1001)
|
||||
G.fields["photo"] = get_id_photo(H)
|
||||
G.fields["photo-south"] = "data:image/png;base64,[icon2base64(icon(G.fields["photo"], dir = SOUTH))]"
|
||||
G.fields["photo-west"] = "data:image/png;base64,[icon2base64(icon(G.fields["photo"], dir = WEST))]"
|
||||
if(H.gen_record && !jobban_isbanned(H, "Records"))
|
||||
if(H.gen_record && !jobban_isbanned(H, ROLEBAN_RECORDS))
|
||||
G.fields["notes"] = H.gen_record
|
||||
else
|
||||
G.fields["notes"] = "No notes found."
|
||||
@@ -183,7 +183,7 @@ GLOBAL_VAR_INIT(record_id_num, 1001)
|
||||
M.fields["alg_d"] = "No allergies have been detected in this patient."
|
||||
M.fields["cdi"] = "None"
|
||||
M.fields["cdi_d"] = "No diseases have been diagnosed at the moment."
|
||||
if(H.med_record && !jobban_isbanned(H, "Records"))
|
||||
if(H.med_record && !jobban_isbanned(H, ROLEBAN_RECORDS))
|
||||
M.fields["notes"] = H.med_record
|
||||
else
|
||||
M.fields["notes"] = "No notes found."
|
||||
@@ -199,7 +199,7 @@ GLOBAL_VAR_INIT(record_id_num, 1001)
|
||||
S.fields["ma_crim"] = "None"
|
||||
S.fields["ma_crim_d"] = "No major crime convictions."
|
||||
S.fields["notes"] = "No notes."
|
||||
if(H.sec_record && !jobban_isbanned(H, "Records"))
|
||||
if(H.sec_record && !jobban_isbanned(H, ROLEBAN_RECORDS))
|
||||
S.fields["notes"] = H.sec_record
|
||||
else
|
||||
S.fields["notes"] = "No notes found."
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
var/var_edited = FALSE //Warranty void if seal is broken
|
||||
var/tmp/unique_datum_id = null
|
||||
|
||||
#ifdef TESTING
|
||||
#ifdef REFERENCE_TRACKING
|
||||
var/running_find_references
|
||||
var/last_find_references = 0
|
||||
#endif
|
||||
|
||||
@@ -50,6 +50,10 @@ GLOBAL_LIST_INIT(diseases, subtypesof(/datum/disease))
|
||||
var/stage = 1
|
||||
var/max_stages = 0
|
||||
var/stage_prob = 4
|
||||
/// The fraction of stages the virus must at least be at to show up on medical HUDs. Rounded up.
|
||||
var/discovery_threshold = 0.5
|
||||
/// If TRUE, this virus will show up on medical HUDs. Automatically set when it reaches mid-stage.
|
||||
var/discovered = FALSE
|
||||
|
||||
//Other
|
||||
var/list/viable_mobtypes = list() //typepaths of viable mobs
|
||||
@@ -82,6 +86,9 @@ GLOBAL_LIST_INIT(diseases, subtypesof(/datum/disease))
|
||||
if(!cure)
|
||||
if(prob(stage_prob))
|
||||
stage = min(stage + 1,max_stages)
|
||||
if(!discovered && stage >= CEILING(max_stages * discovery_threshold, 1)) // Once we reach a late enough stage, medical HUDs can pick us up even if we regress
|
||||
discovered = TRUE
|
||||
affected_mob.med_hud_set_status()
|
||||
else
|
||||
if(prob(cure_chance))
|
||||
stage = max(stage - 1, 1)
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
var/list/stage3 = list("You feel utterly plain.")
|
||||
var/list/stage4 = list("You feel white bread.")
|
||||
var/list/stage5 = list("Oh the humanity!")
|
||||
var/transformation_text = null
|
||||
var/new_form = /mob/living/carbon/human
|
||||
|
||||
/datum/disease/transformation/stage_act()
|
||||
@@ -44,6 +45,8 @@
|
||||
return
|
||||
if(affected_mob.notransform)
|
||||
return
|
||||
if(transformation_text)
|
||||
to_chat(affected_mob, transformation_text)
|
||||
affected_mob.notransform = 1
|
||||
affected_mob.canmove = 0
|
||||
affected_mob.icon = null
|
||||
@@ -243,4 +246,5 @@
|
||||
stage3 = list("<span class='danger'>Your appendages are melting away.</span>", "<span class='danger'>Your limbs begin to lose their shape.</span>")
|
||||
stage4 = list("<span class='danger'>You're ravenous.</span>")
|
||||
stage5 = list("<span class='danger'>You have become a morph.</span>")
|
||||
transformation_text = "<span class='userdanger'>This transformation does NOT make you an antagonist if you were not one already. If you were not an antagonist, you should not eat any steal objectives or the contents of the armory.</span>"
|
||||
new_form = /mob/living/simple_animal/hostile/morph
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
. = ..()
|
||||
var/obj/machinery/hologram/holopad/H = origin
|
||||
H.move_hologram(eye_user, loc)
|
||||
ai_detector_visible = FALSE // Holocalls dont trigger the Ai Detector
|
||||
|
||||
//this datum manages it's own references
|
||||
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
shoes = /obj/item/clothing/shoes/magboots/syndie
|
||||
r_pocket = /obj/item/radio/uplink/nuclear
|
||||
l_pocket = /obj/item/pinpointer/advpinpointer
|
||||
l_hand = /obj/item/tank/jetpack/oxygen/harness
|
||||
l_hand = /obj/item/tank/internals/oxygen/red
|
||||
|
||||
backpack_contents = list(
|
||||
/obj/item/storage/box/survival_syndi = 1,
|
||||
@@ -836,7 +836,7 @@
|
||||
apply_to_card(I, H, get_all_accesses(), "Space Explorer")
|
||||
|
||||
/datum/outfit/admin/hardsuit
|
||||
name = "Hardsuit Generic"
|
||||
name = "Hardsuit - Generic"
|
||||
back = /obj/item/tank/jetpack/oxygen
|
||||
mask = /obj/item/clothing/mask/breath
|
||||
shoes = /obj/item/clothing/shoes/magboots
|
||||
@@ -857,34 +857,34 @@
|
||||
apply_to_card(I, H, get_all_accesses(), "Hardsuit Tester")
|
||||
|
||||
/datum/outfit/admin/hardsuit/engineer
|
||||
name = "Engineer Hardsuit"
|
||||
name = "Hardsuit - Engineer"
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/engine
|
||||
|
||||
/datum/outfit/admin/hardsuit/ce
|
||||
name = "CE Hardsuit"
|
||||
name = "Hardsuit - CE"
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/engine/elite
|
||||
shoes = /obj/item/clothing/shoes/magboots/advance
|
||||
|
||||
/datum/outfit/admin/hardsuit/mining
|
||||
name = "Mining Hardsuit"
|
||||
name = "Hardsuit - Mining"
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/mining
|
||||
|
||||
/datum/outfit/admin/hardsuit/syndi
|
||||
name = "Syndi Hardsuit"
|
||||
name = "Hardsuit - Syndi"
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/syndi
|
||||
shoes = /obj/item/clothing/shoes/magboots/syndie
|
||||
|
||||
/datum/outfit/admin/hardsuit/wizard
|
||||
name = "Wizard Hardsuit"
|
||||
name = "Hardsuit - Wizard"
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/shielded/wizard
|
||||
shoes = /obj/item/clothing/shoes/magboots
|
||||
|
||||
/datum/outfit/admin/hardsuit/medical
|
||||
name = "Medical Hardsuit"
|
||||
name = "Hardsuit - Medical"
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/medical
|
||||
|
||||
/datum/outfit/admin/hardsuit/atmos
|
||||
name = "Atmos Hardsuit"
|
||||
name = "Hardsuit - Atmos"
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/engine/atmos
|
||||
|
||||
|
||||
@@ -1146,20 +1146,20 @@
|
||||
apply_to_card(I, H, get_all_accesses(), "Wizard")
|
||||
|
||||
/datum/outfit/admin/wizard/red
|
||||
name = "Red Wizard"
|
||||
name = "Wizard - Red Wizard"
|
||||
|
||||
suit = /obj/item/clothing/suit/wizrobe/red
|
||||
head = /obj/item/clothing/head/wizard/red
|
||||
|
||||
/datum/outfit/admin/wizard/marisa
|
||||
name = "Marisa Wizard"
|
||||
name = "Wizard - Marisa Wizard"
|
||||
|
||||
suit = /obj/item/clothing/suit/wizrobe/marisa
|
||||
shoes = /obj/item/clothing/shoes/sandal/marisa
|
||||
head = /obj/item/clothing/head/wizard/marisa
|
||||
|
||||
/datum/outfit/admin/wizard/arch
|
||||
name = "Arch Wizard"
|
||||
name = "Wizard - Arch Wizard"
|
||||
|
||||
suit = /obj/item/clothing/suit/wizrobe/magusred
|
||||
head = /obj/item/clothing/head/wizard/magus
|
||||
@@ -1223,3 +1223,68 @@
|
||||
var/obj/item/radio/headset/R = H.l_ear
|
||||
if(istype(R))
|
||||
R.flags |= NODROP
|
||||
|
||||
/datum/outfit/admin/honksquad
|
||||
name = "Honksquad"
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/clown
|
||||
mask = /obj/item/clothing/mask/gas/clown_hat
|
||||
back = /obj/item/storage/backpack/clown
|
||||
id = /obj/item/card/id/clown
|
||||
|
||||
backpack_contents = list(
|
||||
/obj/item/storage/box/survival = 1,
|
||||
/obj/item/bikehorn = 1,
|
||||
/obj/item/stamp/clown = 1,
|
||||
/obj/item/toy/crayon/rainbow = 1,
|
||||
/obj/item/reagent_containers/spray/waterflower = 1,
|
||||
/obj/item/reagent_containers/food/snacks/grown/banana = 1,
|
||||
)
|
||||
|
||||
shoes = /obj/item/clothing/shoes/clown_shoes
|
||||
suit = /obj/item/clothing/suit/storage/det_suit
|
||||
pda = /obj/item/pda/clown
|
||||
l_ear = /obj/item/radio/headset
|
||||
r_pocket = /obj/item/reagent_containers/food/pill/patch/jestosterone
|
||||
|
||||
/datum/outfit/admin/honksquad/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
if(H.gender == FEMALE)
|
||||
uniform = /obj/item/clothing/under/rank/clown/sexy
|
||||
mask = /obj/item/clothing/mask/gas/clown_hat/sexy
|
||||
|
||||
if(prob(50))
|
||||
// You have to do it like this to make it work with assoc lists without a runtime.
|
||||
// Trust me.
|
||||
backpack_contents.Add(/obj/item/gun/energy/clown)
|
||||
backpack_contents[/obj/item/gun/energy/clown] = 1 // Amount. Not boolean. Do not TRUE this. You turkey.
|
||||
else
|
||||
backpack_contents.Add(/obj/item/gun/throw/piecannon)
|
||||
backpack_contents[/obj/item/gun/throw/piecannon] = 1
|
||||
|
||||
/datum/outfit/admin/honksquad/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
// Setup their clumsy gene
|
||||
H.dna.SetSEState(GLOB.clumsyblock, TRUE)
|
||||
H.check_mutations = TRUE
|
||||
|
||||
// Setup their headset
|
||||
var/obj/item/radio/R = H.l_ear
|
||||
if(istype(R))
|
||||
R.set_frequency(DTH_FREQ) // Clowns can be part of "special operations"
|
||||
|
||||
// And their PDA
|
||||
var/obj/item/pda/P = H.wear_pda
|
||||
if(istype(P))
|
||||
P.owner = H.real_name
|
||||
P.ownjob = "Clown"
|
||||
P.name = "PDA-[H.real_name] ([P.ownjob])"
|
||||
|
||||
// And their ID
|
||||
var/obj/item/card/id/I = H.wear_id
|
||||
if(istype(I))
|
||||
apply_to_card(I, H, list(ACCESS_CLOWN), "Clown")
|
||||
H.sec_hud_set_ID()
|
||||
|
||||
@@ -7,140 +7,140 @@
|
||||
mask = /obj/item/clothing/mask/breath
|
||||
|
||||
/datum/outfit/plasmaman/bar
|
||||
name = "Bartender Plasmaman"
|
||||
name = "Plasmaman Bartender"
|
||||
|
||||
head = /obj/item/clothing/head/helmet/space/plasmaman/white
|
||||
uniform = /obj/item/clothing/under/plasmaman/enviroslacks
|
||||
|
||||
/datum/outfit/plasmaman/chef
|
||||
name = "Chef Plasmaman"
|
||||
name = "Plasmaman Chef"
|
||||
|
||||
head = /obj/item/clothing/head/helmet/space/plasmaman/chef
|
||||
uniform = /obj/item/clothing/under/plasmaman/chef
|
||||
|
||||
/datum/outfit/plasmaman/botany
|
||||
name = "Botany Plasmaman"
|
||||
name = "Plasmaman Botany"
|
||||
|
||||
head = /obj/item/clothing/head/helmet/space/plasmaman/botany
|
||||
uniform = /obj/item/clothing/under/plasmaman/botany
|
||||
|
||||
/datum/outfit/plasmaman/librarian
|
||||
name = "Librarian Plasmaman"
|
||||
name = "Plasmaman Librarian"
|
||||
|
||||
head = /obj/item/clothing/head/helmet/space/plasmaman/librarian
|
||||
uniform = /obj/item/clothing/under/plasmaman/librarian
|
||||
|
||||
/datum/outfit/plasmaman/chaplain
|
||||
name = "Chaplain Plasmaman"
|
||||
name = "Plasmaman Chaplain"
|
||||
|
||||
head = /obj/item/clothing/head/helmet/space/plasmaman/chaplain
|
||||
uniform = /obj/item/clothing/under/plasmaman/chaplain
|
||||
|
||||
/datum/outfit/plasmaman/janitor
|
||||
name = "Janitor Plasmaman"
|
||||
name = "Plasmaman Janitor"
|
||||
|
||||
head = /obj/item/clothing/head/helmet/space/plasmaman/janitor
|
||||
uniform = /obj/item/clothing/under/plasmaman/janitor
|
||||
|
||||
/datum/outfit/plasmaman/security
|
||||
name = "Security Plasmaman"
|
||||
name = "Plasmaman Security"
|
||||
|
||||
head = /obj/item/clothing/head/helmet/space/plasmaman/security
|
||||
uniform = /obj/item/clothing/under/plasmaman/security
|
||||
|
||||
/datum/outfit/plasmaman/detective
|
||||
name = "Detective Plasmaman"
|
||||
name = "Plasmaman Detective"
|
||||
|
||||
head = /obj/item/clothing/head/helmet/space/plasmaman/white
|
||||
uniform = /obj/item/clothing/under/plasmaman/enviroslacks
|
||||
l_ear = /obj/item/radio/headset/headset_sec
|
||||
|
||||
/datum/outfit/plasmaman/warden
|
||||
name = "Warden Plasmaman"
|
||||
name = "Plasmaman Warden"
|
||||
|
||||
head = /obj/item/clothing/head/helmet/space/plasmaman/security/warden
|
||||
uniform = /obj/item/clothing/under/plasmaman/security/warden
|
||||
|
||||
/datum/outfit/plasmaman/hos
|
||||
name = "Head of Security Plasmaman"
|
||||
name = "Plasmaman Head of Security"
|
||||
|
||||
head = /obj/item/clothing/head/helmet/space/plasmaman/security/hos
|
||||
uniform = /obj/item/clothing/under/plasmaman/security/hos
|
||||
|
||||
/datum/outfit/plasmaman/cargo
|
||||
name = "Cargo Plasmaman"
|
||||
name = "Plasmaman Cargo"
|
||||
|
||||
head = /obj/item/clothing/head/helmet/space/plasmaman/cargo
|
||||
uniform = /obj/item/clothing/under/plasmaman/cargo
|
||||
|
||||
/datum/outfit/plasmaman/mining
|
||||
name = "Mining Plasmaman"
|
||||
name = "Plasmaman Mining"
|
||||
|
||||
head = /obj/item/clothing/head/helmet/space/plasmaman/mining
|
||||
uniform = /obj/item/clothing/under/plasmaman/mining
|
||||
|
||||
/datum/outfit/plasmaman/medical
|
||||
name = "Medical Plasmaman"
|
||||
name = "Plasmaman Medical"
|
||||
|
||||
head = /obj/item/clothing/head/helmet/space/plasmaman/medical
|
||||
uniform = /obj/item/clothing/under/plasmaman/medical
|
||||
|
||||
/datum/outfit/plasmaman/cmo
|
||||
name = "Chief Medical Officer Plasmaman"
|
||||
name = "Plasmaman Chief Medical Officer"
|
||||
|
||||
head = /obj/item/clothing/head/helmet/space/plasmaman/cmo
|
||||
uniform = /obj/item/clothing/under/plasmaman/cmo
|
||||
|
||||
/datum/outfit/plasmaman/viro
|
||||
name = "Virology Plasmaman"
|
||||
name = "Plasmaman Virology"
|
||||
|
||||
head = /obj/item/clothing/head/helmet/space/plasmaman/viro
|
||||
uniform = /obj/item/clothing/under/plasmaman/viro
|
||||
|
||||
/datum/outfit/plasmaman/chemist
|
||||
name = "Chemist Plasmaman"
|
||||
name = "Plasmaman Chemist"
|
||||
|
||||
head = /obj/item/clothing/head/helmet/space/plasmaman/chemist
|
||||
uniform = /obj/item/clothing/under/plasmaman/chemist
|
||||
|
||||
/datum/outfit/plasmaman/genetics
|
||||
name = "Genetics Plasmaman"
|
||||
name = "Plasmaman Genetics"
|
||||
|
||||
head = /obj/item/clothing/head/helmet/space/plasmaman/genetics
|
||||
uniform = /obj/item/clothing/under/plasmaman/genetics
|
||||
|
||||
/datum/outfit/plasmaman/science
|
||||
name = "Science Plasmaman"
|
||||
name = "Plasmaman Science"
|
||||
|
||||
head = /obj/item/clothing/head/helmet/space/plasmaman/science
|
||||
uniform = /obj/item/clothing/under/plasmaman/science
|
||||
|
||||
/datum/outfit/plasmaman/rd
|
||||
name = "Research Director Plasmaman"
|
||||
name = "Plasmaman Research Director"
|
||||
|
||||
head = /obj/item/clothing/head/helmet/space/plasmaman/rd
|
||||
uniform = /obj/item/clothing/under/plasmaman/rd
|
||||
|
||||
/datum/outfit/plasmaman/robotics
|
||||
name = "Robotics Plasmaman"
|
||||
name = "Plasmaman Robotics"
|
||||
|
||||
head = /obj/item/clothing/head/helmet/space/plasmaman/robotics
|
||||
uniform = /obj/item/clothing/under/plasmaman/robotics
|
||||
|
||||
/datum/outfit/plasmaman/engineering
|
||||
name = "Engineering Plasmaman"
|
||||
name = "Plasmaman Engineering"
|
||||
|
||||
head = /obj/item/clothing/head/helmet/space/plasmaman/engineering
|
||||
uniform = /obj/item/clothing/under/plasmaman/engineering
|
||||
|
||||
/datum/outfit/plasmaman/ce
|
||||
name = "Chief Engineer Plasmaman"
|
||||
name = "Plasmaman Chief Engineer"
|
||||
|
||||
head = /obj/item/clothing/head/helmet/space/plasmaman/engineering/ce
|
||||
uniform = /obj/item/clothing/under/plasmaman/engineering/ce
|
||||
|
||||
/datum/outfit/plasmaman/atmospherics
|
||||
name = "Atmospherics Plasmaman"
|
||||
name = "Plasmaman Atmospherics"
|
||||
|
||||
head = /obj/item/clothing/head/helmet/space/plasmaman/atmospherics
|
||||
uniform = /obj/item/clothing/under/plasmaman/atmospherics
|
||||
@@ -160,25 +160,25 @@
|
||||
mask = /obj/item/clothing/mask/gas/clown_hat
|
||||
|
||||
/datum/outfit/plasmaman/hop
|
||||
name = "Head of Personnel Plasmaman"
|
||||
name = "Plasmaman Head of Personnel"
|
||||
|
||||
head = /obj/item/clothing/head/helmet/space/plasmaman/hop
|
||||
uniform = /obj/item/clothing/under/plasmaman/hop
|
||||
|
||||
/datum/outfit/plasmaman/captain
|
||||
name = "Captain Plasmaman"
|
||||
name = "Plasmaman Captain"
|
||||
|
||||
head = /obj/item/clothing/head/helmet/space/plasmaman/captain
|
||||
uniform = /obj/item/clothing/under/plasmaman/captain
|
||||
|
||||
/datum/outfit/plasmaman/blueshield
|
||||
name = "Blueshield Plasmaman"
|
||||
name = "Plasmaman Blueshield"
|
||||
|
||||
head = /obj/item/clothing/head/helmet/space/plasmaman/blueshield
|
||||
uniform = /obj/item/clothing/under/plasmaman/blueshield
|
||||
|
||||
/datum/outfit/plasmaman/wizard
|
||||
name = "Wizard Plasmaman"
|
||||
name = "Plasmaman Wizard"
|
||||
|
||||
head = /obj/item/clothing/head/helmet/space/plasmaman/wizard
|
||||
uniform = /obj/item/clothing/under/plasmaman/wizard
|
||||
|
||||
@@ -1017,6 +1017,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
|
||||
cost = 11
|
||||
surplus = 0
|
||||
cant_discount = TRUE
|
||||
hijack_only = TRUE
|
||||
|
||||
/datum/uplink_item/explosives/emp_bomb
|
||||
name = "EMP bomb"
|
||||
@@ -1426,7 +1427,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
|
||||
name = "Power Sink"
|
||||
desc = "When screwed to wiring attached to an electric grid, then activated, this large device places excessive load on the grid, causing a stationwide blackout. The sink cannot be carried because of its excessive size. Ordering this sends you a small beacon that will teleport the power sink to your location on activation."
|
||||
reference = "PS"
|
||||
item = /obj/item/powersink
|
||||
item = /obj/item/radio/beacon/syndicate/power_sink
|
||||
cost = 10
|
||||
|
||||
/datum/uplink_item/device_tools/singularity_beacon
|
||||
|
||||
Reference in New Issue
Block a user