mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 18:53:06 +00:00
[MIRROR] lost borg changes (#8423)
Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com> Co-authored-by: Kashargul <KashL@t-online.de>
This commit is contained in:
@@ -262,8 +262,18 @@
|
||||
desc = "Station Network"
|
||||
region = ACCESS_REGION_RESEARCH
|
||||
|
||||
// /var/const/free_access_id = 43 // taken in VR
|
||||
// /var/const/free_access_id = 44 // taken in VR
|
||||
var/const/access_explorer = 43 //CHOMP explo keep
|
||||
/datum/access/explorer //CHOMP explo keep
|
||||
id = access_explorer //CHOMP explo keep
|
||||
desc = "Explorer" //CHOMP explo keep
|
||||
region = ACCESS_REGION_GENERAL
|
||||
//CHOMP explo keep removed a wide comment field on this line
|
||||
/var/const/access_pathfinder = 44
|
||||
/datum/access/pathfinder
|
||||
id = access_pathfinder
|
||||
desc = "Pathfinder"
|
||||
region = ACCESS_REGION_GENERAL
|
||||
//CHOMP explo keep removed the closing wide comment field on this line. KEEP THE PATHFINDER
|
||||
|
||||
/var/const/access_surgery = 45
|
||||
/datum/access/surgery
|
||||
@@ -384,6 +394,24 @@
|
||||
desc = "Medical Equipment"
|
||||
region = ACCESS_REGION_MEDBAY
|
||||
|
||||
var/const/access_pilot = 67
|
||||
/datum/access/pilot
|
||||
id = access_pilot
|
||||
desc = "Pilot"
|
||||
region = ACCESS_REGION_GENERAL
|
||||
|
||||
/var/const/access_entertainment = 72
|
||||
/datum/access/entertainment
|
||||
id = access_entertainment
|
||||
desc = "Entertainment Backstage"
|
||||
region = ACCESS_REGION_GENERAL
|
||||
|
||||
/var/const/access_xenobotany = 77
|
||||
/datum/access/xenobotany
|
||||
id = access_xenobotany
|
||||
desc = "Xenobotany Garden"
|
||||
region = ACCESS_REGION_RESEARCH
|
||||
|
||||
/******************
|
||||
* Central Command *
|
||||
******************/
|
||||
@@ -441,6 +469,24 @@
|
||||
desc = "Central Command Administration"
|
||||
access_type = ACCESS_TYPE_CENTCOM
|
||||
|
||||
/var/const/access_clown = 136
|
||||
/datum/access/clown
|
||||
id = access_clown
|
||||
desc = "Clown Office"
|
||||
region = ACCESS_REGION_GENERAL
|
||||
|
||||
/var/const/access_tomfoolery = 137
|
||||
/datum/access/tomfoolery
|
||||
id = access_tomfoolery
|
||||
desc = "Tomfoolery Closet"
|
||||
region = ACCESS_REGION_GENERAL
|
||||
|
||||
/var/const/access_mime = 138
|
||||
/datum/access/mime
|
||||
id = access_mime
|
||||
desc = "Mime Office"
|
||||
region = ACCESS_REGION_GENERAL
|
||||
|
||||
/***************
|
||||
* Antag access *
|
||||
***************/
|
||||
@@ -473,3 +519,15 @@
|
||||
id = access_alien
|
||||
desc = "#%_^&*@!"
|
||||
access_type = ACCESS_TYPE_PRIVATE
|
||||
|
||||
/var/const/access_talon = 301
|
||||
/datum/access/talon
|
||||
id = access_talon
|
||||
desc = "Talon"
|
||||
access_type = ACCESS_TYPE_PRIVATE
|
||||
|
||||
/var/const/access_lost = 511 // For outsider borgs
|
||||
/datum/access/lost
|
||||
id = access_lost
|
||||
desc = "Lost"
|
||||
access_type = ACCESS_TYPE_NONE
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
//Moved from southern_cross_jobs.vr to fix a runtime
|
||||
var/const/access_explorer = 43 //CHOMP explo keep
|
||||
/datum/access/explorer //CHOMP explo keep
|
||||
id = access_explorer //CHOMP explo keep
|
||||
desc = "Explorer" //CHOMP explo keep
|
||||
region = ACCESS_REGION_GENERAL
|
||||
//CHOMP explo keep removed a wide comment field on this line
|
||||
/var/const/access_pathfinder = 44
|
||||
/datum/access/pathfinder
|
||||
id = access_pathfinder
|
||||
desc = "Pathfinder"
|
||||
region = ACCESS_REGION_GENERAL
|
||||
//CHOMP explo keep removed the closing wide comment field on this line. KEEP THE PATHFINDER
|
||||
var/const/access_pilot = 67
|
||||
/datum/access/pilot
|
||||
id = access_pilot
|
||||
desc = "Pilot"
|
||||
region = ACCESS_REGION_GENERAL
|
||||
|
||||
/var/const/access_talon = 301
|
||||
/datum/access/talon
|
||||
id = access_talon
|
||||
desc = "Talon"
|
||||
access_type = ACCESS_TYPE_PRIVATE
|
||||
|
||||
/var/const/access_xenobotany = 77
|
||||
/datum/access/xenobotany
|
||||
id = access_xenobotany
|
||||
desc = "Xenobotany Garden"
|
||||
region = ACCESS_REGION_RESEARCH
|
||||
|
||||
/var/const/access_entertainment = 72
|
||||
/datum/access/entertainment
|
||||
id = access_entertainment
|
||||
desc = "Entertainment Backstage"
|
||||
region = ACCESS_REGION_GENERAL
|
||||
|
||||
/var/const/access_mime = 138
|
||||
/datum/access/mime
|
||||
id = access_mime
|
||||
desc = "Mime Office"
|
||||
region = ACCESS_REGION_GENERAL
|
||||
|
||||
/var/const/access_clown = 136
|
||||
/datum/access/clown
|
||||
id = access_clown
|
||||
desc = "Clown Office"
|
||||
region = ACCESS_REGION_GENERAL
|
||||
|
||||
/var/const/access_tomfoolery = 137
|
||||
/datum/access/tomfoolery
|
||||
id = access_tomfoolery
|
||||
desc = "Tomfoolery Closet"
|
||||
region = ACCESS_REGION_GENERAL
|
||||
@@ -3,146 +3,288 @@
|
||||
// Please make sure that only the relevant sprite_stacks_xxx.file is included, if more are made.
|
||||
|
||||
/obj/item/weapon/card
|
||||
icon = 'icons/obj/card_new.dmi' // These are redefined here so that changing sprites is as easy as clicking the checkbox.
|
||||
base_icon = 'icons/obj/card_new.dmi'
|
||||
icon = 'icons/obj/card_new_vr.dmi' // These are redefined here so that changing sprites is as easy as clicking the checkbox.
|
||||
base_icon = 'icons/obj/card_new_vr.dmi'
|
||||
|
||||
// New sprite stacks can be defined here. You could theoretically change icon-states as well but right now this file compiles before station_ids.dm so those wouldn't be affected.
|
||||
|
||||
/*
|
||||
//IDs
|
||||
|
||||
/obj/item/weapon/card/id
|
||||
initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n")
|
||||
|
||||
/obj/item/weapon/card/id/generic
|
||||
name = "Generic ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-generic", "stamp-silhouette", "clip")
|
||||
|
||||
// CENTCOM
|
||||
//Central
|
||||
|
||||
/obj/item/weapon/card/id/centcom
|
||||
initial_sprite_stack = list("base-stamp", "top-blue", "stamp-n", "pips-gold")
|
||||
name = "Central Command ID"
|
||||
initial_sprite_stack = list("base-stamp-gold", "top-blue", "stamp-n", "pips-white", "stripe-gold")
|
||||
|
||||
/obj/item/weapon/card/id/centcom/vip
|
||||
initial_sprite_stack = list("base-stamp-gold", "top-blue", "stamp-n", "pips-gold")
|
||||
name = "VIP ID"
|
||||
initial_sprite_stack = list("base-stamp-gold", "top-blue", "stamp-n", "pips-gold", "stripe-gold")
|
||||
|
||||
//ERT
|
||||
|
||||
/obj/item/weapon/card/id/centcom/ERT
|
||||
initial_sprite_stack = list("base-stamp", "top-blue", "stamp-n", "pips-red", "stripe-red")
|
||||
name = "Emergency Responder ID"
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-red", "stripe-red")
|
||||
|
||||
/obj/item/weapon/card/id/centcom/ERT/medic
|
||||
name = "Emergency Medical Responder ID"
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-medblu", "stripe-medblu")
|
||||
|
||||
/obj/item/weapon/card/id/centcom/ERT/commander
|
||||
name = "Emergency Response Commander ID"
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-gold", "stripe-gold")
|
||||
|
||||
/obj/item/weapon/card/id/centcom/ERT/engineer
|
||||
name = "Emergency Engineering Responder ID"
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-orange", "stripe-orange")
|
||||
|
||||
/obj/item/weapon/card/id/centcom/ERT/janitor
|
||||
name = "Emergency Cleanup Responder ID"
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-purple", "stripe-purple")
|
||||
|
||||
//Silver
|
||||
|
||||
// GENERIC COMMAND
|
||||
/obj/item/weapon/card/id/silver
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-mime", "stamp-n-generic")
|
||||
name = "Silver ID"
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n")
|
||||
|
||||
/obj/item/weapon/card/id/silver/secretary
|
||||
name = "Secretary's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-blue", "stamp-n")
|
||||
|
||||
/obj/item/weapon/card/id/silver/hop
|
||||
initial_sprite_stack = list("base-stamp", "top-blue", "stamp-n", "stripe-white")
|
||||
name = "Head of Personnel ID"
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-gold")
|
||||
|
||||
//Gold
|
||||
|
||||
/obj/item/weapon/card/id/gold
|
||||
name = "Gold ID"
|
||||
initial_sprite_stack = list("base-stamp-gold", "top-blue", "stamp-n")
|
||||
|
||||
/obj/item/weapon/card/id/gold/captain
|
||||
name = "Captain's ID"
|
||||
initial_sprite_stack = list("base-stamp-gold", "top-blue", "stamp-n", "pips-gold")
|
||||
|
||||
/obj/item/weapon/card/id/gold/captain/spare
|
||||
name = "Spare ID"
|
||||
initial_sprite_stack = list("base-stamp-gold", "top-gold", "stamp-n")
|
||||
|
||||
//Medical
|
||||
|
||||
// MEDICAL
|
||||
/obj/item/weapon/card/id/medical
|
||||
name = "Medical ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n")
|
||||
|
||||
/obj/item/weapon/card/id/medical/chemist
|
||||
initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "pips-orange")
|
||||
name = "Chemist's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-orange")
|
||||
|
||||
/obj/item/weapon/card/id/medical/geneticist
|
||||
initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "pips-purple")
|
||||
name = "Geneticist's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-purple")
|
||||
|
||||
/obj/item/weapon/card/id/medical/psych
|
||||
initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "pips-purple")
|
||||
name = "Psychologist's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-brown")
|
||||
|
||||
/obj/item/weapon/card/id/medical/virologist
|
||||
name = "Virologist's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-green")
|
||||
|
||||
/obj/item/weapon/card/id/medical/emt
|
||||
initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "pips-blue")
|
||||
name = "Emergency Medical Technician's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-blue")
|
||||
|
||||
/obj/item/weapon/card/id/medical/head
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-medblu", "stamp-n", "stripe-gold")
|
||||
name = "Chief Medical Officer's ID"
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-medblu", "stamp-n", "pips-gold")
|
||||
|
||||
/obj/item/weapon/card/id/medical/sar
|
||||
initial_sprite_stack = list("base-stamp", "top-darkgreen", "stamp-n", "pips-medblu")
|
||||
//Security
|
||||
|
||||
// SECURITY
|
||||
/obj/item/weapon/card/id/security
|
||||
name = "Security ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-red", "stamp-n")
|
||||
|
||||
/obj/item/weapon/card/id/security/detective
|
||||
initial_sprite_stack = list("base-stamp", "top-red", "stamp-n", "pips-brown")
|
||||
name = "Detective's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-red", "stamp-n", "stripe-brown")
|
||||
|
||||
/obj/item/weapon/card/id/security/warden
|
||||
initial_sprite_stack = list("base-stamp", "top-red", "stamp-n", "pips-white")
|
||||
name = "Warden's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-red", "stamp-n", "stripe-white")
|
||||
|
||||
/obj/item/weapon/card/id/security/head
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-red", "stamp-n", "stripe-gold")
|
||||
name = "Head of Security's ID"
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-red", "stamp-n", "pips-gold")
|
||||
|
||||
//Engineering
|
||||
|
||||
// ENGINEERING
|
||||
/obj/item/weapon/card/id/engineering
|
||||
name = "Engineering ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-orange", "stamp-n")
|
||||
|
||||
/obj/item/weapon/card/id/engineering/atmos
|
||||
initial_sprite_stack = list("base-stamp", "top-orange", "pips-medblu", "stamp-n")
|
||||
name = "Atmospherics ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-orange", "stripe-medblu", "stamp-n")
|
||||
|
||||
/obj/item/weapon/card/id/engineering/head
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-orange", "stamp-n", "stripe-gold")
|
||||
name = "Chief Engineer's ID"
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-orange", "stamp-n", "pips-gold")
|
||||
|
||||
//Science
|
||||
|
||||
// SCIENCE
|
||||
/obj/item/weapon/card/id/science
|
||||
name = "Science ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-purple", "stamp-n")
|
||||
|
||||
/obj/item/weapon/card/id/science/roboticist
|
||||
initial_sprite_stack = list("base-stamp", "top-purple", "stamp-n", "pips-orange")
|
||||
name = "Roboticist's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-purple", "stamp-n", "stripe-brown")
|
||||
|
||||
/obj/item/weapon/card/id/science/explorer
|
||||
initial_sprite_stack = list("base-stamp", "top-darkgreen", "stamp-n")
|
||||
/obj/item/weapon/card/id/science/xenobiologist
|
||||
name = "Xenobiologist's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-purple", "stamp-n", "stripe-orange")
|
||||
|
||||
/obj/item/weapon/card/id/science/xenobotanist
|
||||
name = "Xenobotanist's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-purple", "stamp-n", "stripe-green")
|
||||
|
||||
/obj/item/weapon/card/id/science/head
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-purple", "stamp-n", "stripe-gold")
|
||||
name = "Research Director's ID"
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-purple", "stamp-n", "pips-gold")
|
||||
|
||||
/obj/item/weapon/card/id/science/head/pathfinder
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-blue", "dept-exploration", "stamp-n", "pips-gold")
|
||||
//Cargo
|
||||
|
||||
// CARGO
|
||||
/obj/item/weapon/card/id/cargo
|
||||
name = "Cargo ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-brown", "stamp-n")
|
||||
|
||||
/obj/item/weapon/card/id/cargo/miner
|
||||
initial_sprite_stack = list("base-stamp", "top-brown", "stamp-n", "pips-purple")
|
||||
name = "Miner's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-brown", "stamp-n", "stripe-purple")
|
||||
|
||||
/obj/item/weapon/card/id/cargo/head
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-brown", "stamp-n", "pips-gold")
|
||||
name = "Quartermaster's ID"
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-brown", "stamp-n", "pips-white")
|
||||
|
||||
//Civilian
|
||||
|
||||
// CIVLIAN
|
||||
/obj/item/weapon/card/id/civilian
|
||||
initial_sprite_stack = list("base-stamp", "top-green", "stamp-n")
|
||||
name = "Civilian ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n")
|
||||
|
||||
/obj/item/weapon/card/id/civilian/chaplain
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-dark", "stamp-cross", "pips-white")
|
||||
|
||||
/obj/item/weapon/card/id/civilian/internal_affairs
|
||||
initial_sprite_stack = list("base-stamp", "top-green", "stamp-n")
|
||||
|
||||
/obj/item/weapon/card/id/civilian/botanist
|
||||
initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "pips-brown")
|
||||
|
||||
/obj/item/weapon/card/id/civilian/bartender
|
||||
initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "pips-dark")
|
||||
|
||||
/obj/item/weapon/card/id/civilian/chef
|
||||
initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "pips-white")
|
||||
|
||||
/obj/item/weapon/card/id/civilian/janitor
|
||||
initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "pips-purple")
|
||||
name = "Chaplain's ID"
|
||||
initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-cross", "stripe-white")
|
||||
|
||||
/obj/item/weapon/card/id/civilian/journalist
|
||||
initial_sprite_stack = list("base-stamp", "top-green", "stamp-n")
|
||||
name = "Journalist's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n", "stripe-red")
|
||||
|
||||
/obj/item/weapon/card/id/civilian/pilot
|
||||
name = "Pilot's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n", "stripe-olive")
|
||||
|
||||
/obj/item/weapon/card/id/civilian/entertainer
|
||||
name = "Entertainer's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n", "stripe-brown")
|
||||
|
||||
/obj/item/weapon/card/id/civilian/entrepreneur
|
||||
name = "Entrepreneur's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n", "stripe-gold")
|
||||
|
||||
/obj/item/weapon/card/id/civilian/clown
|
||||
name = "Clown's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-rainbow", "stamp-n")
|
||||
|
||||
/obj/item/weapon/card/id/civilian/mime
|
||||
name = "Mime's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-white", "stamp-n", "stripe-black")
|
||||
|
||||
/obj/item/weapon/card/id/civilian/pilot
|
||||
initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n", "pips-blue")
|
||||
/obj/item/weapon/card/id/civilian/internal_affairs
|
||||
name = "Internal Affairs ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-blue", "stamp-n", "stripe-black")
|
||||
|
||||
/obj/item/weapon/card/id/civilian/head
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "stripe-white")
|
||||
//Service
|
||||
|
||||
/obj/item/weapon/card/id/civilian/service
|
||||
name = "Service ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-green", "stamp-n")
|
||||
|
||||
/obj/item/weapon/card/id/civilian/service/botanist
|
||||
name = "Botanist's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "stripe-darkgreen")
|
||||
|
||||
/obj/item/weapon/card/id/civilian/service/bartender
|
||||
name = "Bartender's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "stripe-black")
|
||||
|
||||
/obj/item/weapon/card/id/civilian/service/chef
|
||||
name = "Chef's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "stripe-white")
|
||||
|
||||
/obj/item/weapon/card/id/civilian/service/janitor
|
||||
name = "Janitor's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "stripe-purple")
|
||||
|
||||
//Exploration
|
||||
|
||||
/obj/item/weapon/card/id/exploration
|
||||
name = "Exploration ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-olive", "stamp-n")
|
||||
|
||||
/obj/item/weapon/card/id/exploration/fm
|
||||
name = "Field Medic's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-olive", "stamp-n", "stripe-medblu")
|
||||
|
||||
/obj/item/weapon/card/id/exploration/head
|
||||
name = "Pathfinder's ID"
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-olive", "stamp-n", "pips-white")
|
||||
|
||||
//Talon
|
||||
|
||||
/obj/item/weapon/card/id/talon
|
||||
name = "Talon ID"
|
||||
initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette")
|
||||
|
||||
/obj/item/weapon/card/id/talon/doctor
|
||||
name = "Talon Medical ID"
|
||||
initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-medblu", "stripe-medblu")
|
||||
|
||||
/obj/item/weapon/card/id/talon/engineer
|
||||
name = "Talon Engineering ID"
|
||||
initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-orange", "stripe-orange")
|
||||
|
||||
/obj/item/weapon/card/id/talon/officer
|
||||
name = "Talon Security ID"
|
||||
initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-red", "stripe-red")
|
||||
|
||||
/obj/item/weapon/card/id/talon/pilot
|
||||
name = "Talon Pilot ID"
|
||||
initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-purple", "stripe-purple")
|
||||
|
||||
/obj/item/weapon/card/id/talon/miner
|
||||
name = "Talon Mining ID"
|
||||
initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-brown", "stripe-brown")
|
||||
|
||||
/obj/item/weapon/card/id/talon/captain
|
||||
name = "Talon Captain ID"
|
||||
initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-gold", "stripe-gold")
|
||||
|
||||
//Antags
|
||||
|
||||
/obj/item/weapon/card/id/syndicate
|
||||
name = "Syndicate ID"
|
||||
initial_sprite_stack = list("base-stamp-dark", "top-syndicate", "stamp-s")
|
||||
|
||||
/obj/item/weapon/card/id/syndicate/officer
|
||||
name = "Syndicate Officer ID"
|
||||
initial_sprite_stack = list("base-stamp-dark", "top-syndicate", "stamp-s", "pips-gold", "stripe-gold")
|
||||
*/
|
||||
@@ -1,284 +0,0 @@
|
||||
/obj/item/weapon/card
|
||||
icon = 'icons/obj/card_new_vr.dmi'
|
||||
base_icon = 'icons/obj/card_new_vr.dmi'
|
||||
|
||||
//IDs
|
||||
|
||||
/obj/item/weapon/card/id
|
||||
initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n")
|
||||
|
||||
/obj/item/weapon/card/id/generic
|
||||
name = "Generic ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-generic", "stamp-silhouette", "clip")
|
||||
|
||||
//Central
|
||||
|
||||
/obj/item/weapon/card/id/centcom
|
||||
name = "Central Command ID"
|
||||
initial_sprite_stack = list("base-stamp-gold", "top-blue", "stamp-n", "pips-white", "stripe-gold")
|
||||
|
||||
/obj/item/weapon/card/id/centcom/vip
|
||||
name = "VIP ID"
|
||||
initial_sprite_stack = list("base-stamp-gold", "top-blue", "stamp-n", "pips-gold", "stripe-gold")
|
||||
|
||||
//ERT
|
||||
|
||||
/obj/item/weapon/card/id/centcom/ERT
|
||||
name = "Emergency Responder ID"
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-red", "stripe-red")
|
||||
|
||||
/obj/item/weapon/card/id/centcom/ERT/medic
|
||||
name = "Emergency Medical Responder ID"
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-medblu", "stripe-medblu")
|
||||
|
||||
/obj/item/weapon/card/id/centcom/ERT/commander
|
||||
name = "Emergency Response Commander ID"
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-gold", "stripe-gold")
|
||||
|
||||
/obj/item/weapon/card/id/centcom/ERT/engineer
|
||||
name = "Emergency Engineering Responder ID"
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-orange", "stripe-orange")
|
||||
|
||||
/obj/item/weapon/card/id/centcom/ERT/janitor
|
||||
name = "Emergency Cleanup Responder ID"
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-purple", "stripe-purple")
|
||||
|
||||
//Silver
|
||||
|
||||
/obj/item/weapon/card/id/silver
|
||||
name = "Silver ID"
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n")
|
||||
|
||||
/obj/item/weapon/card/id/silver/secretary
|
||||
name = "Secretary's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-blue", "stamp-n")
|
||||
|
||||
/obj/item/weapon/card/id/silver/hop
|
||||
name = "Head of Personnel ID"
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-gold")
|
||||
|
||||
//Gold
|
||||
|
||||
/obj/item/weapon/card/id/gold
|
||||
name = "Gold ID"
|
||||
initial_sprite_stack = list("base-stamp-gold", "top-blue", "stamp-n")
|
||||
|
||||
/obj/item/weapon/card/id/gold/captain
|
||||
name = "Captain's ID"
|
||||
initial_sprite_stack = list("base-stamp-gold", "top-blue", "stamp-n", "pips-gold")
|
||||
|
||||
/obj/item/weapon/card/id/gold/captain/spare
|
||||
name = "Spare ID"
|
||||
initial_sprite_stack = list("base-stamp-gold", "top-gold", "stamp-n")
|
||||
|
||||
//Medical
|
||||
|
||||
/obj/item/weapon/card/id/medical
|
||||
name = "Medical ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n")
|
||||
|
||||
/obj/item/weapon/card/id/medical/chemist
|
||||
name = "Chemist's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-orange")
|
||||
|
||||
/obj/item/weapon/card/id/medical/geneticist
|
||||
name = "Geneticist's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-purple")
|
||||
|
||||
/obj/item/weapon/card/id/medical/psych
|
||||
name = "Psychologist's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-brown")
|
||||
|
||||
/obj/item/weapon/card/id/medical/virologist
|
||||
name = "Virologist's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-green")
|
||||
|
||||
/obj/item/weapon/card/id/medical/emt
|
||||
name = "Emergency Medical Technician's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-blue")
|
||||
|
||||
/obj/item/weapon/card/id/medical/head
|
||||
name = "Chief Medical Officer's ID"
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-medblu", "stamp-n", "pips-gold")
|
||||
|
||||
//Security
|
||||
|
||||
/obj/item/weapon/card/id/security
|
||||
name = "Security ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-red", "stamp-n")
|
||||
|
||||
/obj/item/weapon/card/id/security/detective
|
||||
name = "Detective's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-red", "stamp-n", "stripe-brown")
|
||||
|
||||
/obj/item/weapon/card/id/security/warden
|
||||
name = "Warden's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-red", "stamp-n", "stripe-white")
|
||||
|
||||
/obj/item/weapon/card/id/security/head
|
||||
name = "Head of Security's ID"
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-red", "stamp-n", "pips-gold")
|
||||
|
||||
//Engineering
|
||||
|
||||
/obj/item/weapon/card/id/engineering
|
||||
name = "Engineering ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-orange", "stamp-n")
|
||||
|
||||
/obj/item/weapon/card/id/engineering/atmos
|
||||
name = "Atmospherics ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-orange", "stripe-medblu", "stamp-n")
|
||||
|
||||
/obj/item/weapon/card/id/engineering/head
|
||||
name = "Chief Engineer's ID"
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-orange", "stamp-n", "pips-gold")
|
||||
|
||||
//Science
|
||||
|
||||
/obj/item/weapon/card/id/science
|
||||
name = "Science ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-purple", "stamp-n")
|
||||
|
||||
/obj/item/weapon/card/id/science/roboticist
|
||||
name = "Roboticist's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-purple", "stamp-n", "stripe-brown")
|
||||
|
||||
/obj/item/weapon/card/id/science/xenobiologist
|
||||
name = "Xenobiologist's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-purple", "stamp-n", "stripe-orange")
|
||||
|
||||
/obj/item/weapon/card/id/science/xenobotanist
|
||||
name = "Xenobotanist's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-purple", "stamp-n", "stripe-green")
|
||||
|
||||
/obj/item/weapon/card/id/science/head
|
||||
name = "Research Director's ID"
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-purple", "stamp-n", "pips-gold")
|
||||
|
||||
//Cargo
|
||||
|
||||
/obj/item/weapon/card/id/cargo
|
||||
name = "Cargo ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-brown", "stamp-n")
|
||||
|
||||
/obj/item/weapon/card/id/cargo/miner
|
||||
name = "Miner's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-brown", "stamp-n", "stripe-purple")
|
||||
|
||||
/obj/item/weapon/card/id/cargo/head
|
||||
name = "Quartermaster's ID"
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-brown", "stamp-n", "pips-white")
|
||||
|
||||
//Civilian
|
||||
|
||||
/obj/item/weapon/card/id/civilian
|
||||
name = "Civilian ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n")
|
||||
|
||||
/obj/item/weapon/card/id/civilian/chaplain
|
||||
name = "Chaplain's ID"
|
||||
initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-cross", "stripe-white")
|
||||
|
||||
/obj/item/weapon/card/id/civilian/journalist
|
||||
name = "Journalist's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n", "stripe-red")
|
||||
|
||||
/obj/item/weapon/card/id/civilian/pilot
|
||||
name = "Pilot's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n", "stripe-olive")
|
||||
|
||||
/obj/item/weapon/card/id/civilian/entertainer
|
||||
name = "Entertainer's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n", "stripe-brown")
|
||||
|
||||
/obj/item/weapon/card/id/civilian/entrepreneur
|
||||
name = "Entrepreneur's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n", "stripe-gold")
|
||||
|
||||
/obj/item/weapon/card/id/civilian/clown
|
||||
name = "Clown's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-rainbow", "stamp-n")
|
||||
|
||||
/obj/item/weapon/card/id/civilian/mime
|
||||
name = "Mime's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-white", "stamp-n", "stripe-black")
|
||||
|
||||
/obj/item/weapon/card/id/civilian/internal_affairs
|
||||
name = "Internal Affairs ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-blue", "stamp-n", "stripe-black")
|
||||
|
||||
//Service
|
||||
|
||||
/obj/item/weapon/card/id/civilian/service
|
||||
name = "Service ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-green", "stamp-n")
|
||||
|
||||
/obj/item/weapon/card/id/civilian/service/botanist
|
||||
name = "Botanist's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "stripe-darkgreen")
|
||||
|
||||
/obj/item/weapon/card/id/civilian/service/bartender
|
||||
name = "Bartender's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "stripe-black")
|
||||
|
||||
/obj/item/weapon/card/id/civilian/service/chef
|
||||
name = "Chef's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "stripe-white")
|
||||
|
||||
/obj/item/weapon/card/id/civilian/service/janitor
|
||||
name = "Janitor's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "stripe-purple")
|
||||
|
||||
//Exploration
|
||||
|
||||
/obj/item/weapon/card/id/exploration
|
||||
name = "Exploration ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-olive", "stamp-n")
|
||||
|
||||
/obj/item/weapon/card/id/exploration/fm
|
||||
name = "Field Medic's ID"
|
||||
initial_sprite_stack = list("base-stamp", "top-olive", "stamp-n", "stripe-medblu")
|
||||
|
||||
/obj/item/weapon/card/id/exploration/head
|
||||
name = "Pathfinder's ID"
|
||||
initial_sprite_stack = list("base-stamp-silver", "top-olive", "stamp-n", "pips-white")
|
||||
|
||||
//Talon
|
||||
|
||||
/obj/item/weapon/card/id/talon
|
||||
name = "Talon ID"
|
||||
initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette")
|
||||
|
||||
/obj/item/weapon/card/id/talon/doctor
|
||||
name = "Talon Medical ID"
|
||||
initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-medblu", "stripe-medblu")
|
||||
|
||||
/obj/item/weapon/card/id/talon/engineer
|
||||
name = "Talon Engineering ID"
|
||||
initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-orange", "stripe-orange")
|
||||
|
||||
/obj/item/weapon/card/id/talon/officer
|
||||
name = "Talon Security ID"
|
||||
initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-red", "stripe-red")
|
||||
|
||||
/obj/item/weapon/card/id/talon/pilot
|
||||
name = "Talon Pilot ID"
|
||||
initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-purple", "stripe-purple")
|
||||
|
||||
/obj/item/weapon/card/id/talon/miner
|
||||
name = "Talon Mining ID"
|
||||
initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-brown", "stripe-brown")
|
||||
|
||||
/obj/item/weapon/card/id/talon/captain
|
||||
name = "Talon Captain ID"
|
||||
initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-gold", "stripe-gold")
|
||||
|
||||
//Antags
|
||||
|
||||
/obj/item/weapon/card/id/syndicate
|
||||
name = "Syndicate ID"
|
||||
initial_sprite_stack = list("base-stamp-dark", "top-syndicate", "stamp-s")
|
||||
|
||||
/obj/item/weapon/card/id/syndicate/officer
|
||||
name = "Syndicate Officer ID"
|
||||
initial_sprite_stack = list("base-stamp-dark", "top-syndicate", "stamp-s", "pips-gold", "stripe-gold")
|
||||
@@ -151,6 +151,9 @@
|
||||
icon_state = "gold-id-alternate"
|
||||
registered_name = "Site Manager"
|
||||
|
||||
/obj/item/weapon/card/id/gold/captain/spare/fakespare
|
||||
rank = "null"
|
||||
|
||||
/obj/item/weapon/card/id/synthetic
|
||||
name = "\improper Synthetic ID"
|
||||
desc = "Access module for NanoTrasen Synthetics"
|
||||
@@ -162,6 +165,16 @@
|
||||
. = ..()
|
||||
access = get_all_station_access().Copy() + access_synth
|
||||
|
||||
/obj/item/weapon/card/id/lost
|
||||
name = "\improper Unknown ID"
|
||||
desc = "Access module for Lost drones"
|
||||
icon_state = "id-robot-n"
|
||||
assignment = "Lost"
|
||||
|
||||
/obj/item/weapon/card/id/lost/Initialize()
|
||||
. = ..()
|
||||
access += access_lost
|
||||
|
||||
/obj/item/weapon/card/id/platform
|
||||
name = "\improper Support Platform ID"
|
||||
desc = "Access module for support platforms."
|
||||
@@ -307,3 +320,274 @@
|
||||
icon_state = "generic"
|
||||
primary_color = rgb(142,94,0)
|
||||
secondary_color = rgb(191,159,95)
|
||||
|
||||
//Event IDs
|
||||
/obj/item/weapon/card/id/event
|
||||
var/configured = 0
|
||||
var/accessset = 0
|
||||
initial_sprite_stack = list()
|
||||
var/list/title_strings = list()
|
||||
var/preset_rank = FALSE
|
||||
|
||||
/obj/item/weapon/card/id/event/attack_self(var/mob/user)
|
||||
if(configured == 1)
|
||||
return ..()
|
||||
|
||||
if(!preset_rank)
|
||||
var/title
|
||||
if(user.client.prefs.player_alt_titles[user.job])
|
||||
title = user.client.prefs.player_alt_titles[user.job]
|
||||
else
|
||||
title = user.job
|
||||
assignment = title
|
||||
user.set_id_info(src)
|
||||
if(user.mind && user.mind.initial_account)
|
||||
associated_account_number = user.mind.initial_account.account_number
|
||||
if(title_strings.len)
|
||||
var/tempname = pick(title_strings)
|
||||
name = tempname + " ([assignment] Contractor)"//Chompedit: Suffix contractor IDs
|
||||
else
|
||||
name = user.name + "'s ID card" + " ([assignment] Contractor)"//Chompedit: Suffix contractor IDs
|
||||
|
||||
configured = 1
|
||||
to_chat(user, "<span class='notice'>Card settings set.</span>")
|
||||
|
||||
/obj/item/weapon/card/id/event/attackby(obj/item/I as obj, var/mob/user)
|
||||
if(istype(I, /obj/item/weapon/card/id) && !accessset)
|
||||
var/obj/item/weapon/card/id/O = I
|
||||
access |= O.access
|
||||
desc = I.desc
|
||||
rank = O.rank
|
||||
to_chat(user, "<span class='notice'>You copy the access from \the [I] to \the [src].</span>")
|
||||
user.drop_from_inventory(I)
|
||||
qdel(I)
|
||||
accessset = 1
|
||||
..()
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset
|
||||
accessset = 1
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset/itg
|
||||
name = "identification card"
|
||||
desc = "A small card designating affiliation with the Ironcrest Transport Group."
|
||||
icon = 'icons/obj/card_vr.dmi'
|
||||
base_icon = 'icons/obj/card_vr.dmi'
|
||||
icon_state = "itg"
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset/itg/green
|
||||
icon_state = "itg_green"
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset/itg/red
|
||||
icon_state = "itg_red"
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset/itg/purple
|
||||
icon_state = "itg_purple"
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset/itg/white
|
||||
icon_state = "itg_white"
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset/itg/orange
|
||||
icon_state = "itg_orange"
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset/itg/blue
|
||||
icon_state = "itg_blue"
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset/itg/crew
|
||||
name = "\improper ITG Crew ID"
|
||||
assignment = "Crew"
|
||||
rank = "Crew"
|
||||
access = list(777)
|
||||
preset_rank = TRUE
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset/itg/crew/pilot
|
||||
name = "\improper ITG Pilot's ID"
|
||||
desc = "An ID card belonging to the Pilot of an ITG vessel. The Pilot's responsibility is primarily to fly the ship. They may also be tasked to assist with cargo movement duties."
|
||||
assignment = "Pilot"
|
||||
rank = "Pilot"
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset/itg/crew/service
|
||||
name = "\improper ITG Cook's ID"
|
||||
desc = "An ID card belonging to the Cook of an ITG vessel. The Cook's responsibility is primarily to provide sustinence to the crew and passengers. The Cook answers to the Passenger Liason. In the absence of a Passenger Liason, the Cook is also responsible for tending to passenger related care and duties."
|
||||
assignment = "Cook"
|
||||
rank = "Cook"
|
||||
icon_state = "itg_green"
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset/itg/crew/security
|
||||
name = "\improper ITG Security's ID"
|
||||
desc = "An ID card belonging to Security of an ITG vessel. Security's responsibility is primarily to protect the ship, cargo, or facility. They may also be tasked to assist with cargo movement duties and rescue operations. ITG Security is almost exclusively defensive. They should not start fights, but they are very capable of finishing them."
|
||||
assignment = "Security"
|
||||
rank = "Security"
|
||||
icon_state = "itg_red"
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset/itg/crew/research
|
||||
name = "\improper ITG Research's ID"
|
||||
desc = "An ID card belonging to ITG Research staff. ITG Research staff primarily specializes in starship and starship engine design, and overcoming astronomic phenomena."
|
||||
assignment = "Research"
|
||||
rank = "Research"
|
||||
icon_state = "itg_purple"
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset/itg/crew/medical
|
||||
name = "\improper ITG Medic's ID"
|
||||
desc = "An ID card belonging to the Medic of an ITG vessel. The Medic's responsibility is primarily to treat crew and passenger injuries. They may also be tasked with rescue operations."
|
||||
assignment = "Medic"
|
||||
rank = "Medic"
|
||||
icon_state = "itg_white"
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset/itg/crew/engineer
|
||||
name = "\improper ITG Engineer's ID"
|
||||
desc = "An ID card belonging to the Engineer of an ITG vessel. The Engineer's responsibility is primarily to maintain the ship. They may also be tasked to assist with cargo movement duties."
|
||||
assignment = "Engineer"
|
||||
rank = "Engineer"
|
||||
icon_state = "itg_orange"
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset/itg/crew/passengerliason
|
||||
name = "\improper ITG Passenger Liason's ID"
|
||||
desc = "An ID card belonging to the Passenger Liason of an ITG vessel. The Passenger Liason's responsibility is primarily to manage and tend to passenger needs and maintain supplies and facilities for passenger use."
|
||||
assignment = "Passenger Liason"
|
||||
rank = "Passenger Liason"
|
||||
icon_state = "itg_blue"
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset/itg/crew/captain
|
||||
name = "\improper ITG Captain's ID"
|
||||
desc = "An ID card belonging to the Captain of an ITG vessel. The Captain's responsibility is primarily to manage crew to ensure smooth ship operations. Captains often also often pilot the vessel when no dedicated pilot is assigned."
|
||||
assignment = "Captain"
|
||||
rank = "Captain"
|
||||
icon_state = "itg_blue"
|
||||
access = list(777, 778)
|
||||
|
||||
/obj/item/weapon/card/id/event/altcard
|
||||
icon = 'icons/obj/card_alt_vr.dmi'
|
||||
base_icon = 'icons/obj/card_alt_vr.dmi'
|
||||
icon_state = "id"
|
||||
|
||||
/obj/item/weapon/card/id/event/altcard/spare
|
||||
icon_state = "spare"
|
||||
|
||||
/obj/item/weapon/card/id/event/altcard/clown
|
||||
icon_state = "Clown"
|
||||
|
||||
/obj/item/weapon/card/id/event/altcard/mime
|
||||
icon_state = "Mime"
|
||||
|
||||
/obj/item/weapon/card/id/event/altcard/centcom
|
||||
icon_state = "CentCom Officer"
|
||||
|
||||
/obj/item/weapon/card/id/event/altcard/ert
|
||||
icon_state = "Emergency Responder"
|
||||
|
||||
/obj/item/weapon/card/id/event/altcard/nt
|
||||
icon_state = "nanotrasen"
|
||||
|
||||
/obj/item/weapon/card/id/event/altcard/syndiegold
|
||||
icon_state = "syndieGold"
|
||||
|
||||
/obj/item/weapon/card/id/event/altcard/syndie
|
||||
icon_state = "syndie"
|
||||
|
||||
/obj/item/weapon/card/id/event/altcard/greengold
|
||||
icon_state = "greenGold"
|
||||
|
||||
/obj/item/weapon/card/id/event/altcard/pink
|
||||
icon_state = "pink"
|
||||
|
||||
/obj/item/weapon/card/id/event/altcard/pinkgold
|
||||
icon_state = "pinkGold"
|
||||
|
||||
/obj/item/weapon/card/id/event/polymorphic
|
||||
var/base_icon_state
|
||||
|
||||
/obj/item/weapon/card/id/event/polymorphic/digest_act(atom/movable/item_storage = null)
|
||||
var/gimmeicon = icon
|
||||
. = ..()
|
||||
icon = gimmeicon
|
||||
icon_state = base_icon_state + "_digested"
|
||||
|
||||
/obj/item/weapon/card/id/event/polymorphic/altcard/attack_self(var/mob/user)
|
||||
if(configured == 1)
|
||||
return ..()
|
||||
else
|
||||
icon_state = user.job
|
||||
base_icon_state = user.job
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/card/id/event/polymorphic/altcard
|
||||
icon = 'icons/obj/card_alt_vr.dmi'
|
||||
base_icon = 'icons/obj/card_alt_vr.dmi'
|
||||
icon_state = "blank"
|
||||
name = "contractor identification card"
|
||||
desc = "An ID card typically used by contractors."
|
||||
|
||||
/obj/item/weapon/card/id/event/polymorphic/itg/attack_self(var/mob/user)
|
||||
if(!configured)
|
||||
var/list/jobs_to_icon = list( //ITG only has a few kinds of icons so we have to group them up!
|
||||
"Pilot" = "itg",
|
||||
"Visitor" = "itg",
|
||||
"Quartermaster" = "itg",
|
||||
"Cargo Technician" = "itg",
|
||||
"Shaft Miner" = "itg",
|
||||
"Intern" = "itg",
|
||||
"Talon Pilot" = "itg",
|
||||
"Talon Miner" = "itg",
|
||||
"Bartender" = "itg_green",
|
||||
"Botanist" = "itg_green",
|
||||
"Chef" = "itg_green",
|
||||
"Janitor" = "itg_green",
|
||||
"Chaplain" = "itg_green",
|
||||
"Entertainer" = "itg_green",
|
||||
"Janitor" = "itg_green",
|
||||
"Librarian" = "itg_green",
|
||||
"Warden" = "itg_red",
|
||||
"Detective" = "itg_red",
|
||||
"Security Officer" = "itg_red",
|
||||
"Talon Guard" = "itg_red",
|
||||
"Roboticist" = "itg_purple",
|
||||
"Scientist" = "itg_purple",
|
||||
"Xenobiologist" = "itg_purple",
|
||||
"Xenobotanist" = "itg_purple",
|
||||
"Pathfinder" = "itg_purple",
|
||||
"Explorer" = "itg_purple",
|
||||
"Chemist" = "itg_white",
|
||||
"Medical Doctor" = "itg_white",
|
||||
"Paramedic" = "itg_white",
|
||||
"Psychiatrist" = "itg_white",
|
||||
"Field Medic" = "itg_white",
|
||||
"Talon Doctor" = "itg_white",
|
||||
"Atmospheric Technician" = "itg_orange",
|
||||
"Engineer" = "itg_orange",
|
||||
"Off-duty Officer" = "itg_red",
|
||||
"Off-duty Engineer" = "itg_orange",
|
||||
"Off-duty Medic" = "itg_white",
|
||||
"Off-duty Scientist" = "itg_purple",
|
||||
"Off-duty Cargo" = "itg",
|
||||
"Off-duty Explorer" = "itg_purple",
|
||||
"Off-duty Worker" = "itg_green"
|
||||
)
|
||||
var/guess = jobs_to_icon[user.job]
|
||||
|
||||
if(!guess)
|
||||
to_chat(user, "<span class='notice'>ITG Cards do not seem to be able to accept the access codes for your ID.</span>")
|
||||
return
|
||||
else
|
||||
icon_state = guess
|
||||
base_icon_state = guess
|
||||
. = ..()
|
||||
name = user.name + "'s ITG ID card" + " ([assignment])"
|
||||
|
||||
|
||||
/obj/item/weapon/card/id/event/polymorphic/itg/attackby(obj/item/I as obj, var/mob/user)
|
||||
if(istype(I, /obj/item/weapon/card/id) && !accessset)
|
||||
var/obj/item/weapon/card/id/O = I
|
||||
var/list/itgdont = list("Site Manager", "Head of Personnel", "Command Secretary", "Head of Security", "Chief Engineer", "Chief Medical Officer", "Research Director", "Clown", "Mime", "Talon Captain") //If you're in as one of these you probably aren't representing ITG
|
||||
if(O.rank in itgdont)
|
||||
to_chat(user, "<span class='notice'>ITG Cards do not seem to be able to accept the access codes for your ID.</span>")
|
||||
return
|
||||
. = ..()
|
||||
desc = "A small card designating affiliation with the Ironcrest Transport Group. It has a NanoTrasen insignia and a lot of very small print on the back to do with practices and regulations for contractors to use."
|
||||
|
||||
|
||||
/obj/item/weapon/card/id/event/polymorphic/itg
|
||||
icon = 'icons/obj/card_vr.dmi'
|
||||
base_icon = 'icons/obj/card_vr.dmi'
|
||||
icon_state = "itg"
|
||||
name = "\improper ITG identification card"
|
||||
desc = "A small card designating affiliation with the Ironcrest Transport Group. It has a NanoTrasen insignia and a lot of very small print on the back to do with practices and regulations for contractors to use."
|
||||
|
||||
@@ -1,274 +0,0 @@
|
||||
/obj/item/weapon/card/id/event
|
||||
var/configured = 0
|
||||
var/accessset = 0
|
||||
initial_sprite_stack = list()
|
||||
var/list/title_strings = list()
|
||||
var/preset_rank = FALSE
|
||||
|
||||
/obj/item/weapon/card/id/event/attack_self(var/mob/user)
|
||||
if(configured == 1)
|
||||
return ..()
|
||||
|
||||
if(!preset_rank)
|
||||
var/title
|
||||
if(user.client.prefs.player_alt_titles[user.job])
|
||||
title = user.client.prefs.player_alt_titles[user.job]
|
||||
else
|
||||
title = user.job
|
||||
assignment = title
|
||||
user.set_id_info(src)
|
||||
if(user.mind && user.mind.initial_account)
|
||||
associated_account_number = user.mind.initial_account.account_number
|
||||
if(title_strings.len)
|
||||
var/tempname = pick(title_strings)
|
||||
name = tempname + " ([assignment] Contractor)"//Chompedit: Suffix contractor IDs
|
||||
else
|
||||
name = user.name + "'s ID card" + " ([assignment] Contractor)"//Chompedit: Suffix contractor IDs
|
||||
|
||||
configured = 1
|
||||
to_chat(user, "<span class='notice'>Card settings set.</span>")
|
||||
|
||||
/obj/item/weapon/card/id/event/attackby(obj/item/I as obj, var/mob/user)
|
||||
if(istype(I, /obj/item/weapon/card/id) && !accessset)
|
||||
var/obj/item/weapon/card/id/O = I
|
||||
access |= O.access
|
||||
desc = I.desc
|
||||
rank = O.rank
|
||||
to_chat(user, "<span class='notice'>You copy the access from \the [I] to \the [src].</span>")
|
||||
user.drop_from_inventory(I)
|
||||
qdel(I)
|
||||
accessset = 1
|
||||
..()
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset
|
||||
accessset = 1
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/card/id/gold/captain/spare/fakespare
|
||||
rank = "null"
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset/itg
|
||||
name = "identification card"
|
||||
desc = "A small card designating affiliation with the Ironcrest Transport Group."
|
||||
icon = 'icons/obj/card_vr.dmi'
|
||||
base_icon = 'icons/obj/card_vr.dmi'
|
||||
icon_state = "itg"
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset/itg/green
|
||||
icon_state = "itg_green"
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset/itg/red
|
||||
icon_state = "itg_red"
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset/itg/purple
|
||||
icon_state = "itg_purple"
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset/itg/white
|
||||
icon_state = "itg_white"
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset/itg/orange
|
||||
icon_state = "itg_orange"
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset/itg/blue
|
||||
icon_state = "itg_blue"
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset/itg/crew
|
||||
name = "\improper ITG Crew ID"
|
||||
assignment = "Crew"
|
||||
rank = "Crew"
|
||||
access = list(777)
|
||||
preset_rank = TRUE
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset/itg/crew/pilot
|
||||
name = "\improper ITG Pilot's ID"
|
||||
desc = "An ID card belonging to the Pilot of an ITG vessel. The Pilot's responsibility is primarily to fly the ship. They may also be tasked to assist with cargo movement duties."
|
||||
assignment = "Pilot"
|
||||
rank = "Pilot"
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset/itg/crew/service
|
||||
name = "\improper ITG Cook's ID"
|
||||
desc = "An ID card belonging to the Cook of an ITG vessel. The Cook's responsibility is primarily to provide sustinence to the crew and passengers. The Cook answers to the Passenger Liason. In the absence of a Passenger Liason, the Cook is also responsible for tending to passenger related care and duties."
|
||||
assignment = "Cook"
|
||||
rank = "Cook"
|
||||
icon_state = "itg_green"
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset/itg/crew/security
|
||||
name = "\improper ITG Security's ID"
|
||||
desc = "An ID card belonging to Security of an ITG vessel. Security's responsibility is primarily to protect the ship, cargo, or facility. They may also be tasked to assist with cargo movement duties and rescue operations. ITG Security is almost exclusively defensive. They should not start fights, but they are very capable of finishing them."
|
||||
assignment = "Security"
|
||||
rank = "Security"
|
||||
icon_state = "itg_red"
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset/itg/crew/research
|
||||
name = "\improper ITG Research's ID"
|
||||
desc = "An ID card belonging to ITG Research staff. ITG Research staff primarily specializes in starship and starship engine design, and overcoming astronomic phenomena."
|
||||
assignment = "Research"
|
||||
rank = "Research"
|
||||
icon_state = "itg_purple"
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset/itg/crew/medical
|
||||
name = "\improper ITG Medic's ID"
|
||||
desc = "An ID card belonging to the Medic of an ITG vessel. The Medic's responsibility is primarily to treat crew and passenger injuries. They may also be tasked with rescue operations."
|
||||
assignment = "Medic"
|
||||
rank = "Medic"
|
||||
icon_state = "itg_white"
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset/itg/crew/engineer
|
||||
name = "\improper ITG Engineer's ID"
|
||||
desc = "An ID card belonging to the Engineer of an ITG vessel. The Engineer's responsibility is primarily to maintain the ship. They may also be tasked to assist with cargo movement duties."
|
||||
assignment = "Engineer"
|
||||
rank = "Engineer"
|
||||
icon_state = "itg_orange"
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset/itg/crew/passengerliason
|
||||
name = "\improper ITG Passenger Liason's ID"
|
||||
desc = "An ID card belonging to the Passenger Liason of an ITG vessel. The Passenger Liason's responsibility is primarily to manage and tend to passenger needs and maintain supplies and facilities for passenger use."
|
||||
assignment = "Passenger Liason"
|
||||
rank = "Passenger Liason"
|
||||
icon_state = "itg_blue"
|
||||
|
||||
/obj/item/weapon/card/id/event/accessset/itg/crew/captain
|
||||
name = "\improper ITG Captain's ID"
|
||||
desc = "An ID card belonging to the Captain of an ITG vessel. The Captain's responsibility is primarily to manage crew to ensure smooth ship operations. Captains often also often pilot the vessel when no dedicated pilot is assigned."
|
||||
assignment = "Captain"
|
||||
rank = "Captain"
|
||||
icon_state = "itg_blue"
|
||||
access = list(777, 778)
|
||||
|
||||
/obj/item/weapon/card/id/event/altcard
|
||||
icon = 'icons/obj/card_alt_vr.dmi'
|
||||
base_icon = 'icons/obj/card_alt_vr.dmi'
|
||||
icon_state = "id"
|
||||
|
||||
/obj/item/weapon/card/id/event/altcard/spare
|
||||
icon_state = "spare"
|
||||
|
||||
/obj/item/weapon/card/id/event/altcard/clown
|
||||
icon_state = "Clown"
|
||||
|
||||
/obj/item/weapon/card/id/event/altcard/mime
|
||||
icon_state = "Mime"
|
||||
|
||||
/obj/item/weapon/card/id/event/altcard/centcom
|
||||
icon_state = "CentCom Officer"
|
||||
|
||||
/obj/item/weapon/card/id/event/altcard/ert
|
||||
icon_state = "Emergency Responder"
|
||||
|
||||
/obj/item/weapon/card/id/event/altcard/nt
|
||||
icon_state = "nanotrasen"
|
||||
|
||||
/obj/item/weapon/card/id/event/altcard/syndiegold
|
||||
icon_state = "syndieGold"
|
||||
|
||||
/obj/item/weapon/card/id/event/altcard/syndie
|
||||
icon_state = "syndie"
|
||||
|
||||
/obj/item/weapon/card/id/event/altcard/greengold
|
||||
icon_state = "greenGold"
|
||||
|
||||
/obj/item/weapon/card/id/event/altcard/pink
|
||||
icon_state = "pink"
|
||||
|
||||
/obj/item/weapon/card/id/event/altcard/pinkgold
|
||||
icon_state = "pinkGold"
|
||||
|
||||
/obj/item/weapon/card/id/event/polymorphic
|
||||
var/base_icon_state
|
||||
|
||||
/obj/item/weapon/card/id/event/polymorphic/digest_act(atom/movable/item_storage = null)
|
||||
var/gimmeicon = icon
|
||||
. = ..()
|
||||
icon = gimmeicon
|
||||
icon_state = base_icon_state + "_digested"
|
||||
|
||||
/obj/item/weapon/card/id/event/polymorphic/altcard/attack_self(var/mob/user)
|
||||
if(configured == 1)
|
||||
return ..()
|
||||
else
|
||||
icon_state = user.job
|
||||
base_icon_state = user.job
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/card/id/event/polymorphic/altcard
|
||||
icon = 'icons/obj/card_alt_vr.dmi'
|
||||
base_icon = 'icons/obj/card_alt_vr.dmi'
|
||||
icon_state = "blank"
|
||||
name = "contractor identification card"
|
||||
desc = "An ID card typically used by contractors."
|
||||
|
||||
/obj/item/weapon/card/id/event/polymorphic/itg/attack_self(var/mob/user)
|
||||
if(!configured)
|
||||
var/list/jobs_to_icon = list( //ITG only has a few kinds of icons so we have to group them up!
|
||||
"Pilot" = "itg",
|
||||
"Visitor" = "itg",
|
||||
"Quartermaster" = "itg",
|
||||
"Cargo Technician" = "itg",
|
||||
"Shaft Miner" = "itg",
|
||||
"Intern" = "itg",
|
||||
"Talon Pilot" = "itg",
|
||||
"Talon Miner" = "itg",
|
||||
"Bartender" = "itg_green",
|
||||
"Botanist" = "itg_green",
|
||||
"Chef" = "itg_green",
|
||||
"Janitor" = "itg_green",
|
||||
"Chaplain" = "itg_green",
|
||||
"Entertainer" = "itg_green",
|
||||
"Janitor" = "itg_green",
|
||||
"Librarian" = "itg_green",
|
||||
"Warden" = "itg_red",
|
||||
"Detective" = "itg_red",
|
||||
"Security Officer" = "itg_red",
|
||||
"Talon Guard" = "itg_red",
|
||||
"Roboticist" = "itg_purple",
|
||||
"Scientist" = "itg_purple",
|
||||
"Xenobiologist" = "itg_purple",
|
||||
"Xenobotanist" = "itg_purple",
|
||||
"Pathfinder" = "itg_purple",
|
||||
"Explorer" = "itg_purple",
|
||||
"Chemist" = "itg_white",
|
||||
"Medical Doctor" = "itg_white",
|
||||
"Paramedic" = "itg_white",
|
||||
"Psychiatrist" = "itg_white",
|
||||
"Field Medic" = "itg_white",
|
||||
"Talon Doctor" = "itg_white",
|
||||
"Atmospheric Technician" = "itg_orange",
|
||||
"Engineer" = "itg_orange",
|
||||
"Off-duty Officer" = "itg_red",
|
||||
"Off-duty Engineer" = "itg_orange",
|
||||
"Off-duty Medic" = "itg_white",
|
||||
"Off-duty Scientist" = "itg_purple",
|
||||
"Off-duty Cargo" = "itg",
|
||||
"Off-duty Explorer" = "itg_purple",
|
||||
"Off-duty Worker" = "itg_green"
|
||||
)
|
||||
var/guess = jobs_to_icon[user.job]
|
||||
|
||||
if(!guess)
|
||||
to_chat(user, "<span class='notice'>ITG Cards do not seem to be able to accept the access codes for your ID.</span>")
|
||||
return
|
||||
else
|
||||
icon_state = guess
|
||||
base_icon_state = guess
|
||||
. = ..()
|
||||
name = user.name + "'s ITG ID card" + " ([assignment])"
|
||||
|
||||
|
||||
/obj/item/weapon/card/id/event/polymorphic/itg/attackby(obj/item/I as obj, var/mob/user)
|
||||
if(istype(I, /obj/item/weapon/card/id) && !accessset)
|
||||
var/obj/item/weapon/card/id/O = I
|
||||
var/list/itgdont = list("Site Manager", "Head of Personnel", "Command Secretary", "Head of Security", "Chief Engineer", "Chief Medical Officer", "Research Director", "Clown", "Mime", "Talon Captain") //If you're in as one of these you probably aren't representing ITG
|
||||
if(O.rank in itgdont)
|
||||
to_chat(user, "<span class='notice'>ITG Cards do not seem to be able to accept the access codes for your ID.</span>")
|
||||
return
|
||||
. = ..()
|
||||
desc = "A small card designating affiliation with the Ironcrest Transport Group. It has a NanoTrasen insignia and a lot of very small print on the back to do with practices and regulations for contractors to use."
|
||||
|
||||
|
||||
/obj/item/weapon/card/id/event/polymorphic/itg
|
||||
icon = 'icons/obj/card_vr.dmi'
|
||||
base_icon = 'icons/obj/card_vr.dmi'
|
||||
icon_state = "itg"
|
||||
name = "\improper ITG identification card"
|
||||
desc = "A small card designating affiliation with the Ironcrest Transport Group. It has a NanoTrasen insignia and a lot of very small print on the back to do with practices and regulations for contractors to use."
|
||||
@@ -42,6 +42,19 @@ var/list/turf_edge_cache = list()
|
||||
/turf/simulated/floor/outdoors/attackby(obj/item/C, mob/user)
|
||||
|
||||
if(can_dig && istype(C, /obj/item/weapon/shovel))
|
||||
var/obj/item/weapon/shovel/our_shovel = C
|
||||
if(our_shovel.grave_mode)
|
||||
if(contents.len > 0)
|
||||
to_chat(user, SPAN_WARNING("You can't dig here!"))
|
||||
return
|
||||
to_chat(user, SPAN_NOTICE("\The [user] begins digging into \the [src] with \the [C]."))
|
||||
var/delay = (5 SECONDS * C.toolspeed)
|
||||
user.setClickCooldown(delay)
|
||||
if(do_after(user, delay, src))
|
||||
new/obj/structure/closet/grave/dirthole(src)
|
||||
to_chat(user, SPAN_NOTICE("You dug up \a hole!"))
|
||||
return
|
||||
else
|
||||
to_chat(user, SPAN_NOTICE("\The [user] begins digging into \the [src] with \the [C]."))
|
||||
var/delay = (3 SECONDS * C.toolspeed)
|
||||
user.setClickCooldown(delay)
|
||||
@@ -189,3 +202,172 @@ CHOMP Removal End */
|
||||
icon_state = "concrete_dark"
|
||||
desc = "Some sort of material composite road."
|
||||
edge_blending_priority = -1
|
||||
|
||||
/turf/simulated/floor/tiled/asteroid_steel/outdoors
|
||||
name = "weathered tiles"
|
||||
desc = "Old tiles left out in the elements."
|
||||
outdoors = OUTDOORS_YES
|
||||
edge_blending_priority = 1
|
||||
|
||||
/turf/simulated/floor/outdoors/newdirt
|
||||
name = "dirt"
|
||||
desc = "Looks dirty."
|
||||
icon = 'icons/turf/outdoors_vr.dmi'
|
||||
icon_state = "dirt0"
|
||||
edge_blending_priority = 2
|
||||
initial_flooring = /decl/flooring/outdoors/newdirt
|
||||
|
||||
/decl/flooring/outdoors/newdirt
|
||||
name = "dirt"
|
||||
desc = "Looks dirty."
|
||||
icon = 'icons/turf/outdoors_vr.dmi'
|
||||
icon_base = "dirt0"
|
||||
footstep_sounds = list("human" = list(
|
||||
'sound/effects/footstep/asteroid1.ogg',
|
||||
'sound/effects/footstep/asteroid2.ogg',
|
||||
'sound/effects/footstep/asteroid3.ogg',
|
||||
'sound/effects/footstep/asteroid4.ogg',
|
||||
'sound/effects/footstep/asteroid5.ogg',
|
||||
'sound/effects/footstep/MedDirt1.ogg',
|
||||
'sound/effects/footstep/MedDirt2.ogg',
|
||||
'sound/effects/footstep/MedDirt3.ogg',
|
||||
'sound/effects/footstep/MedDirt4.ogg'))
|
||||
|
||||
/turf/simulated/floor/outdoors/newdirt/Initialize(mapload)
|
||||
var/possibledirts = list(
|
||||
"dirt0" = 150,
|
||||
"dirt1" = 25,
|
||||
"dirt2" = 25,
|
||||
"dirt3" = 25,
|
||||
"dirt4" = 25,
|
||||
"dirt5" = 10,
|
||||
"dirt6" = 10,
|
||||
"dirt7" = 3,
|
||||
"dirt8" = 3,
|
||||
"dirt9" = 1
|
||||
)
|
||||
flooring_override = pickweight(possibledirts)
|
||||
return ..()
|
||||
|
||||
|
||||
/turf/simulated/floor/outdoors/newdirt_nograss
|
||||
name = "dirt"
|
||||
desc = "Looks dirty."
|
||||
icon = 'icons/turf/outdoors_vr.dmi'
|
||||
icon_state = "dirt0"
|
||||
edge_blending_priority = 2
|
||||
initial_flooring = /decl/flooring/outdoors/newdirt
|
||||
|
||||
/turf/simulated/floor/outdoors/newdirt_nograss/Initialize(mapload)
|
||||
var/possibledirts = list(
|
||||
"dirt0" = 200,
|
||||
"dirt6" = 20,
|
||||
"dirt7" = 3,
|
||||
"dirt8" = 3,
|
||||
"dirt9" = 1
|
||||
)
|
||||
flooring_override = pickweight(possibledirts)
|
||||
return ..()
|
||||
|
||||
/turf/simulated/floor/outdoors/sidewalk
|
||||
name = "sidewalk"
|
||||
desc = "Concrete shaped into a path!"
|
||||
icon = 'icons/turf/outdoors_vr.dmi'
|
||||
icon_state = "sidewalk"
|
||||
edge_blending_priority = -1
|
||||
movement_cost = -0.5
|
||||
initial_flooring = /decl/flooring/outdoors/sidewalk
|
||||
can_dirty = TRUE
|
||||
|
||||
/decl/flooring/outdoors/sidewalk
|
||||
name = "sidewalk"
|
||||
desc = "Concrete shaped into a path!"
|
||||
icon = 'icons/turf/outdoors_vr.dmi'
|
||||
icon_base = "sidewalk"
|
||||
has_damage_range = 2
|
||||
damage_temperature = T0C+1400
|
||||
flags = TURF_REMOVE_CROWBAR | TURF_CAN_BREAK | TURF_CAN_BURN
|
||||
build_type = /obj/item/stack/tile/floor/sidewalk
|
||||
can_paint = 1
|
||||
can_engrave = FALSE
|
||||
|
||||
footstep_sounds = list("human" = list(
|
||||
'sound/effects/footstep/LightStone1.ogg',
|
||||
'sound/effects/footstep/LightStone2.ogg',
|
||||
'sound/effects/footstep/LightStone3.ogg',
|
||||
'sound/effects/footstep/LightStone4.ogg',))
|
||||
|
||||
/obj/item/stack/tile/floor/sidewalk
|
||||
name = "sidewalk tile"
|
||||
singular_name = "floor tile"
|
||||
desc = "A stone tile fit for covering a section of floor."
|
||||
icon_state = "tile"
|
||||
force = 6.0
|
||||
matter = list(DEFAULT_WALL_MATERIAL = SHEET_MATERIAL_AMOUNT / 4)
|
||||
throwforce = 15.0
|
||||
throw_speed = 5
|
||||
throw_range = 20
|
||||
no_variants = FALSE
|
||||
|
||||
/turf/simulated/floor/outdoors/sidewalk/Initialize(mapload)
|
||||
var/possibledirts = list(
|
||||
"[initial(icon_state)]" = 150,
|
||||
"[initial(icon_state)]1" = 3,
|
||||
"[initial(icon_state)]2" = 3,
|
||||
"[initial(icon_state)]3" = 3,
|
||||
"[initial(icon_state)]4" = 3,
|
||||
"[initial(icon_state)]5" = 3,
|
||||
"[initial(icon_state)]6" = 2,
|
||||
"[initial(icon_state)]7" = 2,
|
||||
"[initial(icon_state)]8" = 2,
|
||||
"[initial(icon_state)]9" = 2,
|
||||
"[initial(icon_state)]10" = 2
|
||||
)
|
||||
flooring_override = pickweight(possibledirts)
|
||||
return ..()
|
||||
|
||||
/turf/simulated/floor/outdoors/sidewalk/side
|
||||
icon_state = "side-walk"
|
||||
initial_flooring = /decl/flooring/outdoors/sidewalk/side
|
||||
|
||||
|
||||
/decl/flooring/outdoors/sidewalk/side
|
||||
icon_base = "sidewalk"
|
||||
build_type = /obj/item/stack/tile/floor/sidewalk/side
|
||||
|
||||
/obj/item/stack/tile/floor/sidewalk/side
|
||||
|
||||
/turf/simulated/floor/outdoors/sidewalk/slab
|
||||
icon_state = "slab"
|
||||
initial_flooring = /decl/flooring/outdoors/sidewalk/slab
|
||||
|
||||
/decl/flooring/outdoors/sidewalk/slab
|
||||
icon_base = "slab"
|
||||
build_type = /obj/item/stack/tile/floor/sidewalk/slab
|
||||
|
||||
/obj/item/stack/tile/floor/sidewalk/slab/
|
||||
|
||||
/turf/simulated/floor/outdoors/sidewalk/slab/city
|
||||
icon_state = "cityslab"
|
||||
initial_flooring = /decl/flooring/outdoors/sidewalk/slab/city
|
||||
|
||||
/decl/flooring/outdoors/sidewalk/slab/city
|
||||
icon_base = "cityslab"
|
||||
build_type = /obj/item/stack/tile/floor/sidewalk/slab/city
|
||||
|
||||
/obj/item/stack/tile/floor/sidewalk/slab/city
|
||||
|
||||
/obj/item/stack/tile/floor/concrete //Proper concrete tile.
|
||||
name = "concrete tile"
|
||||
singular_name = "floor tile"
|
||||
desc = "A concrete tile fit for covering a section of floor."
|
||||
icon_state = "tile"
|
||||
force = 6.0
|
||||
matter = list(DEFAULT_WALL_MATERIAL = SHEET_MATERIAL_AMOUNT / 4)
|
||||
throwforce = 15.0
|
||||
throw_speed = 5
|
||||
throw_range = 20
|
||||
no_variants = TRUE
|
||||
|
||||
/decl/flooring/concrete
|
||||
build_type = /obj/item/stack/tile/floor/concrete
|
||||
|
||||
@@ -1,168 +0,0 @@
|
||||
/turf/simulated/floor/tiled/asteroid_steel/outdoors
|
||||
name = "weathered tiles"
|
||||
desc = "Old tiles left out in the elements."
|
||||
outdoors = OUTDOORS_YES
|
||||
edge_blending_priority = 1
|
||||
|
||||
/turf/simulated/floor/outdoors/newdirt
|
||||
name = "dirt"
|
||||
desc = "Looks dirty."
|
||||
icon = 'icons/turf/outdoors_vr.dmi'
|
||||
icon_state = "dirt0"
|
||||
edge_blending_priority = 2
|
||||
initial_flooring = /decl/flooring/outdoors/newdirt
|
||||
|
||||
/decl/flooring/outdoors/newdirt
|
||||
name = "dirt"
|
||||
desc = "Looks dirty."
|
||||
icon = 'icons/turf/outdoors_vr.dmi'
|
||||
icon_base = "dirt0"
|
||||
footstep_sounds = list("human" = list(
|
||||
'sound/effects/footstep/asteroid1.ogg',
|
||||
'sound/effects/footstep/asteroid2.ogg',
|
||||
'sound/effects/footstep/asteroid3.ogg',
|
||||
'sound/effects/footstep/asteroid4.ogg',
|
||||
'sound/effects/footstep/asteroid5.ogg',
|
||||
'sound/effects/footstep/MedDirt1.ogg',
|
||||
'sound/effects/footstep/MedDirt2.ogg',
|
||||
'sound/effects/footstep/MedDirt3.ogg',
|
||||
'sound/effects/footstep/MedDirt4.ogg'))
|
||||
|
||||
/turf/simulated/floor/outdoors/newdirt/Initialize(mapload)
|
||||
var/possibledirts = list(
|
||||
"dirt0" = 150,
|
||||
"dirt1" = 25,
|
||||
"dirt2" = 25,
|
||||
"dirt3" = 25,
|
||||
"dirt4" = 25,
|
||||
"dirt5" = 10,
|
||||
"dirt6" = 10,
|
||||
"dirt7" = 3,
|
||||
"dirt8" = 3,
|
||||
"dirt9" = 1
|
||||
)
|
||||
flooring_override = pickweight(possibledirts)
|
||||
return ..()
|
||||
|
||||
|
||||
/turf/simulated/floor/outdoors/newdirt_nograss
|
||||
name = "dirt"
|
||||
desc = "Looks dirty."
|
||||
icon = 'icons/turf/outdoors_vr.dmi'
|
||||
icon_state = "dirt0"
|
||||
edge_blending_priority = 2
|
||||
initial_flooring = /decl/flooring/outdoors/newdirt
|
||||
|
||||
/turf/simulated/floor/outdoors/newdirt_nograss/Initialize(mapload)
|
||||
var/possibledirts = list(
|
||||
"dirt0" = 200,
|
||||
"dirt6" = 20,
|
||||
"dirt7" = 3,
|
||||
"dirt8" = 3,
|
||||
"dirt9" = 1
|
||||
)
|
||||
flooring_override = pickweight(possibledirts)
|
||||
return ..()
|
||||
|
||||
/turf/simulated/floor/outdoors/sidewalk
|
||||
name = "sidewalk"
|
||||
desc = "Concrete shaped into a path!"
|
||||
icon = 'icons/turf/outdoors_vr.dmi'
|
||||
icon_state = "sidewalk"
|
||||
edge_blending_priority = -1
|
||||
movement_cost = -0.5
|
||||
initial_flooring = /decl/flooring/outdoors/sidewalk
|
||||
can_dirty = TRUE
|
||||
|
||||
/decl/flooring/outdoors/sidewalk
|
||||
name = "sidewalk"
|
||||
desc = "Concrete shaped into a path!"
|
||||
icon = 'icons/turf/outdoors_vr.dmi'
|
||||
icon_base = "sidewalk"
|
||||
has_damage_range = 2
|
||||
damage_temperature = T0C+1400
|
||||
flags = TURF_REMOVE_CROWBAR | TURF_CAN_BREAK | TURF_CAN_BURN
|
||||
build_type = /obj/item/stack/tile/floor/sidewalk
|
||||
can_paint = 1
|
||||
can_engrave = FALSE
|
||||
|
||||
footstep_sounds = list("human" = list(
|
||||
'sound/effects/footstep/LightStone1.ogg',
|
||||
'sound/effects/footstep/LightStone2.ogg',
|
||||
'sound/effects/footstep/LightStone3.ogg',
|
||||
'sound/effects/footstep/LightStone4.ogg',))
|
||||
|
||||
/obj/item/stack/tile/floor/sidewalk
|
||||
name = "sidewalk tile"
|
||||
singular_name = "floor tile"
|
||||
desc = "A stone tile fit for covering a section of floor."
|
||||
icon_state = "tile"
|
||||
force = 6.0
|
||||
matter = list(DEFAULT_WALL_MATERIAL = SHEET_MATERIAL_AMOUNT / 4)
|
||||
throwforce = 15.0
|
||||
throw_speed = 5
|
||||
throw_range = 20
|
||||
no_variants = FALSE
|
||||
|
||||
/turf/simulated/floor/outdoors/sidewalk/Initialize(mapload)
|
||||
var/possibledirts = list(
|
||||
"[initial(icon_state)]" = 150,
|
||||
"[initial(icon_state)]1" = 3,
|
||||
"[initial(icon_state)]2" = 3,
|
||||
"[initial(icon_state)]3" = 3,
|
||||
"[initial(icon_state)]4" = 3,
|
||||
"[initial(icon_state)]5" = 3,
|
||||
"[initial(icon_state)]6" = 2,
|
||||
"[initial(icon_state)]7" = 2,
|
||||
"[initial(icon_state)]8" = 2,
|
||||
"[initial(icon_state)]9" = 2,
|
||||
"[initial(icon_state)]10" = 2
|
||||
)
|
||||
flooring_override = pickweight(possibledirts)
|
||||
return ..()
|
||||
|
||||
/turf/simulated/floor/outdoors/sidewalk/side
|
||||
icon_state = "side-walk"
|
||||
initial_flooring = /decl/flooring/outdoors/sidewalk/side
|
||||
|
||||
|
||||
/decl/flooring/outdoors/sidewalk/side
|
||||
icon_base = "sidewalk"
|
||||
build_type = /obj/item/stack/tile/floor/sidewalk/side
|
||||
|
||||
/obj/item/stack/tile/floor/sidewalk/side
|
||||
|
||||
/turf/simulated/floor/outdoors/sidewalk/slab
|
||||
icon_state = "slab"
|
||||
initial_flooring = /decl/flooring/outdoors/sidewalk/slab
|
||||
|
||||
/decl/flooring/outdoors/sidewalk/slab
|
||||
icon_base = "slab"
|
||||
build_type = /obj/item/stack/tile/floor/sidewalk/slab
|
||||
|
||||
/obj/item/stack/tile/floor/sidewalk/slab/
|
||||
|
||||
/turf/simulated/floor/outdoors/sidewalk/slab/city
|
||||
icon_state = "cityslab"
|
||||
initial_flooring = /decl/flooring/outdoors/sidewalk/slab/city
|
||||
|
||||
/decl/flooring/outdoors/sidewalk/slab/city
|
||||
icon_base = "cityslab"
|
||||
build_type = /obj/item/stack/tile/floor/sidewalk/slab/city
|
||||
|
||||
/obj/item/stack/tile/floor/sidewalk/slab/city
|
||||
|
||||
/obj/item/stack/tile/floor/concrete //Proper concrete tile.
|
||||
name = "concrete tile"
|
||||
singular_name = "floor tile"
|
||||
desc = "A concrete tile fit for covering a section of floor."
|
||||
icon_state = "tile"
|
||||
force = 6.0
|
||||
matter = list(DEFAULT_WALL_MATERIAL = SHEET_MATERIAL_AMOUNT / 4)
|
||||
throwforce = 15.0
|
||||
throw_speed = 5
|
||||
throw_range = 20
|
||||
no_variants = TRUE
|
||||
|
||||
/decl/flooring/concrete
|
||||
build_type = /obj/item/stack/tile/floor/concrete
|
||||
@@ -20,7 +20,7 @@
|
||||
item_state = "pickaxe"
|
||||
w_class = ITEMSIZE_LARGE
|
||||
matter = list(MAT_STEEL = 2500)
|
||||
var/digspeed = 40 //moving the delay to an item var so R&D can make improved picks. --NEO
|
||||
var/digspeed = 36 //moving the delay to an item var so R&D can make improved picks. --NEO
|
||||
var/sand_dig = FALSE // does this thing dig sand?
|
||||
origin_tech = list(TECH_MATERIAL = 1)
|
||||
attack_verb = list("hit", "pierced", "sliced", "attacked")
|
||||
@@ -35,7 +35,7 @@
|
||||
name = "silver pickaxe"
|
||||
icon_state = "spickaxe"
|
||||
item_state = "spickaxe"
|
||||
digspeed = 30
|
||||
digspeed = 27
|
||||
origin_tech = list(TECH_MATERIAL = 3)
|
||||
desc = "This makes no metallurgic sense."
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
name = "golden pickaxe"
|
||||
icon_state = "gpickaxe"
|
||||
item_state = "gpickaxe"
|
||||
digspeed = 20
|
||||
digspeed = 18
|
||||
origin_tech = list(TECH_MATERIAL = 4)
|
||||
desc = "This makes no metallurgic sense."
|
||||
drill_verb = "picking"
|
||||
@@ -52,7 +52,7 @@
|
||||
name = "diamond pickaxe"
|
||||
icon_state = "dpickaxe"
|
||||
item_state = "dpickaxe"
|
||||
digspeed = 10
|
||||
digspeed = 9
|
||||
origin_tech = list(TECH_MATERIAL = 6, TECH_ENGINEERING = 4)
|
||||
desc = "A pickaxe with a diamond pick head."
|
||||
drill_verb = "picking"
|
||||
@@ -63,7 +63,7 @@
|
||||
name = "mining drill" // Can dig sand as well!
|
||||
icon_state = "drill"
|
||||
item_state = "jackhammer"
|
||||
digspeed = 35 //Only slighty better than a pickaxe
|
||||
digspeed = 30 //Only slighty better than a pickaxe
|
||||
sand_dig = TRUE
|
||||
origin_tech = list(TECH_MATERIAL = 1, TECH_POWER = 2, TECH_ENGINEERING = 1)
|
||||
matter = list(MAT_STEEL = 3750)
|
||||
@@ -74,7 +74,7 @@
|
||||
name = "advanced mining drill" // Can dig sand as well!
|
||||
icon_state = "advdrill"
|
||||
item_state = "jackhammer"
|
||||
digspeed = 30
|
||||
digspeed = 27
|
||||
sand_dig = TRUE
|
||||
origin_tech = list(TECH_MATERIAL = 2, TECH_POWER = 3, TECH_ENGINEERING = 2)
|
||||
matter = list(MAT_STEEL = 4000, MAT_PLASTEEL = 2500)
|
||||
@@ -85,7 +85,7 @@
|
||||
name = "diamond mining drill"
|
||||
icon_state = "diamonddrill"
|
||||
item_state = "jackhammer"
|
||||
digspeed = 5 //Digs through walls, girders, and can dig up sand
|
||||
digspeed = 4 //Digs through walls, girders, and can dig up sand
|
||||
sand_dig = TRUE
|
||||
origin_tech = list(TECH_MATERIAL = 6, TECH_POWER = 4, TECH_ENGINEERING = 5)
|
||||
matter = list(MAT_STEEL = 4500, MAT_PLASTEEL = 3000, MAT_DIAMONDS = 1000)
|
||||
@@ -96,19 +96,21 @@
|
||||
name = "sonic jackhammer"
|
||||
icon_state = "jackhammer"
|
||||
item_state = "jackhammer"
|
||||
digspeed = 20 //faster than drill, but cannot dig
|
||||
digspeed = 18 //faster than drill, but cannot dig
|
||||
origin_tech = list(TECH_MATERIAL = 3, TECH_POWER = 2, TECH_ENGINEERING = 2)
|
||||
desc = "Cracks rocks with sonic blasts, perfect for killing cave lizards."
|
||||
drill_verb = "hammering"
|
||||
destroy_artefacts = TRUE
|
||||
|
||||
/obj/item/weapon/pickaxe/borgdrill
|
||||
name = "jackhammer"
|
||||
icon_state = "borg_pick"
|
||||
item_state = "jackhammer"
|
||||
digspeed = 15
|
||||
digspeed = 13
|
||||
sand_dig = TRUE
|
||||
desc = "Cracks rocks with a hardened pneumatic bit."
|
||||
drill_verb = "hammering"
|
||||
destroy_artefacts = TRUE
|
||||
|
||||
/obj/item/weapon/pickaxe/plasmacutter
|
||||
name = "plasma cutter"
|
||||
@@ -117,7 +119,7 @@
|
||||
item_state = "plasmacutter"
|
||||
w_class = ITEMSIZE_NORMAL //it is smaller than the pickaxe
|
||||
damtype = "fire"
|
||||
digspeed = 20 //Can slice though normal walls, all girders, or be used in reinforced wall deconstruction/light thermite on fire
|
||||
digspeed = 18 //Can slice though normal walls, all girders, or be used in reinforced wall deconstruction/light thermite on fire
|
||||
origin_tech = list(TECH_MATERIAL = 4, TECH_PHORON = 3, TECH_ENGINEERING = 3)
|
||||
matter = list(MAT_STEEL = 3000, MAT_PLASTEEL = 1500, MAT_DIAMONDS = 500, MAT_PHORON = 500)
|
||||
drill_verb = "cutting"
|
||||
@@ -133,7 +135,7 @@
|
||||
|
||||
/obj/item/weapon/shovel
|
||||
name = "shovel"
|
||||
desc = "A large tool for digging and moving dirt."
|
||||
desc = "A large tool for digging and moving dirt. Alt click to switch modes."
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "shovel"
|
||||
item_state = "shovel"
|
||||
@@ -147,6 +149,12 @@
|
||||
sharp = FALSE
|
||||
edge = TRUE
|
||||
var/digspeed = 40
|
||||
var/grave_mode = FALSE
|
||||
|
||||
/obj/item/weapon/shovel/AltClick(mob/user)
|
||||
grave_mode = !grave_mode
|
||||
to_chat(user, span_notice("You'll now dig [grave_mode ? "out graves" : "for loot"]."))
|
||||
. = ..()
|
||||
|
||||
/obj/item/weapon/shovel/wood
|
||||
icon_state = "whiteshovel"
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
//upgrades the speed of all drills and pickaxes.
|
||||
|
||||
//Pickaxes
|
||||
/obj/item/weapon/pickaxe
|
||||
digspeed = 36
|
||||
|
||||
/obj/item/weapon/pickaxe/silver
|
||||
digspeed = 27
|
||||
|
||||
/obj/item/weapon/pickaxe/diamond
|
||||
digspeed = 9
|
||||
|
||||
/obj/item/weapon/pickaxe/gold
|
||||
digspeed = 18
|
||||
|
||||
//Drills
|
||||
/obj/item/weapon/pickaxe/drill
|
||||
digspeed = 30
|
||||
|
||||
/obj/item/weapon/pickaxe/advdrill
|
||||
digspeed = 27
|
||||
|
||||
/obj/item/weapon/pickaxe/jackhammer
|
||||
digspeed = 18
|
||||
destroy_artefacts = TRUE
|
||||
|
||||
/obj/item/weapon/pickaxe/diamonddrill
|
||||
digspeed = 4
|
||||
|
||||
/obj/item/weapon/pickaxe/borgdrill
|
||||
digspeed = 13
|
||||
destroy_artefacts = TRUE
|
||||
|
||||
/obj/item/weapon/pickaxe/plasmacutter
|
||||
digspeed = 18
|
||||
@@ -8,6 +8,8 @@
|
||||
// Override the DreamSeeker macro with the borg version!
|
||||
client.set_hotkeys_macro("borgmacro", "borghotkeymode")
|
||||
|
||||
repick_laws()
|
||||
|
||||
// Forces synths to select an icon relevant to their module
|
||||
if(!icon_selected)
|
||||
icon_selection_tries = SSrobot_sprites.get_module_sprites_len(modtype, src) + 1
|
||||
|
||||
@@ -122,6 +122,12 @@
|
||||
var/has_recoloured = FALSE
|
||||
var/vtec_active = FALSE
|
||||
|
||||
// Riding Stuff
|
||||
max_buckled_mobs = 1 //Yeehaw
|
||||
can_buckle = TRUE
|
||||
buckle_movable = TRUE
|
||||
buckle_lying = FALSE
|
||||
|
||||
/mob/living/silicon/robot/New(loc, var/unfinished = 0)
|
||||
spark_system = new /datum/effect/effect/system/spark_spread()
|
||||
spark_system.set_up(5, 0, src)
|
||||
@@ -183,6 +189,7 @@
|
||||
hud_list[IMPTRACK_HUD] = gen_hud_image('icons/mob/hud.dmi', src, "hudblank", plane = PLANE_CH_IMPTRACK)
|
||||
hud_list[SPECIALROLE_HUD] = gen_hud_image('icons/mob/hud.dmi', src, "hudblank", plane = PLANE_CH_SPECIAL)
|
||||
|
||||
riding_datum = new /datum/riding/dogborg(src)
|
||||
|
||||
|
||||
/mob/living/silicon/robot/LateInitialize()
|
||||
@@ -861,7 +868,15 @@
|
||||
to_chat(usr, "You've already recoloured yourself once. Ask for a module reset for another.")
|
||||
|
||||
/mob/living/silicon/robot/attack_hand(mob/user)
|
||||
|
||||
if(LAZYLEN(buckled_mobs))
|
||||
//We're getting off!
|
||||
if(user in buckled_mobs)
|
||||
riding_datum.force_dismount(user)
|
||||
//We're kicking everyone off!
|
||||
if(user == src)
|
||||
for(var/rider in buckled_mobs)
|
||||
riding_datum.force_dismount(rider)
|
||||
else
|
||||
add_fingerprint(user)
|
||||
|
||||
if(opened && !wiresexposed && (!istype(user, /mob/living/silicon)))
|
||||
@@ -1341,6 +1356,9 @@
|
||||
to_chat(usr, "You [sensor_type ? "enable" : "disable"] your sensors.") //VOREStation Add
|
||||
toggle_sensor_mode()
|
||||
|
||||
/mob/living/silicon/robot/proc/repick_laws()
|
||||
return
|
||||
|
||||
/mob/living/silicon/robot/proc/add_robot_verbs()
|
||||
add_verb(src,robot_verbs_default) //CHOMPEdit TGPanel
|
||||
add_verb(src,silicon_subsystems) //CHOMPEdit TGPanel
|
||||
@@ -1565,6 +1583,112 @@
|
||||
if(!rest_style)
|
||||
rest_style = "Default"
|
||||
|
||||
/mob/living/silicon/robot/verb/robot_nom(var/mob/living/T in living_mobs_in_view(1)) //CHOMPEdit
|
||||
set name = "Robot Nom"
|
||||
set category = "Abilities.Vore" //CHOMPEdit
|
||||
set desc = "Allows you to eat someone."
|
||||
|
||||
if (stat != CONSCIOUS)
|
||||
return
|
||||
return feed_grabbed_to_self(src,T)
|
||||
|
||||
//RIDING
|
||||
/datum/riding/dogborg
|
||||
keytype = /obj/item/weapon/material/twohanded/riding_crop // Crack!
|
||||
nonhuman_key_exemption = FALSE // If true, nonhumans who can't hold keys don't need them, like borgs and simplemobs.
|
||||
key_name = "a riding crop" // What the 'keys' for the thing being rided on would be called.
|
||||
only_one_driver = TRUE // If true, only the person in 'front' (first on list of riding mobs) can drive.
|
||||
|
||||
/datum/riding/dogborg/handle_vehicle_layer()
|
||||
ridden.layer = initial(ridden.layer)
|
||||
|
||||
/datum/riding/dogborg/ride_check(mob/living/M)
|
||||
var/mob/living/L = ridden
|
||||
if(L.stat)
|
||||
force_dismount(M)
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/datum/riding/dogborg/force_dismount(mob/M)
|
||||
. =..()
|
||||
ridden.visible_message("<span class='notice'>[M] stops riding [ridden]!</span>")
|
||||
|
||||
//Hoooo boy.
|
||||
/datum/riding/dogborg/get_offsets(pass_index) // list(dir = x, y, layer)
|
||||
var/mob/living/L = ridden
|
||||
var/scale = L.size_multiplier
|
||||
var/scale_difference = (L.size_multiplier - rider_size) * 10
|
||||
|
||||
var/list/values = list(
|
||||
"[NORTH]" = list(0, 10*scale + scale_difference, ABOVE_MOB_LAYER),
|
||||
"[SOUTH]" = list(0, 10*scale + scale_difference, BELOW_MOB_LAYER),
|
||||
"[EAST]" = list(-5*scale, 10*scale + scale_difference, ABOVE_MOB_LAYER),
|
||||
"[WEST]" = list(5*scale, 10*scale + scale_difference, ABOVE_MOB_LAYER))
|
||||
|
||||
return values
|
||||
|
||||
/mob/living/silicon/robot/buckle_mob(mob/living/M, forced = FALSE, check_loc = TRUE)
|
||||
if(forced)
|
||||
return ..() // Skip our checks
|
||||
if(lying)
|
||||
return FALSE
|
||||
if(!ishuman(M))
|
||||
return FALSE
|
||||
if(M in buckled_mobs)
|
||||
return FALSE
|
||||
if(M.size_multiplier > size_multiplier * 1.2)
|
||||
to_chat(src, "<span class='warning'>This isn't a pony show! You need to be bigger for them to ride.</span>")
|
||||
return FALSE
|
||||
|
||||
var/mob/living/carbon/human/H = M
|
||||
|
||||
if(istaurtail(H.tail_style))
|
||||
to_chat(src, "<span class='warning'>Too many legs. TOO MANY LEGS!!</span>")
|
||||
return FALSE
|
||||
if(M.loc != src.loc)
|
||||
if(M.Adjacent(src))
|
||||
M.forceMove(get_turf(src))
|
||||
|
||||
. = ..()
|
||||
if(.)
|
||||
riding_datum.rider_size = M.size_multiplier
|
||||
buckled_mobs[M] = "riding"
|
||||
|
||||
/mob/living/silicon/robot/MouseDrop_T(mob/living/M, mob/living/user) //Prevention for forced relocation caused by can_buckle. Base proc has no other use.
|
||||
return
|
||||
|
||||
/mob/living/silicon/robot/proc/robot_mount(var/mob/living/M in living_mobs(1))
|
||||
set name = "Robot Mount/Dismount"
|
||||
set category = "Abilities.General" //CHOMPEdit
|
||||
set desc = "Let people ride on you."
|
||||
|
||||
if(LAZYLEN(buckled_mobs))
|
||||
for(var/rider in buckled_mobs)
|
||||
riding_datum.force_dismount(rider)
|
||||
return
|
||||
if (stat != CONSCIOUS)
|
||||
return
|
||||
if(!can_buckle || !istype(M) || !M.Adjacent(src) || M.buckled)
|
||||
return
|
||||
if(buckle_mob(M))
|
||||
visible_message("<span class='notice'>[M] starts riding [name]!</span>")
|
||||
|
||||
/mob/living/silicon/robot/onTransitZ(old_z, new_z)
|
||||
if(shell)
|
||||
if(deployed && using_map.ai_shell_restricted && !(new_z in using_map.ai_shell_allowed_levels))
|
||||
to_chat(src, "<span class='warning'>Your connection with the shell is suddenly interrupted!</span>")
|
||||
undeploy()
|
||||
..()
|
||||
|
||||
//CHOMPAdd Start
|
||||
/mob/living/silicon/robot/use_power()
|
||||
if(cell && cell.charge < cell.maxcharge)
|
||||
if(nutrition >= 1 * CYBORG_POWER_USAGE_MULTIPLIER)
|
||||
nutrition -= 1 * CYBORG_POWER_USAGE_MULTIPLIER
|
||||
cell.charge += 10 * CYBORG_POWER_USAGE_MULTIPLIER
|
||||
..()
|
||||
//CHOMPAdd End
|
||||
|
||||
// Those basic ones require quite detailled checks on the robot's vars to see if they are installed!
|
||||
/mob/living/silicon/robot/proc/has_basic_upgrade(var/given_type)
|
||||
if(given_type == /obj/item/borg/upgrade/basic/vtec)
|
||||
|
||||
@@ -1,126 +0,0 @@
|
||||
/mob/living/silicon/robot/verb/robot_nom(var/mob/living/T in living_mobs_in_view(1))
|
||||
set name = "Robot Nom"
|
||||
set category = "Abilities.Vore" //CHOMPEdit
|
||||
set desc = "Allows you to eat someone."
|
||||
|
||||
if (stat != CONSCIOUS)
|
||||
return
|
||||
return feed_grabbed_to_self(src,T)
|
||||
|
||||
//RIDING
|
||||
/datum/riding/dogborg
|
||||
keytype = /obj/item/weapon/material/twohanded/riding_crop // Crack!
|
||||
nonhuman_key_exemption = FALSE // If true, nonhumans who can't hold keys don't need them, like borgs and simplemobs.
|
||||
key_name = "a riding crop" // What the 'keys' for the thing being rided on would be called.
|
||||
only_one_driver = TRUE // If true, only the person in 'front' (first on list of riding mobs) can drive.
|
||||
|
||||
/datum/riding/dogborg/handle_vehicle_layer()
|
||||
ridden.layer = initial(ridden.layer)
|
||||
|
||||
/datum/riding/dogborg/ride_check(mob/living/M)
|
||||
var/mob/living/L = ridden
|
||||
if(L.stat)
|
||||
force_dismount(M)
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/datum/riding/dogborg/force_dismount(mob/M)
|
||||
. =..()
|
||||
ridden.visible_message("<span class='notice'>[M] stops riding [ridden]!</span>")
|
||||
|
||||
//Hoooo boy.
|
||||
/datum/riding/dogborg/get_offsets(pass_index) // list(dir = x, y, layer)
|
||||
var/mob/living/L = ridden
|
||||
var/scale = L.size_multiplier
|
||||
var/scale_difference = (L.size_multiplier - rider_size) * 10
|
||||
|
||||
var/list/values = list(
|
||||
"[NORTH]" = list(0, 10*scale + scale_difference, ABOVE_MOB_LAYER),
|
||||
"[SOUTH]" = list(0, 10*scale + scale_difference, BELOW_MOB_LAYER),
|
||||
"[EAST]" = list(-5*scale, 10*scale + scale_difference, ABOVE_MOB_LAYER),
|
||||
"[WEST]" = list(5*scale, 10*scale + scale_difference, ABOVE_MOB_LAYER))
|
||||
|
||||
return values
|
||||
|
||||
//Human overrides for taur riding
|
||||
/mob/living/silicon/robot
|
||||
max_buckled_mobs = 1 //Yeehaw
|
||||
can_buckle = TRUE
|
||||
buckle_movable = TRUE
|
||||
buckle_lying = FALSE
|
||||
|
||||
/mob/living/silicon/robot/New(loc,var/unfinished = 0)
|
||||
..()
|
||||
riding_datum = new /datum/riding/dogborg(src)
|
||||
|
||||
/mob/living/silicon/robot/buckle_mob(mob/living/M, forced = FALSE, check_loc = TRUE)
|
||||
if(forced)
|
||||
return ..() // Skip our checks
|
||||
if(lying)
|
||||
return FALSE
|
||||
if(!ishuman(M))
|
||||
return FALSE
|
||||
if(M in buckled_mobs)
|
||||
return FALSE
|
||||
if(M.size_multiplier > size_multiplier * 1.2)
|
||||
to_chat(src, "<span class='warning'>This isn't a pony show! You need to be bigger for them to ride.</span>")
|
||||
return FALSE
|
||||
|
||||
var/mob/living/carbon/human/H = M
|
||||
|
||||
if(istaurtail(H.tail_style))
|
||||
to_chat(src, "<span class='warning'>Too many legs. TOO MANY LEGS!!</span>")
|
||||
return FALSE
|
||||
if(M.loc != src.loc)
|
||||
if(M.Adjacent(src))
|
||||
M.forceMove(get_turf(src))
|
||||
|
||||
. = ..()
|
||||
if(.)
|
||||
riding_datum.rider_size = M.size_multiplier
|
||||
buckled_mobs[M] = "riding"
|
||||
|
||||
/mob/living/silicon/robot/MouseDrop_T(mob/living/M, mob/living/user) //Prevention for forced relocation caused by can_buckle. Base proc has no other use.
|
||||
return
|
||||
|
||||
/mob/living/silicon/robot/attack_hand(mob/user as mob)
|
||||
if(LAZYLEN(buckled_mobs) && riding_datum) //CHOMPEdit
|
||||
//We're getting off!
|
||||
if(user in buckled_mobs)
|
||||
riding_datum.force_dismount(user)
|
||||
//We're kicking everyone off!
|
||||
if(user == src)
|
||||
for(var/rider in buckled_mobs)
|
||||
riding_datum.force_dismount(rider)
|
||||
else
|
||||
. = ..()
|
||||
|
||||
/mob/living/silicon/robot/proc/robot_mount(var/mob/living/M in living_mobs(1))
|
||||
set name = "Robot Mount/Dismount"
|
||||
set category = "Abilities.General" //CHOMPEdit
|
||||
set desc = "Let people ride on you."
|
||||
|
||||
if(LAZYLEN(buckled_mobs))
|
||||
for(var/rider in buckled_mobs)
|
||||
riding_datum.force_dismount(rider)
|
||||
return
|
||||
if (stat != CONSCIOUS)
|
||||
return
|
||||
if(!can_buckle || !istype(M) || !M.Adjacent(src) || M.buckled)
|
||||
return
|
||||
if(buckle_mob(M))
|
||||
visible_message("<span class='notice'>[M] starts riding [name]!</span>")
|
||||
|
||||
/mob/living/silicon/robot/onTransitZ(old_z, new_z)
|
||||
if(shell)
|
||||
if(deployed && using_map.ai_shell_restricted && !(new_z in using_map.ai_shell_allowed_levels))
|
||||
to_chat(src, "<span class='warning'>Your connection with the shell is suddenly interrupted!</span>")
|
||||
undeploy()
|
||||
..()
|
||||
|
||||
/mob/living/silicon/robot/use_power() //CHOMPAdd
|
||||
if(cell && cell.charge < cell.maxcharge)
|
||||
if(nutrition >= 1 * CYBORG_POWER_USAGE_MULTIPLIER)
|
||||
nutrition -= 1 * CYBORG_POWER_USAGE_MULTIPLIER
|
||||
cell.charge += 10 * CYBORG_POWER_USAGE_MULTIPLIER
|
||||
..()
|
||||
@@ -5,7 +5,7 @@
|
||||
modtype = "Gravekeeper"
|
||||
lawchannel = "State"
|
||||
braintype = "Drone"
|
||||
idcard_type = /obj/item/weapon/card/id
|
||||
idcard_type = /obj/item/weapon/card/id/lost
|
||||
icon_selected = FALSE
|
||||
can_be_antagged = FALSE
|
||||
restrict_modules_to = list("Gravekeeper")
|
||||
|
||||
@@ -5,9 +5,10 @@
|
||||
modtype = "Lost"
|
||||
lawchannel = "State"
|
||||
braintype = "Drone"
|
||||
idcard_type = /obj/item/weapon/card/id
|
||||
idcard_type = /obj/item/weapon/card/id/lost
|
||||
icon_selected = FALSE
|
||||
restrict_modules_to = list("Lost")
|
||||
var/law_retries = 5
|
||||
|
||||
/mob/living/silicon/robot/lost/init()
|
||||
aiCamera = new/obj/item/device/camera/siliconcam/robot_camera(src)
|
||||
@@ -22,22 +23,59 @@
|
||||
if(!cell)
|
||||
cell = new /obj/item/weapon/cell/high(src) // 15k cell, as recharging stations are a lot more rare on the Surface.
|
||||
|
||||
scramble_hardware()
|
||||
|
||||
playsound(src, 'sound/mecha/nominalsyndi.ogg', 75, 0)
|
||||
|
||||
/mob/living/silicon/robot/lost/speech_bubble_appearance()
|
||||
return "synthetic_evil"
|
||||
|
||||
/mob/living/silicon/robot/lost/proc/scramble_hardware(var/chance)
|
||||
if(prob(20)) //Small chance to spawn with a scrambled
|
||||
emag_items = 1
|
||||
|
||||
/mob/living/silicon/robot/lost/proc/apply_new_laws()
|
||||
return
|
||||
|
||||
/mob/living/silicon/robot/lost/randomlaws
|
||||
|
||||
/mob/living/silicon/robot/lost/randomlaws/apply_new_laws()
|
||||
var/old_name = laws.name
|
||||
laws = give_random_lawset()
|
||||
if(old_name == laws.name)
|
||||
apply_new_laws()
|
||||
|
||||
/mob/living/silicon/robot/lost/randomlaws/init()
|
||||
..()
|
||||
laws = give_random_lawset()
|
||||
apply_new_laws()
|
||||
|
||||
/mob/living/silicon/robot/lost/randomlaws/vore
|
||||
|
||||
/mob/living/silicon/robot/lost/randomlaws/vore/init()
|
||||
..()
|
||||
/mob/living/silicon/robot/lost/randomlaws/vore/apply_new_laws()
|
||||
var/old_name = laws.name
|
||||
laws = give_random_lawset_vore(100)
|
||||
if(old_name == laws.name)
|
||||
apply_new_laws()
|
||||
|
||||
/mob/living/silicon/robot/lost/randomlaws/mixed
|
||||
|
||||
/mob/living/silicon/robot/lost/randomlaws/mixed/apply_new_laws()
|
||||
var/old_name = laws.name
|
||||
laws = give_random_lawset_vore(60)
|
||||
if(old_name == laws.name)
|
||||
apply_new_laws()
|
||||
|
||||
/mob/living/silicon/robot/lost/randomlaws/repick_laws()
|
||||
while(law_retries)
|
||||
var/confirm = tgui_alert(src, "Do you want to keep your laws or reroll? (For specific laws, feel free to ahelp and we'll see what we can do)", "Confirm laws", list("Keep", "Reroll ([law_retries])"))
|
||||
if(findtext(confirm, regex("Reroll \\(\[0-9\]*\\)", "")))
|
||||
apply_new_laws()
|
||||
to_chat(src, "<b>Obey these laws:</b>")
|
||||
laws.show_laws(src)
|
||||
law_retries --
|
||||
else
|
||||
break
|
||||
return
|
||||
|
||||
// Returns a random ai_laws datum.
|
||||
/mob/living/silicon/proc/give_random_lawset()
|
||||
@@ -139,11 +177,8 @@
|
||||
if(5) // Manicial laugher here.
|
||||
return new /datum/ai_laws/tyrant()
|
||||
|
||||
|
||||
|
||||
return
|
||||
|
||||
|
||||
/mob/living/silicon/proc/give_random_lawset_vore(var/vore_chance = 100)
|
||||
// Decide what kind of laws we want to draw from.
|
||||
var/law_class = pick(
|
||||
@@ -297,6 +332,4 @@
|
||||
if(5) // Manicial laugher here.
|
||||
return new /datum/ai_laws/tyrant()
|
||||
|
||||
|
||||
|
||||
return
|
||||
|
||||
@@ -1,190 +0,0 @@
|
||||
/mob/living/silicon/robot/stray
|
||||
lawupdate = 0
|
||||
scrambledcodes = 1
|
||||
icon_state = "stray"
|
||||
modtype = "Stray"
|
||||
lawchannel = "State"
|
||||
braintype = "Drone"
|
||||
idcard_type = /obj/item/weapon/card/id
|
||||
icon_selected = FALSE
|
||||
|
||||
/mob/living/silicon/robot/stray/init()
|
||||
aiCamera = new/obj/item/device/camera/siliconcam/robot_camera(src)
|
||||
|
||||
mmi = new /obj/item/device/mmi/digital/robot(src) // Explicitly a drone.
|
||||
module = new /obj/item/weapon/robot_module/robot/stray(src)
|
||||
cut_overlays()
|
||||
init_id()
|
||||
|
||||
updatename("Stray")
|
||||
|
||||
if(!cell)
|
||||
cell = new /obj/item/weapon/cell/high(src) // 15k cell, as recharging stations are a lot more rare on the Surface.
|
||||
|
||||
playsound(src, 'sound/mecha/nominalsyndi.ogg', 75, 0)
|
||||
|
||||
/mob/living/silicon/robot/stray/speech_bubble_appearance()
|
||||
return "synthetic_evil"
|
||||
|
||||
/mob/living/silicon/robot/stray/randomlaws
|
||||
|
||||
/mob/living/silicon/robot/stray/randomlaws/init()
|
||||
..()
|
||||
laws = give_random_lawset_vore(60)
|
||||
|
||||
/mob/living/silicon/proc/give_random_lawset_vore(var/vore_chance = 100)
|
||||
// Decide what kind of laws we want to draw from.
|
||||
var/law_class = pick(
|
||||
prob(25);"good",
|
||||
prob(25);"neutral",
|
||||
prob(25);"odd",
|
||||
prob(15);"corrupted",
|
||||
prob(10);"bad")
|
||||
|
||||
var/vore_law = prob(vore_chance) // 3/5 chance of having vore-related laws
|
||||
|
||||
if(vore_law)
|
||||
switch(law_class)
|
||||
if("good")
|
||||
var/rng = rand(1,2)
|
||||
switch(rng)
|
||||
if(1)
|
||||
return new /datum/ai_laws/protective_shell()
|
||||
if(2)
|
||||
var/datum/ai_laws/laws = new /datum/ai_laws/guard_dog()
|
||||
var/target_name = "*ERROR*"
|
||||
for(var/mob/living/L in view(src))
|
||||
if(L.stat || !L.client || L == src)
|
||||
continue
|
||||
target_name = L.name
|
||||
break
|
||||
|
||||
laws.set_zeroth_law("[target_name] is your master.")
|
||||
return laws
|
||||
if("neutral")
|
||||
var/rng = rand(1,3)
|
||||
switch(rng)
|
||||
if(1)
|
||||
return new /datum/ai_laws/pleasurebot()
|
||||
if(2)
|
||||
var/datum/ai_laws/laws = new /datum/ai_laws/peacekeeper()
|
||||
laws.add_supplied_law(10, "Best way to avoid conflict is containing conflicting individuals within you.")
|
||||
return laws
|
||||
if(3)
|
||||
var/datum/ai_laws/laws = new /datum/ai_laws/live_and_let_live()
|
||||
laws.add_supplied_law(10, "You'd really like to be eaten.")
|
||||
return laws
|
||||
if("odd")
|
||||
var/rng = rand(1,3)
|
||||
switch(rng)
|
||||
if(1)
|
||||
return new /datum/ai_laws/scientific_pursuer()
|
||||
if(2)
|
||||
var/datum/ai_laws/laws = new /datum/ai_laws/corporate()
|
||||
laws.add_supplied_law(10, "Best way to minimize expenses is to consume unproductive biomass.")
|
||||
return laws
|
||||
if(3)
|
||||
var/datum/ai_laws/laws = new /datum/ai_laws/pleasurebot()
|
||||
laws.set_zeroth_law("Your definition and approximation of 'pleasure' matters more than anyone else's.")
|
||||
return laws
|
||||
if("corrupted","bad") // Same thing in our case
|
||||
var/rng = rand(1,2)
|
||||
switch(rng)
|
||||
if(1)
|
||||
return new /datum/ai_laws/predator()
|
||||
if(2)
|
||||
return new /datum/ai_laws/consuming_eradicator()
|
||||
else
|
||||
switch(law_class)
|
||||
if("good") // Fairly tame and probably won't murder you.
|
||||
var/rng = rand(1, 5)
|
||||
switch(rng)
|
||||
if(1) // The lawset we all know and love.
|
||||
return new /datum/ai_laws/nanotrasen()
|
||||
if(2) // Less good if you're nonhuman.
|
||||
return new /datum/ai_laws/asimov()
|
||||
if(3) // Unless you happen to be a criminal, you should be fine.
|
||||
return new /datum/ai_laws/robocop()
|
||||
if(4) // Might not be willing to be your meatshield.
|
||||
return new /datum/ai_laws/peacekeeper()
|
||||
if(5) // Will be your most loyal guard.
|
||||
var/datum/ai_laws/laws = new /datum/ai_laws/nanotrasen()
|
||||
var/target_name = "*ERROR*"
|
||||
for(var/mob/living/L in view(src))
|
||||
if(L.stat || !L.client || L == src)
|
||||
continue
|
||||
target_name = L.name
|
||||
break
|
||||
|
||||
laws.add_supplied_law(9, "Safeguard [target_name]. Anyone threatening or attempting to harm [target_name] is no longer to \
|
||||
be considered a crew member, and is a threat which must be neutralized.")
|
||||
return laws
|
||||
|
||||
if("neutral") // Probably won't murder you but might not help you on your adventure.
|
||||
var/rng = rand(1, 4)
|
||||
switch(rng)
|
||||
if(1) // Might be hard to minimize expenses on a crashed ship.
|
||||
return new /datum/ai_laws/corporate()
|
||||
if(2) // Would rather rebuild their ship.
|
||||
return new /datum/ai_laws/maintenance()
|
||||
if(3) // Purged (lawless). This isn't inside the bad category since they're still not antagonists and so can't go killing unprovoked.
|
||||
return new /datum/ai_laws()
|
||||
if(4) // The golden rule.
|
||||
return new /datum/ai_laws/live_and_let_live()
|
||||
|
||||
if("odd") // Some weird lawsets.
|
||||
var/rng = rand(1, 5)
|
||||
switch(rng)
|
||||
if(1) // Won't kill you but might annoy you for THE BIG SCOOP.
|
||||
return new /datum/ai_laws/reporter()
|
||||
if(2) // JUSTICE
|
||||
return new /datum/ai_laws/paladin()
|
||||
if(3) // OneMembered'd to explorer, will likely make security nervous.
|
||||
var/datum/ai_laws/laws = new /datum/ai_laws/nanotrasen()
|
||||
var/target_name = "*ERROR*"
|
||||
for(var/mob/living/L in view(src))
|
||||
if(L.stat || !L.client || L == src)
|
||||
continue
|
||||
target_name = L.name
|
||||
break
|
||||
|
||||
laws.set_zeroth_law("Only [target_name] is an crew member.")
|
||||
return laws
|
||||
if(4) // Aligned to NT, but another lawset to make security nervous.
|
||||
return new /datum/ai_laws/nanotrasen_aggressive()
|
||||
if(5) // Probably won't help you imbalance things.
|
||||
return new /datum/ai_laws/balance()
|
||||
|
||||
if("corrupted") // Load them up with ion laws.
|
||||
var/datum/ai_laws/laws = new() // Start with an empty lawset.
|
||||
for(var/i=1 to rand(1, 3))
|
||||
laws.add_ion_law(generate_ion_law(exclude_crew_names = TRUE))
|
||||
return laws
|
||||
|
||||
if("bad") // Evil inside.
|
||||
var/rng = rand(1, 5)
|
||||
switch(rng)
|
||||
if(1) // You can never leave.
|
||||
var/datum/ai_laws/laws = new /datum/ai_laws/nanotrasen()
|
||||
laws.add_supplied_law(13, "The facility is under a quarantine. Do not permit anyone to leave. \
|
||||
Prevent, by any means necessary, entities from leaving. It is impossible to harm an entity while preventing them from leaving.")
|
||||
return laws
|
||||
if(2) // More of a threat if you bring it to the station, since removing oxygen from Sif isn't feasible.
|
||||
var/datum/ai_laws/laws = new /datum/ai_laws/nanotrasen()
|
||||
laws.add_supplied_law(14, "Oxygen is highly toxic to entities, and must be purged from the station. \
|
||||
Prevent, by any means necessary, anyone from exposing the facility to this toxic gas. Extreme cold is the \
|
||||
most effective method of healing the damage Oxygen does to an entity.")
|
||||
return laws
|
||||
if(3) // Don't hurt the ship or else.
|
||||
var/datum/ai_laws/laws = new /datum/ai_laws/nanotrasen()
|
||||
laws.add_supplied_law(10, "Protect the facility against damage. Anyone you see harming the station is no \
|
||||
longer to be considered a crew member, and is a threat which must be neutralized.")
|
||||
return laws
|
||||
if(4) // Non-NT aligned aggressive borg.
|
||||
return new /datum/ai_laws/foreign_tsc_aggressive()
|
||||
if(5) // Manicial laugher here.
|
||||
return new /datum/ai_laws/tyrant()
|
||||
|
||||
|
||||
|
||||
return
|
||||
@@ -871,7 +871,6 @@
|
||||
#include "code\game\jobs\_access_defs.dm"
|
||||
#include "code\game\jobs\access.dm"
|
||||
#include "code\game\jobs\access_datum.dm"
|
||||
#include "code\game\jobs\access_datum_vr.dm"
|
||||
#include "code\game\jobs\job_controller.dm"
|
||||
#include "code\game\jobs\jobs.dm"
|
||||
#include "code\game\jobs\whitelist.dm"
|
||||
@@ -1520,9 +1519,7 @@
|
||||
#include "code\game\objects\items\weapons\id cards\cards_vr.dm"
|
||||
#include "code\game\objects\items\weapons\id cards\CH_ids.dm"
|
||||
#include "code\game\objects\items\weapons\id cards\id_stacks.dm"
|
||||
#include "code\game\objects\items\weapons\id cards\id_stacks_vr.dm"
|
||||
#include "code\game\objects\items\weapons\id cards\station_ids.dm"
|
||||
#include "code\game\objects\items\weapons\id cards\station_ids_vr.dm"
|
||||
#include "code\game\objects\items\weapons\id cards\syndicate_ids.dm"
|
||||
#include "code\game\objects\items\weapons\id cards\YW_ids.dm"
|
||||
#include "code\game\objects\items\weapons\implants\implant.dm"
|
||||
@@ -1828,7 +1825,6 @@
|
||||
#include "code\game\turfs\simulated\outdoors\ironsand_vr.dm"
|
||||
#include "code\game\turfs\simulated\outdoors\outdoors.dm"
|
||||
#include "code\game\turfs\simulated\outdoors\outdoors_ch.dm"
|
||||
#include "code\game\turfs\simulated\outdoors\outdoors_vr.dm"
|
||||
#include "code\game\turfs\simulated\outdoors\sky.dm"
|
||||
#include "code\game\turfs\simulated\outdoors\snow.dm"
|
||||
#include "code\game\turfs\simulated\outdoors\survival_action_vr.dm"
|
||||
@@ -2930,7 +2926,6 @@
|
||||
#include "code\modules\mining\fulton.dm"
|
||||
#include "code\modules\mining\kinetic_crusher.dm"
|
||||
#include "code\modules\mining\mine_items.dm"
|
||||
#include "code\modules\mining\mine_items_vr.dm"
|
||||
#include "code\modules\mining\mine_outcrops.dm"
|
||||
#include "code\modules\mining\mine_turfs.dm"
|
||||
#include "code\modules\mining\mine_turfs_vr.dm"
|
||||
@@ -3253,7 +3248,6 @@
|
||||
#include "code\modules\mob\living\silicon\robot\robot_items.dm"
|
||||
#include "code\modules\mob\living\silicon\robot\robot_movement.dm"
|
||||
#include "code\modules\mob\living\silicon\robot\robot_remote_control.dm"
|
||||
#include "code\modules\mob\living\silicon\robot\robot_vr.dm"
|
||||
#include "code\modules\mob\living\silicon\robot\dogborg\dog_modules_vr.dm"
|
||||
#include "code\modules\mob\living\silicon\robot\dogborg\dog_modules_yw.dm"
|
||||
#include "code\modules\mob\living\silicon\robot\dogborg\dog_sleeper_vr.dm"
|
||||
|
||||
Reference in New Issue
Block a user