117 lines
4.5 KiB
Plaintext
117 lines
4.5 KiB
Plaintext
/datum/station_trait/bananium_shipment
|
|
name = "Bananium Shipment"
|
|
trait_type = STATION_TRAIT_NEUTRAL
|
|
weight = 5
|
|
report_message = "Rumors has it that the clown planet has been sending support packages to clowns in this system"
|
|
trait_to_give = STATION_TRAIT_BANANIUM_SHIPMENTS
|
|
|
|
/datum/station_trait/unnatural_atmosphere
|
|
name = "Unnatural atmospherical properties"
|
|
trait_type = STATION_TRAIT_NEUTRAL
|
|
weight = 5
|
|
show_in_report = TRUE
|
|
report_message = "System's local planet has irregular atmospherical properties"
|
|
trait_to_give = STATION_TRAIT_UNNATURAL_ATMOSPHERE
|
|
|
|
// This station trait modifies the atmosphere, which is too far past the time admins are able to revert it
|
|
can_revert = FALSE
|
|
|
|
/datum/station_trait/unique_ai
|
|
name = "Unique AI"
|
|
trait_type = STATION_TRAIT_NEUTRAL
|
|
weight = 5
|
|
show_in_report = TRUE
|
|
report_message = "For experimental purposes, this station AI might show divergence from default lawset. Do not meddle with this experiment."
|
|
trait_to_give = STATION_TRAIT_UNIQUE_AI
|
|
|
|
/datum/station_trait/ian_adventure
|
|
name = "Ian's Adventure"
|
|
trait_type = STATION_TRAIT_NEUTRAL
|
|
weight = 5
|
|
show_in_report = FALSE
|
|
report_message = "Ian has gone exploring somewhere in the station."
|
|
|
|
/datum/station_trait/ian_adventure/on_round_start()
|
|
for(var/mob/living/simple_animal/pet/dog/corgi/dog in GLOB.mob_list)
|
|
if(!(istype(dog, /mob/living/simple_animal/pet/dog/corgi/Ian) || istype(dog, /mob/living/simple_animal/pet/dog/corgi/puppy)))
|
|
continue
|
|
|
|
// Makes this station trait more interesting. Ian probably won't go anywhere without a little external help.
|
|
// Also gives him a couple extra lives to survive eventual tiders.
|
|
dog.AddComponent(/datum/component/twitch_plays/simple_movement/auto, 3 SECONDS)
|
|
dog.AddComponent(/datum/component/multiple_lives, 2)
|
|
RegisterSignal(dog, COMSIG_ON_MULTIPLE_LIVES_RESPAWN, .proc/do_corgi_respawn)
|
|
|
|
// The extended safety checks at time of writing are about chasms and lava
|
|
// if there are any chasms and lava on stations in the future, woah
|
|
var/turf/current_turf = get_turf(dog)
|
|
var/turf/adventure_turf = find_safe_turf(extended_safety_checks = TRUE, dense_atoms = FALSE)
|
|
|
|
// Poof!
|
|
do_smoke(location=current_turf)
|
|
dog.forceMove(adventure_turf)
|
|
do_smoke(location=adventure_turf)
|
|
|
|
/// Moves the new dog somewhere safe, equips it with the old one's inventory and makes it deadchat_playable.
|
|
/datum/station_trait/ian_adventure/proc/do_corgi_respawn(mob/living/simple_animal/pet/dog/corgi/old_dog, mob/living/simple_animal/pet/dog/corgi/new_dog, gibbed, lives_left)
|
|
SIGNAL_HANDLER
|
|
|
|
var/turf/current_turf = get_turf(new_dog)
|
|
var/turf/adventure_turf = find_safe_turf(extended_safety_checks = TRUE, dense_atoms = FALSE)
|
|
|
|
do_smoke(location=current_turf)
|
|
new_dog.forceMove(adventure_turf)
|
|
do_smoke(location=adventure_turf)
|
|
|
|
if(old_dog.inventory_back)
|
|
var/obj/item/old_dog_back = old_dog.inventory_back
|
|
old_dog.inventory_back = null
|
|
old_dog_back.forceMove(new_dog)
|
|
new_dog.inventory_back = old_dog_back
|
|
|
|
if(old_dog.inventory_head)
|
|
var/obj/item/old_dog_hat = old_dog.inventory_head
|
|
old_dog.inventory_head = null
|
|
new_dog.place_on_head(old_dog_hat)
|
|
|
|
new_dog.update_corgi_fluff()
|
|
new_dog.regenerate_icons()
|
|
new_dog.AddComponent(/datum/component/twitch_plays/simple_movement/auto, 3 SECONDS)
|
|
if(lives_left)
|
|
RegisterSignal(new_dog, COMSIG_ON_MULTIPLE_LIVES_RESPAWN, .proc/do_corgi_respawn)
|
|
|
|
if(!gibbed) //The old dog will now disappear so we won't have more than one Ian at a time.
|
|
qdel(old_dog)
|
|
|
|
/datum/station_trait/glitched_pdas
|
|
name = "PDA glitch"
|
|
trait_type = STATION_TRAIT_NEUTRAL
|
|
weight = 15
|
|
show_in_report = TRUE
|
|
report_message = "Something seems to be wrong with the PDAs issued to you all this shift. Nothing too bad though."
|
|
trait_to_give = STATION_TRAIT_PDA_GLITCHED
|
|
|
|
/datum/station_trait/announcement_intern
|
|
name = "Announcement Intern"
|
|
trait_type = STATION_TRAIT_NEUTRAL
|
|
weight = 1
|
|
show_in_report = TRUE
|
|
report_message = "Please be nice to him."
|
|
blacklist = list(/datum/station_trait/announcement_medbot)
|
|
|
|
/datum/station_trait/announcement_intern/New()
|
|
. = ..()
|
|
SSstation.announcer = /datum/centcom_announcer/intern
|
|
|
|
/datum/station_trait/announcement_medbot
|
|
name = "Announcement \"System\""
|
|
trait_type = STATION_TRAIT_NEUTRAL
|
|
weight = 1
|
|
show_in_report = TRUE
|
|
report_message = "Our announcement system is under scheduled maintanance at the moment. Thankfully, we have a backup."
|
|
blacklist = list(/datum/station_trait/announcement_intern)
|
|
|
|
/datum/station_trait/announcement_medbot/New()
|
|
. = ..()
|
|
SSstation.announcer = /datum/centcom_announcer/medbot
|