Files
Paradise/code/datums/station_traits/positive_traits.dm
CRUNCH 90c7d9bb93 Completely Purges Any Suggestion That The IAA is a Lawyer. (#25371)
* Fixing some minor typos for cyborg upgrade flavour text

Throws in some missing apostrophes, capitalisation, and the letter "s."

* Briefcase Full of Cash buff

Increases the amount of cash in the Syndicate Briefcase Full of Cash from 600 Cr to 1000 Cr

* Reverts double-feature PR

* Reverts a broken revert

* Reverting again because Ebba told me to

* And reverting yet again

* The IAA is not a lawyer. They were never a lawyer. Glory to INGSO- uhh, NANOTRASEN!

* There was lawyer stuff on the maps.

* crush

* Update code/modules/pda/pdas.dm

Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>
Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com>

* Update pda.dmi

* Update code/modules/clothing/under/accessories/accessory.dm

Signed-off-by: Luc <89928798+lewcc@users.noreply.github.com>

---------

Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com>
Signed-off-by: Luc <89928798+lewcc@users.noreply.github.com>
Co-authored-by: Fordoxia <fordoxia@googlemail.com>
Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>
Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
2024-06-12 17:55:45 +00:00

221 lines
9.6 KiB
Plaintext

/datum/station_trait/galactic_grant
name = "Galactic grant"
trait_type = STATION_TRAIT_POSITIVE
weight = 5
show_in_report = TRUE
report_message = "Your station has been selected for a special grant. Some extra funds has been made available to your cargo department."
/datum/station_trait/galactic_grant/on_round_start()
GLOB.station_money_database.credit_account(SSeconomy.cargo_account, rand(2000, 4000), "Galactic Grant", "Great Galactic Grant Group")
/datum/station_trait/premium_internals_box
name = "Premium internals boxes"
trait_type = STATION_TRAIT_POSITIVE
weight = 5
show_in_report = TRUE
report_message = "The internals boxes for your crew have been upsized and filled with bonus equipment."
trait_to_give = STATION_TRAIT_PREMIUM_INTERNALS
/datum/station_trait/strong_supply_lines
name = "Strong supply lines"
trait_type = STATION_TRAIT_POSITIVE
weight = 5
show_in_report = TRUE
report_message = "Prices are low in this system, BUY BUY BUY!"
blacklist = list(/datum/station_trait/distant_supply_lines)
/datum/station_trait/strong_supply_lines/on_round_start()
SSeconomy.pack_price_modifier *= 0.8
/datum/station_trait/filled_maint
name = "Filled up maintenance"
trait_type = STATION_TRAIT_POSITIVE
weight = 5
show_in_report = TRUE
report_message = "Our workers accidentally forgot more of their personal belongings in the maintenance areas."
blacklist = list(/datum/station_trait/empty_maint)
trait_to_give = STATION_TRAIT_FILLED_MAINT
// This station trait is checked when loot drops initialize, so it's too late
can_revert = FALSE
/datum/station_trait/quick_shuttle
name = "Quick Shuttle"
trait_type = STATION_TRAIT_POSITIVE
weight = 5
show_in_report = TRUE
report_message = "Due to proximity to our supply station, the cargo shuttle will have a quicker flight time to your cargo department."
blacklist = list(/datum/station_trait/slow_shuttle)
/datum/station_trait/quick_shuttle/on_round_start()
. = ..()
SSshuttle.supply.callTime *= 0.5
/datum/station_trait/deathrattle_department
name = "deathrattled department"
trait_type = STATION_TRAIT_POSITIVE
show_in_report = TRUE
trait_flags = STATION_TRAIT_ABSTRACT
blacklist = list(/datum/station_trait/deathrattle_all)
var/department_to_apply_to
var/department_name = "department"
var/datum/deathrattle_group/deathrattle_group
/datum/station_trait/deathrattle_department/New()
. = ..()
deathrattle_group = new("[department_name] group")
blacklist += subtypesof(/datum/station_trait/deathrattle_department) - type //All but ourselves
report_message = "All members of [department_name] have received an implant to notify each other if one of them dies. This should help improve job-safety!"
RegisterSignal(SSdcs, COMSIG_GLOB_JOB_AFTER_SPAWN, PROC_REF(on_job_after_spawn))
/datum/station_trait/deathrattle_department/proc/on_job_after_spawn(datum/source, datum/job/job, mob/living/spawned)
SIGNAL_HANDLER
if(department_to_apply_to)
if(!(job.job_department_flags & department_to_apply_to))
return
var/obj/item/bio_chip/deathrattle/implant_to_give = new()
deathrattle_group.register(implant_to_give)
implant_to_give.implant(spawned, spawned, TRUE, TRUE)
/datum/station_trait/deathrattle_department/service
name = "Deathrattled Service"
trait_flags = STATION_TRAIT_MAP_UNRESTRICTED
weight = 1
department_to_apply_to = DEP_FLAG_SERVICE
department_name = DEPARTMENT_SERVICE
/datum/station_trait/deathrattle_department/cargo
name = "Deathrattled Cargo"
trait_flags = STATION_TRAIT_MAP_UNRESTRICTED
weight = 1
department_to_apply_to = DEP_FLAG_SUPPLY
department_name = DEPARTMENT_SUPPLY
/datum/station_trait/deathrattle_department/engineering
name = "Deathrattled Engineering"
trait_flags = STATION_TRAIT_MAP_UNRESTRICTED
weight = 1
department_to_apply_to = DEP_FLAG_ENGINEERING
department_name = DEPARTMENT_ENGINEERING
/datum/station_trait/deathrattle_department/command
name = "Deathrattled Command"
trait_flags = STATION_TRAIT_MAP_UNRESTRICTED
weight = 1
department_to_apply_to = DEP_FLAG_COMMAND
department_name = DEPARTMENT_COMMAND
/datum/station_trait/deathrattle_department/science
name = "Deathrattled Science"
trait_flags = STATION_TRAIT_MAP_UNRESTRICTED
weight = 1
department_to_apply_to = DEP_FLAG_SCIENCE
department_name = DEPARTMENT_SCIENCE
/datum/station_trait/deathrattle_department/security
name = "Deathrattled Security"
trait_flags = STATION_TRAIT_MAP_UNRESTRICTED
weight = 1
department_to_apply_to = DEP_FLAG_SECURITY
department_name = DEPARTMENT_SECURITY
/datum/station_trait/deathrattle_department/medical
name = "Deathrattled Medical"
trait_flags = STATION_TRAIT_MAP_UNRESTRICTED
weight = 1
department_to_apply_to = DEP_FLAG_MEDICAL
department_name = DEPARTMENT_MEDICAL
/datum/station_trait/deathrattle_all
name = "Deathrattled Station"
trait_type = STATION_TRAIT_POSITIVE
show_in_report = TRUE
weight = 1
report_message = "All members of the station have received an implant to notify each other if one of them dies. This should help improve job-safety!"
var/datum/deathrattle_group/deathrattle_group
/datum/station_trait/deathrattle_all/New()
. = ..()
deathrattle_group = new("station group")
blacklist = subtypesof(/datum/station_trait/deathrattle_department)
RegisterSignal(SSdcs, COMSIG_GLOB_JOB_AFTER_SPAWN, PROC_REF(on_job_after_spawn))
/datum/station_trait/deathrattle_all/proc/on_job_after_spawn(datum/source, datum/job/job, mob/living/spawned, client/player_client)
SIGNAL_HANDLER
var/obj/item/bio_chip/deathrattle/implant_to_give = new()
deathrattle_group.register(implant_to_give)
implant_to_give.implant(spawned, spawned, TRUE, TRUE)
/// NOTE: THIS MAKES EMP MUCH MORE EXPENSIVE.
/datum/station_trait/cybernetic_revolution
name = "Cybernetic Revolution"
trait_type = STATION_TRAIT_POSITIVE
show_in_report = TRUE
weight = 2
report_message = "The new trends in cybernetics have come to the station! Everyone has some form of cybernetic implant."
trait_to_give = STATION_TRAIT_CYBERNETIC_REVOLUTION
/// List of all job types with the cybernetics they should receive.
var/static/list/job_to_cybernetic = list(
/datum/job/assistant = /obj/item/organ/internal/heart/cybernetic, //real action, real bloodshed
/datum/job/atmos = /obj/item/organ/internal/cyberimp/mouth/breathing_tube,
/datum/job/bartender = /obj/item/organ/internal/liver/cybernetic,
/datum/job/hydro = /obj/item/organ/internal/cyberimp/arm/botanical,
/datum/job/captain = /obj/item/organ/internal/heart/cybernetic/upgraded,
/datum/job/cargo_tech = /obj/item/organ/internal/cyberimp/brain/anti_sleep,
/datum/job/chaplain = /obj/item/organ/internal/cyberimp/brain/anti_drop,
/datum/job/chemist = /obj/item/organ/internal/liver/cybernetic,
/datum/job/chief_engineer = /obj/item/organ/internal/cyberimp/brain/wire_interface,
/datum/job/cmo = /obj/item/organ/internal/cyberimp/chest/reviver,
/datum/job/clown = /obj/item/organ/internal/cyberimp/brain/anti_stam, //HONK!
/datum/job/chef = /obj/item/organ/internal/cyberimp/chest/nutriment/plus,
/datum/job/coroner = /obj/item/organ/internal/cyberimp/eyes/hud/medical, //hes got a bone to pick with you
/datum/job/librarian = /obj/item/organ/internal/cyberimp/brain/speech_translator, //dunno what to replace this with, but this is useless since no wingdings?
/datum/job/detective = /obj/item/organ/internal/eyes/cybernetic/meson,
/datum/job/doctor = /obj/item/organ/internal/cyberimp/arm/surgery,
/datum/job/geneticist = /obj/item/organ/internal/alien/plasmavessel/hunter, //we don't care about implants, we have cancer.
/datum/job/hop = /obj/item/organ/internal/eyes/cybernetic/shield,
/datum/job/hos = /obj/item/organ/internal/cyberimp/brain/anti_stam, //not giving them thermals
/datum/job/janitor = /obj/item/organ/internal/cyberimp/eyes/hud/jani,
/datum/job/iaa = /obj/item/organ/internal/heart/cybernetic/upgraded,
/datum/job/mime = /obj/item/organ/internal/cyberimp/brain/anti_stam, //...
/datum/job/paramedic = /obj/item/organ/internal/cyberimp/mouth/breathing_tube,
/datum/job/psychiatrist = /obj/item/organ/internal/heart/cybernetic/upgraded, //heart of gold. Or at least part gold
/datum/job/qm = /obj/item/organ/internal/cyberimp/arm/telebaton,
/datum/job/rd = /obj/item/organ/internal/cyberimp/eyes/hud/diagnostic,
/datum/job/roboticist = /obj/item/organ/internal/cyberimp/eyes/hud/diagnostic,
/datum/job/scientist = /obj/item/organ/internal/ears/cybernetic,
/datum/job/officer = /obj/item/organ/internal/cyberimp/eyes/hud/security,
/datum/job/mining = /obj/item/organ/internal/eyes/cybernetic/meson,
/datum/job/engineer = /obj/item/organ/internal/eyes/cybernetic/shield,
/datum/job/virologist = /obj/item/organ/internal/cyberimp/eyes/hud/medical,
/datum/job/warden = /obj/item/organ/internal/cyberimp/arm/flash,
/datum/job/judge = /obj/item/organ/internal/cyberimp/arm/telebaton,
/datum/job/explorer = /obj/item/organ/internal/cyberimp/arm/toolset,
/datum/job/nanotrasenrep = /obj/item/organ/internal/heart/cybernetic/upgraded,
/datum/job/blueshield = /obj/item/organ/internal/cyberimp/arm/flash
)
/datum/station_trait/cybernetic_revolution/New()
. = ..()
RegisterSignal(SSdcs, COMSIG_GLOB_JOB_AFTER_SPAWN, PROC_REF(on_job_after_spawn))
/datum/station_trait/cybernetic_revolution/proc/on_job_after_spawn(datum/source, datum/job/job, mob/living/spawned, client/player_client)
SIGNAL_HANDLER
var/cybernetic_type = job_to_cybernetic[job.type]
if(!cybernetic_type)
if(isAI(spawned))
var/mob/living/silicon/ai/ai = spawned
ai.eyeobj.relay_speech = TRUE //surveillance upgrade. the ai gets cybernetics too.
return
var/obj/item/organ/internal/cybernetic = new cybernetic_type()
INVOKE_ASYNC(cybernetic, TYPE_PROC_REF(/obj/item/organ/internal, insert), spawned, TRUE)