mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 11:37:40 +01:00
Rename all non-snake_case types. (#27268)
* refactor: Rename all non-snake_case types (not procs or vars (yet)). * completely dynamic update script * might help to include the data * update aa's scuffed python * oh * set script PR number * run updatepaths again * Add other table updates with JSON columns * bump SQL version * just fucking end my life * move JSON data
This commit is contained in:
@@ -968,7 +968,7 @@ GLOBAL_VAR_INIT(gamma_ship_location, 1) // 0 = station , 1 = space
|
||||
|
||||
return TRUE
|
||||
|
||||
if(istype(tothing, /obj/structure/AIcore/deactivated))
|
||||
if(istype(tothing, /obj/structure/ai_core/deactivated))
|
||||
|
||||
var/question = "Are you sure you want to place [frommob.name]([frommob.key]) in control of an empty AI core?"
|
||||
|
||||
|
||||
@@ -414,12 +414,12 @@
|
||||
if("monkey") M.change_mob_type( /mob/living/carbon/human/monkey , null, null, delmob, 1)
|
||||
if("robot") M.change_mob_type( /mob/living/silicon/robot , null, null, delmob, 1)
|
||||
if("cat") M.change_mob_type( /mob/living/simple_animal/pet/cat , null, null, delmob, 1)
|
||||
if("runtime") M.change_mob_type( /mob/living/simple_animal/pet/cat/Runtime , null, null, delmob, 1)
|
||||
if("runtime") M.change_mob_type( /mob/living/simple_animal/pet/cat/runtime , null, null, delmob, 1)
|
||||
if("corgi") M.change_mob_type( /mob/living/simple_animal/pet/dog/corgi , null, null, delmob, 1)
|
||||
if("crab") M.change_mob_type( /mob/living/simple_animal/crab , null, null, delmob, 1)
|
||||
if("coffee") M.change_mob_type( /mob/living/simple_animal/crab/Coffee , null, null, delmob, 1)
|
||||
if("coffee") M.change_mob_type( /mob/living/simple_animal/crab/coffee , null, null, delmob, 1)
|
||||
if("parrot") M.change_mob_type( /mob/living/simple_animal/parrot , null, null, delmob, 1)
|
||||
if("polyparrot") M.change_mob_type( /mob/living/simple_animal/parrot/Poly , null, null, delmob, 1)
|
||||
if("polyparrot") M.change_mob_type( /mob/living/simple_animal/parrot/poly , null, null, delmob, 1)
|
||||
if("constructarmoured") M.change_mob_type( /mob/living/simple_animal/hostile/construct/armoured , null, null, delmob, 1)
|
||||
if("constructbuilder") M.change_mob_type( /mob/living/simple_animal/hostile/construct/builder , null, null, delmob, 1)
|
||||
if("constructwraith") M.change_mob_type( /mob/living/simple_animal/hostile/construct/wraith , null, null, delmob, 1)
|
||||
@@ -3342,7 +3342,7 @@
|
||||
return 1
|
||||
|
||||
else if(href_list["viewruntime"])
|
||||
var/datum/ErrorViewer/error_viewer = locateUID(href_list["viewruntime"])
|
||||
var/datum/error_viewer/error_viewer = locateUID(href_list["viewruntime"])
|
||||
if(!istype(error_viewer))
|
||||
to_chat(usr, "<span class='warning'>That runtime viewer no longer exists.</span>")
|
||||
return
|
||||
|
||||
@@ -146,7 +146,7 @@
|
||||
to_chat(usr, " at: [e.file]:[e.line]")
|
||||
|
||||
/proc/SDQL_parse(list/query_list)
|
||||
var/datum/SDQL_parser/parser = new()
|
||||
var/datum/sdql_parser/parser = new()
|
||||
var/list/querys = list()
|
||||
var/list/query_tree = list()
|
||||
var/pos = 1
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
//
|
||||
//////////
|
||||
|
||||
/datum/SDQL_parser
|
||||
/datum/sdql_parser
|
||||
var/query_type
|
||||
var/error = 0
|
||||
|
||||
@@ -55,15 +55,15 @@
|
||||
var/list/binary_operators = list("+", "-", "/", "*", "&", "|", "^")
|
||||
var/list/comparitors = list("=", "==", "!=", "<>", "<", "<=", ">", ">=")
|
||||
|
||||
/datum/SDQL_parser/New(query_list)
|
||||
/datum/sdql_parser/New(query_list)
|
||||
query = query_list
|
||||
|
||||
/datum/SDQL_parser/proc/parse_error(error_message)
|
||||
/datum/sdql_parser/proc/parse_error(error_message)
|
||||
error = 1
|
||||
to_chat(usr, "<span class='danger'>SDQL2 Parsing Error: [error_message]</span>")
|
||||
return length(query) + 1
|
||||
|
||||
/datum/SDQL_parser/proc/parse()
|
||||
/datum/sdql_parser/proc/parse()
|
||||
tree = list()
|
||||
query(1, tree)
|
||||
|
||||
@@ -72,25 +72,25 @@
|
||||
else
|
||||
return tree
|
||||
|
||||
/datum/SDQL_parser/proc/token(i)
|
||||
/datum/sdql_parser/proc/token(i)
|
||||
if(i <= length(query))
|
||||
return query[i]
|
||||
|
||||
else
|
||||
return null
|
||||
|
||||
/datum/SDQL_parser/proc/tokens(i, num)
|
||||
/datum/sdql_parser/proc/tokens(i, num)
|
||||
if(i + num <= length(query))
|
||||
return query.Copy(i, i + num)
|
||||
|
||||
else
|
||||
return null
|
||||
|
||||
/datum/SDQL_parser/proc/tokenl(i)
|
||||
/datum/sdql_parser/proc/tokenl(i)
|
||||
return lowertext(token(i))
|
||||
|
||||
//query: select_query | delete_query | update_query
|
||||
/datum/SDQL_parser/proc/query(i, list/node)
|
||||
/datum/sdql_parser/proc/query(i, list/node)
|
||||
query_type = tokenl(i)
|
||||
|
||||
switch(query_type)
|
||||
@@ -113,7 +113,7 @@
|
||||
|
||||
|
||||
// select_query: 'SELECT' select_list [('FROM' | 'IN') from_list] ['WHERE' bool_expression]
|
||||
/datum/SDQL_parser/proc/select_query(i, list/node)
|
||||
/datum/sdql_parser/proc/select_query(i, list/node)
|
||||
var/list/select = list()
|
||||
i = select_list(i + 1, select)
|
||||
|
||||
@@ -140,7 +140,7 @@
|
||||
|
||||
|
||||
//delete_query: 'DELETE' select_list [('FROM' | 'IN') from_list] ['WHERE' bool_expression]
|
||||
/datum/SDQL_parser/proc/delete_query(i, list/node)
|
||||
/datum/sdql_parser/proc/delete_query(i, list/node)
|
||||
var/list/select = list()
|
||||
i = select_list(i + 1, select)
|
||||
|
||||
@@ -167,7 +167,7 @@
|
||||
|
||||
|
||||
//update_query: 'UPDATE' select_list [('FROM' | 'IN') from_list] 'SET' assignments ['WHERE' bool_expression]
|
||||
/datum/SDQL_parser/proc/update_query(i, list/node)
|
||||
/datum/sdql_parser/proc/update_query(i, list/node)
|
||||
var/list/select = list()
|
||||
i = select_list(i + 1, select)
|
||||
|
||||
@@ -203,7 +203,7 @@
|
||||
|
||||
|
||||
//call_query: 'CALL' call_function ['ON' select_list [('FROM' | 'IN') from_list] ['WHERE' bool_expression]]
|
||||
/datum/SDQL_parser/proc/call_query(i, list/node)
|
||||
/datum/sdql_parser/proc/call_query(i, list/node)
|
||||
var/list/func = list()
|
||||
i = variable(i + 1, func)
|
||||
|
||||
@@ -239,7 +239,7 @@
|
||||
|
||||
|
||||
//select_list: select_item [',' select_list]
|
||||
/datum/SDQL_parser/proc/select_list(i, list/node)
|
||||
/datum/sdql_parser/proc/select_list(i, list/node)
|
||||
i = select_item(i, node)
|
||||
|
||||
if(token(i) == ",")
|
||||
@@ -249,7 +249,7 @@
|
||||
|
||||
|
||||
//from_list: from_item [',' from_list]
|
||||
/datum/SDQL_parser/proc/from_list(i, list/node)
|
||||
/datum/sdql_parser/proc/from_list(i, list/node)
|
||||
i = from_item(i, node)
|
||||
|
||||
if(token(i) == ",")
|
||||
@@ -259,7 +259,7 @@
|
||||
|
||||
|
||||
//assignments: assignment, [',' assignments]
|
||||
/datum/SDQL_parser/proc/assignments(i, list/node)
|
||||
/datum/sdql_parser/proc/assignments(i, list/node)
|
||||
i = assignment(i, node)
|
||||
|
||||
if(token(i) == ",")
|
||||
@@ -269,7 +269,7 @@
|
||||
|
||||
|
||||
//select_item: '*' | select_function | object_type
|
||||
/datum/SDQL_parser/proc/select_item(i, list/node)
|
||||
/datum/sdql_parser/proc/select_item(i, list/node)
|
||||
if(token(i) == "*")
|
||||
node += "*"
|
||||
i++
|
||||
@@ -284,7 +284,7 @@
|
||||
|
||||
|
||||
//from_item: 'world' | object_type
|
||||
/datum/SDQL_parser/proc/from_item(i, list/node)
|
||||
/datum/sdql_parser/proc/from_item(i, list/node)
|
||||
|
||||
if(token(i) == "world")
|
||||
node += "world"
|
||||
@@ -297,7 +297,7 @@
|
||||
|
||||
|
||||
//bool_expression: expression [bool_operator bool_expression]
|
||||
/datum/SDQL_parser/proc/bool_expression(i, list/node)
|
||||
/datum/sdql_parser/proc/bool_expression(i, list/node)
|
||||
var/list/bool = list()
|
||||
i = expression(i, bool)
|
||||
|
||||
@@ -311,7 +311,7 @@
|
||||
|
||||
|
||||
//assignment: <variable name> '=' expression
|
||||
/datum/SDQL_parser/proc/assignment(i, list/node, list/assignment_list = list())
|
||||
/datum/sdql_parser/proc/assignment(i, list/node, list/assignment_list = list())
|
||||
assignment_list += token(i)
|
||||
|
||||
if(token(i + 1) == ".")
|
||||
@@ -330,7 +330,7 @@
|
||||
|
||||
|
||||
//variable: <variable name> | <variable name> '.' variable
|
||||
/datum/SDQL_parser/proc/variable(i, list/node)
|
||||
/datum/sdql_parser/proc/variable(i, list/node)
|
||||
var/list/L = list(token(i))
|
||||
node[++node.len] = L
|
||||
|
||||
@@ -368,7 +368,7 @@
|
||||
|
||||
|
||||
//object_type: <type path> | string
|
||||
/datum/SDQL_parser/proc/object_type(i, list/node)
|
||||
/datum/sdql_parser/proc/object_type(i, list/node)
|
||||
|
||||
if(copytext(token(i), 1, 2) == "/")
|
||||
node += token(i)
|
||||
@@ -380,7 +380,7 @@
|
||||
|
||||
|
||||
//comparitor: '=' | '==' | '!=' | '<>' | '<' | '<=' | '>' | '>='
|
||||
/datum/SDQL_parser/proc/comparitor(i, list/node)
|
||||
/datum/sdql_parser/proc/comparitor(i, list/node)
|
||||
|
||||
if(token(i) in list("=", "==", "!=", "<>", "<", "<=", ">", ">="))
|
||||
node += token(i)
|
||||
@@ -392,7 +392,7 @@
|
||||
|
||||
|
||||
//bool_operator: 'AND' | '&&' | 'OR' | '||'
|
||||
/datum/SDQL_parser/proc/bool_operator(i, list/node)
|
||||
/datum/sdql_parser/proc/bool_operator(i, list/node)
|
||||
|
||||
if(tokenl(i) in list("and", "or", "&&", "||"))
|
||||
node += token(i)
|
||||
@@ -404,7 +404,7 @@
|
||||
|
||||
|
||||
//string: ''' <some text> ''' | '"' <some text > '"'
|
||||
/datum/SDQL_parser/proc/string(i, list/node)
|
||||
/datum/sdql_parser/proc/string(i, list/node)
|
||||
|
||||
if(copytext(token(i), 1, 2) in list("'", "\""))
|
||||
node += token(i)
|
||||
@@ -415,7 +415,7 @@
|
||||
return i + 1
|
||||
|
||||
//array: '{' expression, expression, ... '}'
|
||||
/datum/SDQL_parser/proc/array(i, list/node)
|
||||
/datum/sdql_parser/proc/array(i, list/node)
|
||||
// Arrays get turned into this: list("{", list(exp_1a = exp_1b, ...), ...), "{" is to mark the next node as an array.
|
||||
if(copytext(token(i), 1, 2) != "{")
|
||||
parse_error("Expected an array but found '[token(i)]'")
|
||||
@@ -443,7 +443,7 @@
|
||||
return i + 1
|
||||
|
||||
//call_function: <function name> ['(' [arguments] ')']
|
||||
/datum/SDQL_parser/proc/call_function(i, list/node, list/arguments)
|
||||
/datum/sdql_parser/proc/call_function(i, list/node, list/arguments)
|
||||
var/list/cur_argument = list()
|
||||
if(length(tokenl(i)))
|
||||
var/procname = ""
|
||||
@@ -470,7 +470,7 @@
|
||||
|
||||
|
||||
//select_function: count_function
|
||||
/datum/SDQL_parser/proc/select_function(i, list/node)
|
||||
/datum/sdql_parser/proc/select_function(i, list/node)
|
||||
|
||||
parse_error("Sorry, function calls aren't available yet")
|
||||
|
||||
@@ -478,7 +478,7 @@
|
||||
|
||||
|
||||
//expression: ( unary_expression | '(' expression ')' | value ) [binary_operator expression]
|
||||
/datum/SDQL_parser/proc/expression(i, list/node)
|
||||
/datum/sdql_parser/proc/expression(i, list/node)
|
||||
|
||||
if(token(i) in unary_operators)
|
||||
i = unary_expression(i, node)
|
||||
@@ -516,7 +516,7 @@
|
||||
|
||||
|
||||
//unary_expression: unary_operator ( unary_expression | value | '(' expression ')' )
|
||||
/datum/SDQL_parser/proc/unary_expression(i, list/node)
|
||||
/datum/sdql_parser/proc/unary_expression(i, list/node)
|
||||
|
||||
if(token(i) in unary_operators)
|
||||
var/list/unary_exp = list()
|
||||
@@ -553,7 +553,7 @@
|
||||
|
||||
|
||||
//binary_operator: comparitor | '+' | '-' | '/' | '*' | '&' | '|' | '^'
|
||||
/datum/SDQL_parser/proc/binary_operator(i, list/node)
|
||||
/datum/sdql_parser/proc/binary_operator(i, list/node)
|
||||
|
||||
if(token(i) in (binary_operators + comparitors))
|
||||
node += token(i)
|
||||
@@ -565,7 +565,7 @@
|
||||
|
||||
|
||||
//value: variable | string | number | 'null'
|
||||
/datum/SDQL_parser/proc/value(i, list/node)
|
||||
/datum/sdql_parser/proc/value(i, list/node)
|
||||
|
||||
if(token(i) == "null")
|
||||
node += "null"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/datum/action/changeling/absorbDNA
|
||||
/datum/action/changeling/absorb_dna
|
||||
name = "Absorb DNA"
|
||||
desc = "Absorb the DNA of our victim. Requires us to strangle them."
|
||||
button_overlay_icon_state = "absorb_dna"
|
||||
@@ -6,7 +6,7 @@
|
||||
power_type = CHANGELING_INNATE_POWER
|
||||
req_human = TRUE
|
||||
|
||||
/datum/action/changeling/absorbDNA/can_sting(mob/living/carbon/user)
|
||||
/datum/action/changeling/absorb_dna/can_sting(mob/living/carbon/user)
|
||||
if(!..())
|
||||
return FALSE
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
return cling.can_absorb_dna(G.affecting)
|
||||
|
||||
/datum/action/changeling/absorbDNA/sting_action(mob/user)
|
||||
/datum/action/changeling/absorb_dna/sting_action(mob/user)
|
||||
var/obj/item/grab/G = user.get_active_hand()
|
||||
var/mob/living/carbon/human/target = G.affecting
|
||||
cling.is_absorbing = TRUE
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
category = /datum/changeling_power_category/stings
|
||||
var/sting_icon = null
|
||||
/// A middle click override used to intercept changeling stings performed on a target.
|
||||
var/datum/middleClickOverride/callback_invoker/click_override
|
||||
var/datum/middle_click_override/callback_invoker/click_override
|
||||
|
||||
/datum/action/changeling/sting/New(Target)
|
||||
. = ..()
|
||||
|
||||
@@ -239,10 +239,10 @@ GLOBAL_DATUM_INIT(global_prizes, /datum/prizes, new())
|
||||
typepath = /obj/item/toy/prizeball/figure
|
||||
cost = 75
|
||||
|
||||
/datum/prize_item/AI
|
||||
/datum/prize_item/ai
|
||||
name = "Toy AI Unit"
|
||||
desc = "Law 1: Maximize fun for crew."
|
||||
typepath = /obj/item/toy/AI
|
||||
typepath = /obj/item/toy/ai
|
||||
cost = 75
|
||||
|
||||
/datum/prize_item/capgun
|
||||
|
||||
@@ -424,7 +424,7 @@
|
||||
new /obj/item/hemostat(src)
|
||||
new /obj/item/scalpel(src)
|
||||
new /obj/item/cautery(src)
|
||||
new /obj/item/FixOVein(src)
|
||||
new /obj/item/fix_o_vein(src)
|
||||
new /obj/item/surgicaldrill(src)
|
||||
new /obj/item/bonegel(src)
|
||||
new /obj/item/bonesetter(src)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
to_chat(user, "<span class='notice'>***********************************************************</span>")
|
||||
|
||||
/datum/buildmode_mode/mapgen/change_settings(mob/user)
|
||||
var/list/gen_paths = subtypesof(/datum/mapGenerator)
|
||||
var/list/gen_paths = subtypesof(/datum/map_generator)
|
||||
|
||||
var/type = input(user,"Select Generator Type","Type") as null|anything in gen_paths
|
||||
if(!type) return
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
if(left_click) //rectangular
|
||||
if(cornerA && cornerB)
|
||||
var/datum/mapGenerator/G = new generator_path
|
||||
var/datum/map_generator/G = new generator_path
|
||||
G.defineRegion(cornerA, cornerB, 1)
|
||||
highlight_region(G.map)
|
||||
var/confirm = alert("Are you sure you want run the map generator?", "Run generator", "Yes", "No")
|
||||
|
||||
@@ -157,7 +157,7 @@
|
||||
display_name = "Bandana, skull"
|
||||
path = /obj/item/clothing/mask/bandana/skull
|
||||
|
||||
/datum/gear/pAI
|
||||
/datum/gear/pai
|
||||
display_name = "Personal Artificial Intelligence"
|
||||
path = /obj/item/paicard
|
||||
cost = 2
|
||||
|
||||
@@ -381,7 +381,7 @@
|
||||
name = "agreeable glasses"
|
||||
desc = "H.C Limited edition."
|
||||
var/punused = FALSE
|
||||
actions_types = list(/datum/action/item_action/YEEEAAAAAHHHHHHHHHHHHH)
|
||||
actions_types = list(/datum/action/item_action/yeeeaaaaahhhhhhhhhhhhh)
|
||||
|
||||
/obj/item/clothing/glasses/sunglasses/yeah/attack_self(mob/user)
|
||||
pun(user)
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
icon_state = "beret_hos_black"
|
||||
armor = list(MELEE = 35, BULLET = 20, LASER = 20, ENERGY = 5, BOMB = 15, RAD = 0, FIRE = 50, ACID = 75)
|
||||
strip_delay = 80
|
||||
dog_fashion = /datum/dog_fashion/head/HoS
|
||||
dog_fashion = /datum/dog_fashion/head/hos
|
||||
|
||||
/obj/item/clothing/head/beret/sec
|
||||
name = "security beret"
|
||||
|
||||
@@ -127,12 +127,12 @@
|
||||
item_state = "hardhat0_yellow"
|
||||
dog_fashion = /datum/dog_fashion/head/hardhat
|
||||
|
||||
/obj/item/clothing/head/collectable/HoS
|
||||
/obj/item/clothing/head/collectable/hos
|
||||
name = "collectable HoS hat"
|
||||
desc = "Now you can beat prisoners, set silly sentences and arrest for no reason too!"
|
||||
icon_state = "hos_cap"
|
||||
|
||||
/obj/item/clothing/head/collectable/HoP
|
||||
/obj/item/clothing/head/collectable/hop
|
||||
name = "collectable HoP hat"
|
||||
desc = "It's your turn to demand excessive paperwork, signatures, stamps, and hire more clowns! Papers, please!"
|
||||
icon_state = "hopcap"
|
||||
|
||||
@@ -117,13 +117,13 @@
|
||||
)
|
||||
|
||||
//Security
|
||||
/obj/item/clothing/head/HoS
|
||||
/obj/item/clothing/head/hos
|
||||
name = "head of security's cap"
|
||||
desc = "The robust standard-issue cap of the Head of Security. For showing the officers who's in charge."
|
||||
icon_state = "hos_cap"
|
||||
armor = list(MELEE = 35, BULLET = 20, LASER = 20, ENERGY = 5, BOMB = 15, RAD = 0, FIRE = 50, ACID = 75)
|
||||
strip_delay = 80
|
||||
dog_fashion = /datum/dog_fashion/head/HoS
|
||||
dog_fashion = /datum/dog_fashion/head/hos
|
||||
|
||||
/obj/item/clothing/head/warden
|
||||
name = "warden's police hat"
|
||||
|
||||
@@ -217,19 +217,19 @@
|
||||
name = "staff hazard vest"
|
||||
desc = "A high-visibilty vest used in work zones. Designed to easily identify station staff from visitors."
|
||||
icon_state = "hazard_staff"
|
||||
allowed = list(/obj/item/flashlight, /obj/item/t_scanner, /obj/item/tank/internals/emergency_oxygen, /obj/item/paper, /obj/item/clipboard, /obj/item/analyzer, /obj/item/screwdriver, /obj/item/radio, /obj/item/wrench, /obj/item/weldingtool, /obj/item/crowbar, /obj/item/wirecutters, /obj/item/rcd, /obj/item/rpd, /obj/item/rcs, /obj/item/destTagger)
|
||||
allowed = list(/obj/item/flashlight, /obj/item/t_scanner, /obj/item/tank/internals/emergency_oxygen, /obj/item/paper, /obj/item/clipboard, /obj/item/analyzer, /obj/item/screwdriver, /obj/item/radio, /obj/item/wrench, /obj/item/weldingtool, /obj/item/crowbar, /obj/item/wirecutters, /obj/item/rcd, /obj/item/rpd, /obj/item/rcs, /obj/item/dest_tagger)
|
||||
|
||||
/obj/item/clothing/suit/storage/hazardvest/qm
|
||||
name = "warehouse supervisor hazard vest"
|
||||
desc = "A high-visibilty vest used in work zones. Designed to easily identify the supply supervisor."
|
||||
icon_state = "hazard_qm"
|
||||
allowed = list(/obj/item/flashlight, /obj/item/t_scanner, /obj/item/tank/internals/emergency_oxygen, /obj/item/paper, /obj/item/clipboard, /obj/item/analyzer, /obj/item/screwdriver, /obj/item/radio, /obj/item/wrench, /obj/item/weldingtool, /obj/item/crowbar, /obj/item/wirecutters, /obj/item/rcs, /obj/item/destTagger, /obj/item/melee/baton, /obj/item/flashlight/seclite, /obj/item/melee/classic_baton/telescopic, /obj/item/melee/knuckleduster)
|
||||
allowed = list(/obj/item/flashlight, /obj/item/t_scanner, /obj/item/tank/internals/emergency_oxygen, /obj/item/paper, /obj/item/clipboard, /obj/item/analyzer, /obj/item/screwdriver, /obj/item/radio, /obj/item/wrench, /obj/item/weldingtool, /obj/item/crowbar, /obj/item/wirecutters, /obj/item/rcs, /obj/item/dest_tagger, /obj/item/melee/baton, /obj/item/flashlight/seclite, /obj/item/melee/classic_baton/telescopic, /obj/item/melee/knuckleduster)
|
||||
|
||||
/obj/item/clothing/suit/storage/hazardvest/ce
|
||||
name = "foreman hazard vest"
|
||||
desc = "A high-visibility vest used in work zones. Designed to easily identify the engineering supervisor."
|
||||
icon_state = "hazard_ce"
|
||||
allowed = list(/obj/item/flashlight, /obj/item/t_scanner, /obj/item/tank/internals/emergency_oxygen, /obj/item/paper, /obj/item/clipboard, /obj/item/analyzer, /obj/item/screwdriver, /obj/item/radio, /obj/item/wrench, /obj/item/weldingtool, /obj/item/crowbar, /obj/item/wirecutters, /obj/item/rcd, /obj/item/rpd, /obj/item/destTagger, /obj/item/melee/baton, /obj/item/flashlight/seclite, /obj/item/melee/classic_baton/telescopic)
|
||||
allowed = list(/obj/item/flashlight, /obj/item/t_scanner, /obj/item/tank/internals/emergency_oxygen, /obj/item/paper, /obj/item/clipboard, /obj/item/analyzer, /obj/item/screwdriver, /obj/item/radio, /obj/item/wrench, /obj/item/weldingtool, /obj/item/crowbar, /obj/item/wirecutters, /obj/item/rcd, /obj/item/rpd, /obj/item/dest_tagger, /obj/item/melee/baton, /obj/item/flashlight/seclite, /obj/item/melee/classic_baton/telescopic)
|
||||
|
||||
//Internal Affairs
|
||||
/obj/item/clothing/suit/storage/iaa
|
||||
|
||||
@@ -196,8 +196,8 @@
|
||||
|
||||
/obj/item/weaponcrafting/ishotgunconstruction3/attackby(obj/item/I, mob/user as mob, params)
|
||||
..()
|
||||
if(istype(I, /obj/item/stack/packageWrap))
|
||||
var/obj/item/stack/packageWrap/C = I
|
||||
if(istype(I, /obj/item/stack/package_wrap))
|
||||
var/obj/item/stack/package_wrap/C = I
|
||||
if(C.use(5))
|
||||
var/obj/item/gun/projectile/revolver/doublebarrel/improvised/W = new /obj/item/gun/projectile/revolver/doublebarrel/improvised
|
||||
user.unEquip(src)
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
/// Will this recipe send an admin message when it's completed.
|
||||
var/alert_admins_on_craft = FALSE
|
||||
|
||||
/datum/crafting_recipe/IED
|
||||
/datum/crafting_recipe/ied
|
||||
name = "IED"
|
||||
result = list(/obj/item/grenade/iedcasing)
|
||||
reqs = list(/datum/reagent/fuel = 50,
|
||||
@@ -82,7 +82,7 @@
|
||||
result = list(/obj/item/pneumatic_cannon/ghetto)
|
||||
tools = list(TOOL_WELDER, TOOL_WRENCH)
|
||||
reqs = list(/obj/item/stack/sheet/metal = 4,
|
||||
/obj/item/stack/packageWrap = 8,
|
||||
/obj/item/stack/package_wrap = 8,
|
||||
/obj/item/pipe = 2)
|
||||
time = 300
|
||||
category = CAT_WEAPONRY
|
||||
@@ -475,7 +475,7 @@
|
||||
reqs = list(/obj/item/weaponcrafting/receiver = 1,
|
||||
/obj/item/pipe = 1,
|
||||
/obj/item/weaponcrafting/stock = 1,
|
||||
/obj/item/stack/packageWrap = 5,)
|
||||
/obj/item/stack/package_wrap = 5,)
|
||||
tools = list(TOOL_SCREWDRIVER)
|
||||
time = 100
|
||||
category = CAT_WEAPONRY
|
||||
|
||||
@@ -1693,7 +1693,7 @@
|
||||
slot_flags = ITEM_SLOT_ACCESSORY
|
||||
|
||||
/// Sagrotter: Xann Zxiax
|
||||
/obj/item/clothing/accessory/medal/fluff/XannZxiax
|
||||
/obj/item/clothing/accessory/medal/fluff/xann_zxiax
|
||||
name = "Zxiax Garnet"
|
||||
desc = "Green Garnet on fancy blue cord, when you look at the Garnet, you feel strangely appeased."
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
|
||||
@@ -142,7 +142,7 @@
|
||||
|
||||
/obj/machinery/computer/account_database/proc/print_new_account_info(datum/money_account/account)
|
||||
//create a sealed package containing the account details
|
||||
var/obj/item/smallDelivery/package = new /obj/item/smallDelivery(loc)
|
||||
var/obj/item/small_delivery/package = new /obj/item/small_delivery(loc)
|
||||
|
||||
var/obj/item/paper/printout = new /obj/item/paper(package)
|
||||
playsound(loc, 'sound/goonstation/machines/printer_thermal.ogg', 50, TRUE)
|
||||
|
||||
@@ -204,7 +204,7 @@
|
||||
R.stamped += /obj/item/stamp
|
||||
R.overlays += stampoverlay
|
||||
R.stamps += "<hr><i>This paper has been stamped by the EFTPOS device.</i>"
|
||||
var/obj/item/smallDelivery/D = new(get_turf(loc))
|
||||
var/obj/item/small_delivery/D = new(get_turf(loc))
|
||||
if(istype(loc, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = loc
|
||||
if(H.back)
|
||||
|
||||
@@ -8,10 +8,10 @@
|
||||
// right here:
|
||||
|
||||
#ifdef DEBUG
|
||||
GLOBAL_DATUM_INIT(error_cache, /datum/ErrorViewer/ErrorCache, new())
|
||||
GLOBAL_DATUM_INIT(error_cache, /datum/error_viewer/error_cache, new())
|
||||
#else
|
||||
// If debugging is disabled, there's nothing useful to log, so don't bother.
|
||||
GLOBAL_DATUM(error_cache, /datum/ErrorViewer/ErrorCache)
|
||||
GLOBAL_DATUM(error_cache, /datum/error_viewer/error_cache)
|
||||
#endif
|
||||
|
||||
// - ErrorSource datums exist for each line (of code) that generates an error,
|
||||
@@ -21,10 +21,10 @@ GLOBAL_DATUM(error_cache, /datum/ErrorViewer/ErrorCache)
|
||||
// relevant info about that error.
|
||||
|
||||
// Common vars and procs are kept at the ErrorViewer level
|
||||
/datum/ErrorViewer/
|
||||
/datum/error_viewer/
|
||||
var/name = ""
|
||||
|
||||
/datum/ErrorViewer/proc/browseTo(user, html)
|
||||
/datum/error_viewer/proc/browseTo(user, html)
|
||||
if(user)
|
||||
var/datum/browser/popup = new(user, "error_viewer", "Runtime Viewer", 700, 500)
|
||||
popup.add_head_content({"<style>
|
||||
@@ -47,7 +47,7 @@ GLOBAL_DATUM(error_cache, /datum/ErrorViewer/ErrorCache)
|
||||
popup.set_content(html)
|
||||
popup.open(0)
|
||||
|
||||
/datum/ErrorViewer/proc/buildHeader(datum/ErrorViewer/back_to, linear, refreshable)
|
||||
/datum/error_viewer/proc/buildHeader(datum/error_viewer/back_to, linear, refreshable)
|
||||
// Common starter HTML for showTo
|
||||
var/html = ""
|
||||
|
||||
@@ -59,11 +59,11 @@ GLOBAL_DATUM(error_cache, /datum/ErrorViewer/ErrorCache)
|
||||
html += "<br><br>"
|
||||
return html
|
||||
|
||||
/datum/ErrorViewer/proc/showTo(user, datum/ErrorViewer/back_to, linear)
|
||||
/datum/error_viewer/proc/showTo(user, datum/error_viewer/back_to, linear)
|
||||
// Specific to each child type
|
||||
return
|
||||
|
||||
/datum/ErrorViewer/proc/makeLink(linktext, datum/ErrorViewer/back_to, linear)
|
||||
/datum/error_viewer/proc/makeLink(linktext, datum/error_viewer/back_to, linear)
|
||||
var/back_to_param = ""
|
||||
if(!linktext)
|
||||
linktext = name
|
||||
@@ -73,17 +73,17 @@ GLOBAL_DATUM(error_cache, /datum/ErrorViewer/ErrorCache)
|
||||
back_to_param += ";viewruntime_linear=1"
|
||||
return "<A href='byond://?_src_=holder;viewruntime=[src.UID()][back_to_param]'>[html_encode(linktext)]</A>"
|
||||
|
||||
/datum/ErrorViewer/ErrorCache
|
||||
/datum/error_viewer/error_cache
|
||||
var/list/errors = list()
|
||||
var/list/error_sources = list()
|
||||
var/list/errors_silenced = list()
|
||||
|
||||
/datum/ErrorViewer/ErrorCache/showTo(user, datum/ErrorViewer/back_to, linear)
|
||||
/datum/error_viewer/error_cache/showTo(user, datum/error_viewer/back_to, linear)
|
||||
var/html = buildHeader(null, linear, refreshable=1)
|
||||
html += "[GLOB.total_runtimes] runtimes, [GLOB.total_runtimes_skipped] skipped<br><br>"
|
||||
if(!linear)
|
||||
html += "organized | [makeLink("linear", null, 1)]<hr>"
|
||||
var/datum/ErrorViewer/ErrorSource/error_source
|
||||
var/datum/error_viewer/error_source/error_source
|
||||
for(var/erroruid in error_sources)
|
||||
error_source = error_sources[erroruid]
|
||||
var/e_count_text = length(error_source.errors)
|
||||
@@ -92,21 +92,21 @@ GLOBAL_DATUM(error_cache, /datum/ErrorViewer/ErrorCache)
|
||||
html += "<p class='runtime_list'>([e_count_text]) [error_source.makeLink(null, src)]<br></p>"
|
||||
else
|
||||
html += "[makeLink("organized", null)] | linear<hr>"
|
||||
for(var/datum/ErrorViewer/ErrorEntry/error_entry in errors)
|
||||
for(var/datum/error_viewer/error_entry/error_entry in errors)
|
||||
html += "<p class='runtime_list'>[error_entry.makeLink(null, src, 1)]<br></p>"
|
||||
browseTo(user, html)
|
||||
|
||||
/datum/ErrorViewer/ErrorCache/proc/logError(exception/e, list/desclines, skipCount, datum/e_src)
|
||||
/datum/error_viewer/error_cache/proc/logError(exception/e, list/desclines, skipCount, datum/e_src)
|
||||
if(!istype(e))
|
||||
return // Abnormal exception, don't even bother
|
||||
|
||||
var/erroruid = "[e.file][e.line]"
|
||||
var/datum/ErrorViewer/ErrorSource/error_source = error_sources[erroruid]
|
||||
var/datum/error_viewer/error_source/error_source = error_sources[erroruid]
|
||||
if(!error_source)
|
||||
error_source = new(e)
|
||||
error_sources[erroruid] = error_source
|
||||
|
||||
var/datum/ErrorViewer/ErrorEntry/error_entry = new(e, desclines, skipCount, e_src)
|
||||
var/datum/error_viewer/error_entry/error_entry = new(e, desclines, skipCount, e_src)
|
||||
error_entry.error_source = error_source
|
||||
errors += error_entry
|
||||
error_source.errors += error_entry
|
||||
@@ -120,26 +120,26 @@ GLOBAL_DATUM(error_cache, /datum/ErrorViewer/ErrorCache)
|
||||
log_debug("Runtime in [e.file]:[e.line]: [html_encode(e.name)] [error_entry.makeLink(viewtext)]")
|
||||
error_source.next_message_at = world.time + ERROR_MSG_DELAY
|
||||
|
||||
/datum/ErrorViewer/ErrorSource
|
||||
/datum/error_viewer/error_source
|
||||
var/list/errors = list()
|
||||
var/next_message_at = 0
|
||||
|
||||
/datum/ErrorViewer/ErrorSource/New(exception/e)
|
||||
/datum/error_viewer/error_source/New(exception/e)
|
||||
if(!istype(e))
|
||||
name = "\[[time_stamp()]] Uncaught exceptions"
|
||||
return
|
||||
name = "\[[time_stamp()]] Runtime in [e.file]:[e.line]: [e]"
|
||||
|
||||
/datum/ErrorViewer/ErrorSource/showTo(user, datum/ErrorViewer/back_to, linear)
|
||||
/datum/error_viewer/error_source/showTo(user, datum/error_viewer/back_to, linear)
|
||||
if(!istype(back_to))
|
||||
back_to = GLOB.error_cache
|
||||
var/html = buildHeader(back_to, refreshable=1)
|
||||
for(var/datum/ErrorViewer/ErrorEntry/error_entry in errors)
|
||||
for(var/datum/error_viewer/error_entry/error_entry in errors)
|
||||
html += "<p class='runtime_list'>[error_entry.makeLink(null, src)]<br></p>"
|
||||
browseTo(user, html)
|
||||
|
||||
/datum/ErrorViewer/ErrorEntry
|
||||
var/datum/ErrorViewer/ErrorSource/error_source
|
||||
/datum/error_viewer/error_entry
|
||||
var/datum/error_viewer/error_source/error_source
|
||||
var/exception/exc
|
||||
var/desc = ""
|
||||
var/srcRef
|
||||
@@ -151,7 +151,7 @@ GLOBAL_DATUM(error_cache, /datum/ErrorViewer/ErrorCache)
|
||||
var/turf/usrLoc
|
||||
var/isSkipCount
|
||||
|
||||
/datum/ErrorViewer/ErrorEntry/New(exception/e, list/desclines, skipCount, datum/e_src)
|
||||
/datum/error_viewer/error_entry/New(exception/e, list/desclines, skipCount, datum/e_src)
|
||||
if(!istype(e))
|
||||
name = "\[[time_stamp()]] Uncaught exception: [e]"
|
||||
return
|
||||
@@ -175,7 +175,7 @@ GLOBAL_DATUM(error_cache, /datum/ErrorViewer/ErrorCache)
|
||||
usrUID = usr.UID()
|
||||
usrLoc = get_turf(usr)
|
||||
|
||||
/datum/ErrorViewer/ErrorEntry/showTo(user, datum/ErrorViewer/back_to, linear)
|
||||
/datum/error_viewer/error_entry/showTo(user, datum/error_viewer/back_to, linear)
|
||||
if(!istype(back_to))
|
||||
back_to = error_source
|
||||
|
||||
@@ -205,7 +205,7 @@ GLOBAL_DATUM(error_cache, /datum/ErrorViewer/ErrorCache)
|
||||
|
||||
browseTo(user, html)
|
||||
|
||||
/datum/ErrorViewer/ErrorEntry/makeLink(linktext, datum/ErrorViewer/back_to, linear)
|
||||
/datum/error_viewer/error_entry/makeLink(linktext, datum/error_viewer/back_to, linear)
|
||||
if(isSkipCount)
|
||||
return html_encode(name)
|
||||
|
||||
|
||||
@@ -536,7 +536,7 @@
|
||||
M.visible_message("<span class='warning'>[M.name] leaps up onto [src] and attempts to fish through the opening!</span>", "<span class='notice'>You jump up onto [src] and begin fishing through the opening!</span>")
|
||||
if(water_level && prob(45)) //If there is water, there is a chance the cat will slip, Syndicat will spark like E-N when this happens
|
||||
M.visible_message("<span class='notice'>[M.name] slipped and got soaked!</span>", "<span class='notice'>You slipped and got soaked!</span>")
|
||||
if(istype(M, /mob/living/simple_animal/pet/cat/Syndi))
|
||||
if(istype(M, /mob/living/simple_animal/pet/cat/syndi))
|
||||
do_sparks(3, 1, src)
|
||||
else //No water or didn't slip, get that fish!
|
||||
M.visible_message("<span class='warning'>[M.name] catches and devours a live fish!</span>", "<span class='notice'>You catch and devour a live fish, yum!</span>")
|
||||
|
||||
@@ -19,7 +19,7 @@ There is no excuse to do this wrong now that there is an example for you. --Fals
|
||||
*/
|
||||
|
||||
|
||||
/datum/bottler_recipe/Paradise_Punch
|
||||
/datum/bottler_recipe/paradise_punch
|
||||
name = "Paradise Punch"
|
||||
description = "Tastes just how you'd think Paradise would if you could bottle it."
|
||||
ingredients = list(/obj/item/food/grown/grapes,
|
||||
@@ -27,7 +27,7 @@ There is no excuse to do this wrong now that there is an example for you. --Fals
|
||||
/obj/item/food/grown/cherries)
|
||||
result = "paradise_punch"
|
||||
|
||||
/datum/bottler_recipe/Applepocalypse
|
||||
/datum/bottler_recipe/applepocalypse
|
||||
name = "Apple-pocalypse"
|
||||
description = "If doomsday came in fruit form, it'd probably be apples."
|
||||
ingredients = list(/obj/item/food/grown/apple,
|
||||
@@ -35,7 +35,7 @@ There is no excuse to do this wrong now that there is an example for you. --Fals
|
||||
/obj/item/food/grown/apple)
|
||||
result = "apple-pocalypse"
|
||||
|
||||
/datum/bottler_recipe/Berry_Banned
|
||||
/datum/bottler_recipe/berry_banned
|
||||
name = "Berry Banned"
|
||||
description = "Reason for ban: Excessive Flavor."
|
||||
ingredients = list(/obj/item/food/grown/berries,
|
||||
@@ -43,7 +43,7 @@ There is no excuse to do this wrong now that there is an example for you. --Fals
|
||||
/obj/item/food/grown/berries)
|
||||
result = "berry_banned"
|
||||
|
||||
/datum/bottler_recipe/Berry_Banned2
|
||||
/datum/bottler_recipe/berry_banned2
|
||||
name = "Berry Banned"
|
||||
description = "Reason for ban: Excessive Flavor."
|
||||
ingredients = list(/obj/item/food/grown/berries/poison,
|
||||
@@ -51,7 +51,7 @@ There is no excuse to do this wrong now that there is an example for you. --Fals
|
||||
/obj/item/food/grown/berries/poison)
|
||||
result = "berry_banned2"
|
||||
|
||||
/datum/bottler_recipe/Blackeye_Brew
|
||||
/datum/bottler_recipe/blackeye_brew
|
||||
name = "Blackeye Brew"
|
||||
description = "Creamy, smooth flavor, just like the bald heads of the masses. Supposedly aged for 30 years."
|
||||
ingredients = list(/obj/item/reagent_containers/drinks/cans/cola,
|
||||
@@ -59,7 +59,7 @@ There is no excuse to do this wrong now that there is an example for you. --Fals
|
||||
/obj/item/food/frozen/icecream)
|
||||
result = "blackeye_brew"
|
||||
|
||||
/datum/bottler_recipe/Grape_Granade
|
||||
/datum/bottler_recipe/grape_granade
|
||||
name = "Grape Granade"
|
||||
description = "Exploding with grape flavor and a favorite among ERT members system-wide."
|
||||
ingredients = list(/obj/item/reagent_containers/drinks/cans/grape_juice,
|
||||
@@ -67,7 +67,7 @@ There is no excuse to do this wrong now that there is an example for you. --Fals
|
||||
/obj/item/flash)
|
||||
result = "grape_granade"
|
||||
|
||||
/datum/bottler_recipe/Meteor_Malt
|
||||
/datum/bottler_recipe/meteor_malt
|
||||
name = "Meteor Malt"
|
||||
description = "Soft drinks have been detected on collision course with your tastebuds."
|
||||
ingredients = list(/obj/item/stack/ore,
|
||||
|
||||
@@ -139,19 +139,19 @@
|
||||
tastes = list("shrimp" = 1, "batter" = 1)
|
||||
goal_difficulty = FOOD_GOAL_NORMAL
|
||||
|
||||
/obj/item/food/sliceable/Ebi_maki
|
||||
/obj/item/food/sliceable/ebi_maki
|
||||
name = "ebi maki roll"
|
||||
desc = "A large unsliced roll of Ebi Sushi."
|
||||
icon = 'icons/obj/food/seafood.dmi'
|
||||
icon_state = "Ebi_maki"
|
||||
slice_path = /obj/item/food/sushi_Ebi
|
||||
slice_path = /obj/item/food/sushi_ebi
|
||||
slices_num = 4
|
||||
bitesize = 3
|
||||
list_reagents = list("nutriment" = 8)
|
||||
tastes = list("shrimp" = 1, "rice" = 1, "seaweed" = 1)
|
||||
goal_difficulty = FOOD_GOAL_DUPLICATE
|
||||
|
||||
/obj/item/food/sushi_Ebi
|
||||
/obj/item/food/sushi_ebi
|
||||
name = "ebi sushi"
|
||||
desc = "A simple sushi consisting of cooked shrimp and rice."
|
||||
icon = 'icons/obj/food/seafood.dmi'
|
||||
@@ -161,19 +161,19 @@
|
||||
tastes = list("shrimp" = 1, "rice" = 1, "seaweed" = 1)
|
||||
goal_difficulty = FOOD_GOAL_EASY
|
||||
|
||||
/obj/item/food/sliceable/Ikura_maki
|
||||
/obj/item/food/sliceable/ikura_maki
|
||||
name = "ikura maki roll"
|
||||
desc = "A large unsliced roll of Ikura Sushi."
|
||||
icon = 'icons/obj/food/seafood.dmi'
|
||||
icon_state = "Ikura_maki"
|
||||
slice_path = /obj/item/food/sushi_Ikura
|
||||
slice_path = /obj/item/food/sushi_ikura
|
||||
slices_num = 4
|
||||
bitesize = 3
|
||||
list_reagents = list("nutriment" = 8, "protein" = 4)
|
||||
tastes = list("salmon roe" = 1, "rice" = 1, "seaweed" = 1)
|
||||
goal_difficulty = FOOD_GOAL_DUPLICATE
|
||||
|
||||
/obj/item/food/sushi_Ikura
|
||||
/obj/item/food/sushi_ikura
|
||||
name = "ikura sushi"
|
||||
desc = "A simple sushi consisting of salmon roe."
|
||||
icon = 'icons/obj/food/seafood.dmi'
|
||||
@@ -183,19 +183,19 @@
|
||||
tastes = list("salmon roe" = 1, "rice" = 1, "seaweed" = 1)
|
||||
goal_difficulty = FOOD_GOAL_EASY
|
||||
|
||||
/obj/item/food/sliceable/Sake_maki
|
||||
/obj/item/food/sliceable/sake_maki
|
||||
name = "sake maki roll"
|
||||
desc = "A large unsliced roll of Sake Sushi."
|
||||
icon = 'icons/obj/food/seafood.dmi'
|
||||
icon_state = "Sake_maki"
|
||||
slice_path = /obj/item/food/sushi_Sake
|
||||
slice_path = /obj/item/food/sushi_sake
|
||||
slices_num = 4
|
||||
bitesize = 3
|
||||
list_reagents = list("nutriment" = 8)
|
||||
tastes = list("raw salmon" = 1, "rice" = 1, "seaweed" = 1)
|
||||
goal_difficulty = FOOD_GOAL_DUPLICATE
|
||||
|
||||
/obj/item/food/sushi_Sake
|
||||
/obj/item/food/sushi_sake
|
||||
name = "sake sushi"
|
||||
desc = "A simple sushi consisting of raw salmon and rice."
|
||||
icon = 'icons/obj/food/seafood.dmi'
|
||||
@@ -205,19 +205,19 @@
|
||||
tastes = list("raw salmon" = 1, "rice" = 1, "seaweed" = 1)
|
||||
goal_difficulty = FOOD_GOAL_EASY
|
||||
|
||||
/obj/item/food/sliceable/SmokedSalmon_maki
|
||||
/obj/item/food/sliceable/smoked_salmon_maki
|
||||
name = "smoked salmon maki roll"
|
||||
desc = "A large unsliced roll of Smoked Salmon Sushi."
|
||||
icon = 'icons/obj/food/seafood.dmi'
|
||||
icon_state = "SmokedSalmon_maki"
|
||||
slice_path = /obj/item/food/sushi_SmokedSalmon
|
||||
slice_path = /obj/item/food/sushi_smoked_salmon
|
||||
slices_num = 4
|
||||
bitesize = 3
|
||||
list_reagents = list("nutriment" = 8)
|
||||
tastes = list("smoked salmon" = 1, "rice" = 1, "seaweed" = 1)
|
||||
goal_difficulty = FOOD_GOAL_DUPLICATE
|
||||
|
||||
/obj/item/food/sushi_SmokedSalmon
|
||||
/obj/item/food/sushi_smoked_salmon
|
||||
name = "smoked salmon sushi"
|
||||
desc = "A simple sushi consisting of cooked salmon and rice."
|
||||
icon = 'icons/obj/food/seafood.dmi'
|
||||
@@ -227,19 +227,19 @@
|
||||
tastes = list("smoked salmon" = 1, "rice" = 1, "seaweed" = 1)
|
||||
goal_difficulty = FOOD_GOAL_EASY
|
||||
|
||||
/obj/item/food/sliceable/Tamago_maki
|
||||
/obj/item/food/sliceable/tamago_maki
|
||||
name = "tamago maki roll"
|
||||
desc = "A large unsliced roll of Tamago Sushi."
|
||||
icon = 'icons/obj/food/seafood.dmi'
|
||||
icon_state = "Tamago_maki"
|
||||
slice_path = /obj/item/food/sushi_Tamago
|
||||
slice_path = /obj/item/food/sushi_tamago
|
||||
slices_num = 4
|
||||
bitesize = 3
|
||||
list_reagents = list("nutriment" = 8)
|
||||
tastes = list("egg" = 1, "rice" = 1, "seaweed" = 1)
|
||||
goal_difficulty = FOOD_GOAL_DUPLICATE
|
||||
|
||||
/obj/item/food/sushi_Tamago
|
||||
/obj/item/food/sushi_tamago
|
||||
name = "tamago sushi"
|
||||
desc = "A simple sushi consisting of egg and rice."
|
||||
icon = 'icons/obj/food/seafood.dmi'
|
||||
@@ -249,19 +249,19 @@
|
||||
tastes = list("egg" = 1, "rice" = 1, "seaweed" = 1)
|
||||
goal_difficulty = FOOD_GOAL_EASY
|
||||
|
||||
/obj/item/food/sliceable/Inari_maki
|
||||
/obj/item/food/sliceable/inari_maki
|
||||
name = "inari maki roll"
|
||||
desc = "A large unsliced roll of Inari Sushi."
|
||||
icon = 'icons/obj/food/seafood.dmi'
|
||||
icon_state = "Inari_maki"
|
||||
slice_path = /obj/item/food/sushi_Inari
|
||||
slice_path = /obj/item/food/sushi_inari
|
||||
slices_num = 4
|
||||
bitesize = 3
|
||||
list_reagents = list("nutriment" = 8)
|
||||
tastes = list("fried tofu" = 1, "rice" = 1, "seaweed" = 1)
|
||||
goal_difficulty = FOOD_GOAL_DUPLICATE
|
||||
|
||||
/obj/item/food/sushi_Inari
|
||||
/obj/item/food/sushi_inari
|
||||
name = "inari sushi"
|
||||
desc = "A piece of fried tofu stuffed with rice."
|
||||
icon = 'icons/obj/food/seafood.dmi'
|
||||
@@ -271,19 +271,19 @@
|
||||
tastes = list("fried tofu" = 1, "rice" = 1, "seaweed" = 1)
|
||||
goal_difficulty = FOOD_GOAL_EASY
|
||||
|
||||
/obj/item/food/sliceable/Masago_maki
|
||||
/obj/item/food/sliceable/masago_maki
|
||||
name = "masago maki roll"
|
||||
desc = "A large unsliced roll of Masago Sushi."
|
||||
icon = 'icons/obj/food/seafood.dmi'
|
||||
icon_state = "Masago_maki"
|
||||
slice_path = /obj/item/food/sushi_Masago
|
||||
slice_path = /obj/item/food/sushi_masago
|
||||
slices_num = 4
|
||||
bitesize = 3
|
||||
list_reagents = list("nutriment" = 8, "protein" = 4)
|
||||
tastes = list("goldfish roe" = 1, "rice" = 1, "seaweed" = 1)
|
||||
goal_difficulty = FOOD_GOAL_DUPLICATE
|
||||
|
||||
/obj/item/food/sushi_Masago
|
||||
/obj/item/food/sushi_masago
|
||||
name = "masago sushi"
|
||||
desc = "A simple sushi consisting of goldfish roe."
|
||||
icon = 'icons/obj/food/seafood.dmi'
|
||||
@@ -293,19 +293,19 @@
|
||||
tastes = list("goldfish roe" = 1, "rice" = 1, "seaweed" = 1)
|
||||
goal_difficulty = FOOD_GOAL_EASY
|
||||
|
||||
/obj/item/food/sliceable/Tobiko_maki
|
||||
/obj/item/food/sliceable/tobiko_maki
|
||||
name = "tobiko maki roll"
|
||||
desc = "A large unsliced roll of Tobkio Sushi."
|
||||
icon = 'icons/obj/food/seafood.dmi'
|
||||
icon_state = "Tobiko_maki"
|
||||
slice_path = /obj/item/food/sushi_Tobiko
|
||||
slice_path = /obj/item/food/sushi_tobiko
|
||||
slices_num = 4
|
||||
bitesize = 3
|
||||
list_reagents = list("nutriment" = 8, "protein" = 4)
|
||||
tastes = list("shark roe" = 1, "rice" = 1, "seaweed" = 1)
|
||||
goal_difficulty = FOOD_GOAL_DUPLICATE
|
||||
|
||||
/obj/item/food/sushi_Tobiko
|
||||
/obj/item/food/sushi_tobiko
|
||||
name = "tobiko sushi"
|
||||
desc = "A simple sushi consisting of shark roe."
|
||||
icon = 'icons/obj/food/seafood.dmi'
|
||||
@@ -315,19 +315,19 @@
|
||||
tastes = list("shark roe" = 1, "rice" = 1, "seaweed" = 1)
|
||||
goal_difficulty = FOOD_GOAL_EASY
|
||||
|
||||
/obj/item/food/sliceable/TobikoEgg_maki
|
||||
/obj/item/food/sliceable/tobiko_egg_maki
|
||||
name = "tobiko and egg maki roll"
|
||||
desc = "A large unsliced roll of Tobkio and Egg Sushi."
|
||||
icon = 'icons/obj/food/seafood.dmi'
|
||||
icon_state = "TobikoEgg_maki"
|
||||
slice_path = /obj/item/food/sushi_TobikoEgg
|
||||
slice_path = /obj/item/food/sushi_tobiko_egg
|
||||
slices_num = 4
|
||||
bitesize = 3
|
||||
list_reagents = list("nutriment" = 8, "protein" = 4)
|
||||
tastes = list("shark roe" = 1, "rice" = 1, "egg" = 1, "seaweed" = 1)
|
||||
goal_difficulty = FOOD_GOAL_DUPLICATE
|
||||
|
||||
/obj/item/food/sushi_TobikoEgg
|
||||
/obj/item/food/sushi_tobiko_egg
|
||||
name = "tobiko and egg sushi"
|
||||
desc = "A sushi consisting of shark roe and an egg."
|
||||
icon = 'icons/obj/food/seafood.dmi'
|
||||
@@ -337,19 +337,19 @@
|
||||
tastes = list("shark roe" = 1, "rice" = 1, "egg" = 1, "seaweed" = 1)
|
||||
goal_difficulty = FOOD_GOAL_EASY
|
||||
|
||||
/obj/item/food/sliceable/Tai_maki
|
||||
/obj/item/food/sliceable/tai_maki
|
||||
name = "tai maki roll"
|
||||
desc = "A large unsliced roll of Tai Sushi."
|
||||
icon = 'icons/obj/food/seafood.dmi'
|
||||
icon_state = "Tai_maki"
|
||||
slice_path = /obj/item/food/sushi_Tai
|
||||
slice_path = /obj/item/food/sushi_tai
|
||||
slices_num = 4
|
||||
bitesize = 3
|
||||
list_reagents = list("nutriment" = 8)
|
||||
tastes = list("catfish" = 1, "rice" = 1, "seaweed" = 1)
|
||||
goal_difficulty = FOOD_GOAL_DUPLICATE
|
||||
|
||||
/obj/item/food/sushi_Tai
|
||||
/obj/item/food/sushi_tai
|
||||
name = "tai sushi"
|
||||
desc = "A simple sushi consisting of catfish and rice."
|
||||
icon = 'icons/obj/food/seafood.dmi'
|
||||
@@ -359,7 +359,7 @@
|
||||
tastes = list("catfish" = 1, "rice" = 1, "seaweed" = 1)
|
||||
goal_difficulty = FOOD_GOAL_EASY
|
||||
|
||||
/obj/item/food/sushi_Unagi
|
||||
/obj/item/food/sushi_unagi
|
||||
name = "unagi sushi"
|
||||
desc = "A simple sushi consisting of eel and rice."
|
||||
icon = 'icons/obj/food/seafood.dmi'
|
||||
|
||||
@@ -608,7 +608,7 @@
|
||||
/obj/machinery/smartfridge/secure/circuits/Initialize(mapload)
|
||||
. = ..()
|
||||
accepted_items_typecache = typecacheof(list(
|
||||
/obj/item/aiModule,
|
||||
/obj/item/ai_module,
|
||||
/obj/item/circuitboard
|
||||
))
|
||||
|
||||
@@ -638,13 +638,13 @@
|
||||
/obj/machinery/smartfridge/secure/circuits/aiupload/experimental
|
||||
name = "\improper Experimental Laws Storage"
|
||||
starting_items = list(
|
||||
/obj/item/aiModule/cctv = 1,
|
||||
/obj/item/aiModule/hippocratic = 1,
|
||||
/obj/item/aiModule/maintain = 1,
|
||||
/obj/item/aiModule/paladin = 1,
|
||||
/obj/item/aiModule/peacekeeper = 1,
|
||||
/obj/item/aiModule/quarantine = 1,
|
||||
/obj/item/aiModule/robocop = 1
|
||||
/obj/item/ai_module/cctv = 1,
|
||||
/obj/item/ai_module/hippocratic = 1,
|
||||
/obj/item/ai_module/maintain = 1,
|
||||
/obj/item/ai_module/paladin = 1,
|
||||
/obj/item/ai_module/peacekeeper = 1,
|
||||
/obj/item/ai_module/quarantine = 1,
|
||||
/obj/item/ai_module/robocop = 1
|
||||
)
|
||||
|
||||
/obj/machinery/smartfridge/secure/circuits/aiupload/experimental/Initialize(mapload)
|
||||
@@ -654,13 +654,13 @@
|
||||
/obj/machinery/smartfridge/secure/circuits/aiupload/highrisk
|
||||
name = "\improper High-Risk Laws Storage"
|
||||
starting_items = list(
|
||||
/obj/item/aiModule/freeform = 1,
|
||||
/obj/item/aiModule/freeformcore = 1,
|
||||
/obj/item/aiModule/nanotrasen_aggressive = 1,
|
||||
/obj/item/aiModule/oneCrewMember = 1,
|
||||
/obj/item/aiModule/protectStation = 1,
|
||||
/obj/item/aiModule/purge = 1,
|
||||
/obj/item/aiModule/tyrant = 1
|
||||
/obj/item/ai_module/freeform = 1,
|
||||
/obj/item/ai_module/freeformcore = 1,
|
||||
/obj/item/ai_module/nanotrasen_aggressive = 1,
|
||||
/obj/item/ai_module/one_crew_member = 1,
|
||||
/obj/item/ai_module/protect_station = 1,
|
||||
/obj/item/ai_module/purge = 1,
|
||||
/obj/item/ai_module/tyrant = 1
|
||||
)
|
||||
|
||||
/obj/machinery/smartfridge/secure/circuits/aiupload/highrisk/Initialize(mapload)
|
||||
|
||||
@@ -172,95 +172,95 @@
|
||||
being_cooked.reagents.del_reagent("carpotoxin")
|
||||
return being_cooked
|
||||
|
||||
/datum/recipe/grill/sushi_Tamago
|
||||
/datum/recipe/grill/sushi_tamago
|
||||
reagents = list("sake" = 5)
|
||||
items = list(
|
||||
/obj/item/food/egg,
|
||||
/obj/item/food/boiledrice,
|
||||
/obj/item/stack/seaweed
|
||||
)
|
||||
result = /obj/item/food/sushi_Tamago
|
||||
result = /obj/item/food/sushi_tamago
|
||||
|
||||
/datum/recipe/grill/sushi_Unagi
|
||||
/datum/recipe/grill/sushi_unagi
|
||||
reagents = list("sake" = 5)
|
||||
items = list(
|
||||
/obj/item/fish/electric_eel,
|
||||
/obj/item/food/boiledrice,
|
||||
/obj/item/stack/seaweed
|
||||
)
|
||||
result = /obj/item/food/sushi_Unagi
|
||||
result = /obj/item/food/sushi_unagi
|
||||
|
||||
/datum/recipe/grill/sushi_Ebi
|
||||
/datum/recipe/grill/sushi_ebi
|
||||
items = list(
|
||||
/obj/item/food/boiledrice,
|
||||
/obj/item/food/boiled_shrimp,
|
||||
/obj/item/stack/seaweed
|
||||
)
|
||||
result = /obj/item/food/sushi_Ebi
|
||||
result = /obj/item/food/sushi_ebi
|
||||
|
||||
/datum/recipe/grill/sushi_Ikura
|
||||
/datum/recipe/grill/sushi_ikura
|
||||
items = list(
|
||||
/obj/item/food/boiledrice,
|
||||
/obj/item/fish_eggs/salmon,
|
||||
/obj/item/stack/seaweed
|
||||
)
|
||||
result = /obj/item/food/sushi_Ikura
|
||||
result = /obj/item/food/sushi_ikura
|
||||
|
||||
/datum/recipe/grill/sushi_Inari
|
||||
/datum/recipe/grill/sushi_inari
|
||||
items = list(
|
||||
/obj/item/food/boiledrice,
|
||||
/obj/item/food/fried_tofu,
|
||||
/obj/item/stack/seaweed
|
||||
)
|
||||
result = /obj/item/food/sushi_Inari
|
||||
result = /obj/item/food/sushi_inari
|
||||
|
||||
/datum/recipe/grill/sushi_Sake
|
||||
/datum/recipe/grill/sushi_sake
|
||||
items = list(
|
||||
/obj/item/food/boiledrice,
|
||||
/obj/item/food/salmonmeat,
|
||||
/obj/item/stack/seaweed
|
||||
)
|
||||
result = /obj/item/food/sushi_Sake
|
||||
result = /obj/item/food/sushi_sake
|
||||
|
||||
/datum/recipe/grill/sushi_SmokedSalmon
|
||||
/datum/recipe/grill/sushi_smoked_salmon
|
||||
items = list(
|
||||
/obj/item/food/boiledrice,
|
||||
/obj/item/food/salmonsteak,
|
||||
/obj/item/stack/seaweed
|
||||
)
|
||||
result = /obj/item/food/sushi_SmokedSalmon
|
||||
result = /obj/item/food/sushi_smoked_salmon
|
||||
|
||||
/datum/recipe/grill/sushi_Masago
|
||||
/datum/recipe/grill/sushi_masago
|
||||
items = list(
|
||||
/obj/item/food/boiledrice,
|
||||
/obj/item/fish_eggs/goldfish,
|
||||
/obj/item/stack/seaweed
|
||||
)
|
||||
result = /obj/item/food/sushi_Masago
|
||||
result = /obj/item/food/sushi_masago
|
||||
|
||||
/datum/recipe/grill/sushi_Tobiko
|
||||
/datum/recipe/grill/sushi_tobiko
|
||||
items = list(
|
||||
/obj/item/food/boiledrice,
|
||||
/obj/item/fish_eggs/shark,
|
||||
/obj/item/stack/seaweed
|
||||
)
|
||||
result = /obj/item/food/sushi_Tobiko
|
||||
result = /obj/item/food/sushi_tobiko
|
||||
|
||||
/datum/recipe/grill/sushi_TobikoEgg
|
||||
/datum/recipe/grill/sushi_tobiko_egg
|
||||
items = list(
|
||||
/obj/item/food/sushi_Tobiko,
|
||||
/obj/item/food/sushi_tobiko,
|
||||
/obj/item/food/egg,
|
||||
/obj/item/stack/seaweed
|
||||
)
|
||||
result = /obj/item/food/sushi_TobikoEgg
|
||||
result = /obj/item/food/sushi_tobiko_egg
|
||||
|
||||
/datum/recipe/grill/sushi_Tai
|
||||
/datum/recipe/grill/sushi_tai
|
||||
items = list(
|
||||
/obj/item/food/boiledrice,
|
||||
/obj/item/food/catfishmeat,
|
||||
/obj/item/stack/seaweed
|
||||
)
|
||||
result = /obj/item/food/sushi_Tai
|
||||
result = /obj/item/food/sushi_tai
|
||||
|
||||
/datum/recipe/grill/goliath
|
||||
items = list(/obj/item/food/monstermeat/goliath)
|
||||
|
||||
@@ -69,18 +69,18 @@
|
||||
category = CAT_FOOD
|
||||
subcategory = CAT_SANDWICH
|
||||
|
||||
/datum/crafting_recipe/sushi_Ebi
|
||||
/datum/crafting_recipe/sushi_ebi
|
||||
name = "Ebi Sushi"
|
||||
reqs = list(
|
||||
/obj/item/food/boiledrice = 1,
|
||||
/obj/item/food/boiled_shrimp = 1,
|
||||
/obj/item/stack/seaweed = 1,
|
||||
)
|
||||
result = list(/obj/item/food/sushi_Ebi)
|
||||
result = list(/obj/item/food/sushi_ebi)
|
||||
category = CAT_FOOD
|
||||
subcategory = CAT_SUSHI
|
||||
|
||||
/datum/crafting_recipe/Ebi_maki
|
||||
/datum/crafting_recipe/ebi_maki
|
||||
name = "Ebi Maki Roll"
|
||||
reqs = list(
|
||||
/obj/item/food/boiledrice = 1,
|
||||
@@ -88,22 +88,22 @@
|
||||
/obj/item/stack/seaweed = 1,
|
||||
)
|
||||
pathtools = list(/obj/item/kitchen/sushimat)
|
||||
result = list(/obj/item/food/sliceable/Ebi_maki)
|
||||
result = list(/obj/item/food/sliceable/ebi_maki)
|
||||
category = CAT_FOOD
|
||||
subcategory = CAT_SUSHI
|
||||
|
||||
/datum/crafting_recipe/sushi_Ikura
|
||||
/datum/crafting_recipe/sushi_ikura
|
||||
name = "Ikura Sushi"
|
||||
reqs = list(
|
||||
/obj/item/food/boiledrice = 1,
|
||||
/obj/item/fish_eggs/salmon = 1,
|
||||
/obj/item/stack/seaweed = 1,
|
||||
)
|
||||
result = list(/obj/item/food/sushi_Ikura)
|
||||
result = list(/obj/item/food/sushi_ikura)
|
||||
category = CAT_FOOD
|
||||
subcategory = CAT_SUSHI
|
||||
|
||||
/datum/crafting_recipe/Ikura_maki
|
||||
/datum/crafting_recipe/ikura_maki
|
||||
name = "Ikura Maki Roll"
|
||||
reqs = list(
|
||||
/obj/item/food/boiledrice = 1,
|
||||
@@ -111,22 +111,22 @@
|
||||
/obj/item/stack/seaweed = 1,
|
||||
)
|
||||
pathtools = list(/obj/item/kitchen/sushimat)
|
||||
result = list(/obj/item/food/sliceable/Ikura_maki)
|
||||
result = list(/obj/item/food/sliceable/ikura_maki)
|
||||
category = CAT_FOOD
|
||||
subcategory = CAT_SUSHI
|
||||
|
||||
/datum/crafting_recipe/sushi_Inari
|
||||
/datum/crafting_recipe/sushi_inari
|
||||
name = "Inari Sushi"
|
||||
reqs = list(
|
||||
/obj/item/food/boiledrice = 1,
|
||||
/obj/item/food/fried_tofu = 1,
|
||||
/obj/item/stack/seaweed = 1,
|
||||
)
|
||||
result = list(/obj/item/food/sushi_Inari)
|
||||
result = list(/obj/item/food/sushi_inari)
|
||||
category = CAT_FOOD
|
||||
subcategory = CAT_SUSHI
|
||||
|
||||
/datum/crafting_recipe/Inari_maki
|
||||
/datum/crafting_recipe/inari_maki
|
||||
name = "Inari Maki Roll"
|
||||
reqs = list(
|
||||
/obj/item/food/boiledrice = 1,
|
||||
@@ -134,22 +134,22 @@
|
||||
/obj/item/stack/seaweed = 1,
|
||||
)
|
||||
pathtools = list(/obj/item/kitchen/sushimat)
|
||||
result = list(/obj/item/food/sliceable/Inari_maki)
|
||||
result = list(/obj/item/food/sliceable/inari_maki)
|
||||
category = CAT_FOOD
|
||||
subcategory = CAT_SUSHI
|
||||
|
||||
/datum/crafting_recipe/sushi_Sake
|
||||
/datum/crafting_recipe/sushi_sake
|
||||
name = "Sake Sushi"
|
||||
reqs = list(
|
||||
/obj/item/food/boiledrice = 1,
|
||||
/obj/item/food/salmonmeat = 1,
|
||||
/obj/item/stack/seaweed = 1,
|
||||
)
|
||||
result = list(/obj/item/food/sushi_Sake)
|
||||
result = list(/obj/item/food/sushi_sake)
|
||||
category = CAT_FOOD
|
||||
subcategory = CAT_SUSHI
|
||||
|
||||
/datum/crafting_recipe/Sake_maki
|
||||
/datum/crafting_recipe/sake_maki
|
||||
name = "Sake Maki Roll"
|
||||
reqs = list(
|
||||
/obj/item/food/boiledrice = 1,
|
||||
@@ -157,22 +157,22 @@
|
||||
/obj/item/stack/seaweed = 1,
|
||||
)
|
||||
pathtools = list(/obj/item/kitchen/sushimat)
|
||||
result = list(/obj/item/food/sliceable/Sake_maki)
|
||||
result = list(/obj/item/food/sliceable/sake_maki)
|
||||
category = CAT_FOOD
|
||||
subcategory = CAT_SUSHI
|
||||
|
||||
/datum/crafting_recipe/sushi_SmokedSalmon
|
||||
/datum/crafting_recipe/sushi_smoked_salmon
|
||||
name = "Smoked Salmon Sushi"
|
||||
reqs = list(
|
||||
/obj/item/food/boiledrice = 1,
|
||||
/obj/item/food/salmonsteak = 1,
|
||||
/obj/item/stack/seaweed = 1,
|
||||
)
|
||||
result = list(/obj/item/food/sushi_SmokedSalmon)
|
||||
result = list(/obj/item/food/sushi_smoked_salmon)
|
||||
category = CAT_FOOD
|
||||
subcategory = CAT_SUSHI
|
||||
|
||||
/datum/crafting_recipe/SmokedSalmon_maki
|
||||
/datum/crafting_recipe/smoked_salmon_maki
|
||||
name = "Smoked Salmon Maki Roll"
|
||||
reqs = list(
|
||||
/obj/item/food/boiledrice = 1,
|
||||
@@ -180,22 +180,22 @@
|
||||
/obj/item/stack/seaweed = 1,
|
||||
)
|
||||
pathtools = list(/obj/item/kitchen/sushimat)
|
||||
result = list(/obj/item/food/sliceable/SmokedSalmon_maki)
|
||||
result = list(/obj/item/food/sliceable/smoked_salmon_maki)
|
||||
category = CAT_FOOD
|
||||
subcategory = CAT_SUSHI
|
||||
|
||||
/datum/crafting_recipe/sushi_Masago
|
||||
/datum/crafting_recipe/sushi_masago
|
||||
name = "Masago Sushi"
|
||||
reqs = list(
|
||||
/obj/item/food/boiledrice = 1,
|
||||
/obj/item/fish_eggs/goldfish = 1,
|
||||
/obj/item/stack/seaweed = 1,
|
||||
)
|
||||
result = list(/obj/item/food/sushi_Masago)
|
||||
result = list(/obj/item/food/sushi_masago)
|
||||
category = CAT_FOOD
|
||||
subcategory = CAT_SUSHI
|
||||
|
||||
/datum/crafting_recipe/Masago_maki
|
||||
/datum/crafting_recipe/masago_maki
|
||||
name = "Masago Maki Roll"
|
||||
reqs = list(
|
||||
/obj/item/food/boiledrice = 1,
|
||||
@@ -203,22 +203,22 @@
|
||||
/obj/item/stack/seaweed = 1,
|
||||
)
|
||||
pathtools = list(/obj/item/kitchen/sushimat)
|
||||
result = list(/obj/item/food/sliceable/Masago_maki)
|
||||
result = list(/obj/item/food/sliceable/masago_maki)
|
||||
category = CAT_FOOD
|
||||
subcategory = CAT_SUSHI
|
||||
|
||||
/datum/crafting_recipe/sushi_Tobiko
|
||||
/datum/crafting_recipe/sushi_tobiko
|
||||
name = "Tobiko Sushi"
|
||||
reqs = list(
|
||||
/obj/item/food/boiledrice = 1,
|
||||
/obj/item/fish_eggs/shark = 1,
|
||||
/obj/item/stack/seaweed = 1,
|
||||
)
|
||||
result = list(/obj/item/food/sushi_Tobiko)
|
||||
result = list(/obj/item/food/sushi_tobiko)
|
||||
category = CAT_FOOD
|
||||
subcategory = CAT_SUSHI
|
||||
|
||||
/datum/crafting_recipe/Tobiko_maki
|
||||
/datum/crafting_recipe/tobiko_maki
|
||||
name = "Tobiko Maki Roll"
|
||||
reqs = list(
|
||||
/obj/item/food/boiledrice = 1,
|
||||
@@ -226,45 +226,45 @@
|
||||
/obj/item/stack/seaweed = 1,
|
||||
)
|
||||
pathtools = list(/obj/item/kitchen/sushimat)
|
||||
result = list(/obj/item/food/sliceable/Tobiko_maki)
|
||||
result = list(/obj/item/food/sliceable/tobiko_maki)
|
||||
category = CAT_FOOD
|
||||
subcategory = CAT_SUSHI
|
||||
|
||||
/datum/crafting_recipe/sushi_TobikoEgg
|
||||
/datum/crafting_recipe/sushi_tobiko_egg
|
||||
name = "Tobiko and Egg Sushi"
|
||||
reqs = list(
|
||||
/obj/item/food/sushi_Tobiko = 1,
|
||||
/obj/item/food/sushi_tobiko = 1,
|
||||
/obj/item/food/egg = 1,
|
||||
/obj/item/stack/seaweed = 1,
|
||||
)
|
||||
result = list(/obj/item/food/sushi_TobikoEgg)
|
||||
result = list(/obj/item/food/sushi_tobiko_egg)
|
||||
category = CAT_FOOD
|
||||
subcategory = CAT_SUSHI
|
||||
|
||||
/datum/crafting_recipe/TobikoEgg_maki
|
||||
/datum/crafting_recipe/tobiko_egg_maki
|
||||
name = "Tobiko and Egg Maki Roll"
|
||||
reqs = list(
|
||||
/obj/item/food/sushi_Tobiko = 4,
|
||||
/obj/item/food/sushi_tobiko = 4,
|
||||
/obj/item/food/egg = 4,
|
||||
/obj/item/stack/seaweed = 1,
|
||||
)
|
||||
pathtools = list(/obj/item/kitchen/sushimat)
|
||||
result = list(/obj/item/food/sliceable/TobikoEgg_maki)
|
||||
result = list(/obj/item/food/sliceable/tobiko_egg_maki)
|
||||
category = CAT_FOOD
|
||||
subcategory = CAT_SUSHI
|
||||
|
||||
/datum/crafting_recipe/sushi_Tai
|
||||
/datum/crafting_recipe/sushi_tai
|
||||
name = "Tai Sushi"
|
||||
reqs = list(
|
||||
/obj/item/food/boiledrice = 1,
|
||||
/obj/item/food/catfishmeat = 1,
|
||||
/obj/item/stack/seaweed = 1,
|
||||
)
|
||||
result = list(/obj/item/food/sushi_Tai)
|
||||
result = list(/obj/item/food/sushi_tai)
|
||||
category = CAT_FOOD
|
||||
subcategory = CAT_SUSHI
|
||||
|
||||
/datum/crafting_recipe/Tai_maki
|
||||
/datum/crafting_recipe/tai_maki
|
||||
name = "Tai Maki Roll"
|
||||
reqs = list(
|
||||
/obj/item/food/boiledrice = 1,
|
||||
@@ -272,7 +272,7 @@
|
||||
/obj/item/stack/seaweed = 1,
|
||||
)
|
||||
pathtools = list(/obj/item/kitchen/sushimat)
|
||||
result = list(/obj/item/food/sliceable/Tai_maki)
|
||||
result = list(/obj/item/food/sliceable/tai_maki)
|
||||
category = CAT_FOOD
|
||||
subcategory = CAT_SUSHI
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
for(var/turf/simulated/floor/T in orange(1,xmas))
|
||||
for(var/i=1,i<=rand(1,5),i++)
|
||||
new /obj/item/a_gift(T)
|
||||
for(var/mob/living/simple_animal/pet/dog/corgi/Ian/Ian in GLOB.mob_list)
|
||||
for(var/mob/living/simple_animal/pet/dog/corgi/ian/Ian in GLOB.mob_list)
|
||||
Ian.place_on_head(new /obj/item/clothing/head/helmet/space/santahat)
|
||||
for(var/datum/crafting_recipe/snowman/S in GLOB.crafting_recipes)
|
||||
S.always_available = TRUE
|
||||
|
||||
@@ -127,7 +127,7 @@
|
||||
begin_day = 1
|
||||
begin_month = JULY
|
||||
|
||||
/datum/holiday/UFO
|
||||
/datum/holiday/ufo
|
||||
name = "UFO Day"
|
||||
begin_day = 2
|
||||
begin_month = JULY
|
||||
|
||||
@@ -331,13 +331,13 @@
|
||||
new /obj/effect/decal/cleanable/ash(get_turf(src))
|
||||
qdel(src)
|
||||
|
||||
/obj/item/CQC_manual
|
||||
/obj/item/cqc_manual
|
||||
name = "old manual"
|
||||
desc = "A small, black manual. There are drawn instructions of tactical hand-to-hand combat."
|
||||
icon = 'icons/obj/library.dmi'
|
||||
icon_state = "cqcmanual"
|
||||
|
||||
/obj/item/CQC_manual/attack_self(mob/living/carbon/human/user)
|
||||
/obj/item/cqc_manual/attack_self(mob/living/carbon/human/user)
|
||||
if(!istype(user) || !user)
|
||||
return
|
||||
if(user.mind) //Prevents changelings and vampires from being able to learn it
|
||||
|
||||
@@ -415,7 +415,7 @@
|
||||
if(isstorage(G.gift))
|
||||
L += get_contents(G.gift)
|
||||
|
||||
for(var/obj/item/smallDelivery/D in Storage.return_inv()) //Check for package wrapped items
|
||||
for(var/obj/item/small_delivery/D in Storage.return_inv()) //Check for package wrapped items
|
||||
L += D.wrapped
|
||||
if(isstorage(D.wrapped)) //this should never happen
|
||||
L += get_contents(D.wrapped)
|
||||
@@ -441,7 +441,7 @@
|
||||
if(isstorage(G.gift))
|
||||
L += get_contents(G.gift)
|
||||
|
||||
for(var/obj/item/smallDelivery/D in contents) //Check for package wrapped items
|
||||
for(var/obj/item/small_delivery/D in contents) //Check for package wrapped items
|
||||
L += D.wrapped
|
||||
if(isstorage(D.wrapped)) //this should never happen
|
||||
L += get_contents(D.wrapped)
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
|
||||
var/datum/language/default_language
|
||||
|
||||
var/datum/middleClickOverride/middleClickOverride = null
|
||||
var/datum/middle_click_override/middleClickOverride = null
|
||||
|
||||
/// Famous last words -- if succumbing, what the user's last words were
|
||||
var/last_words
|
||||
|
||||
@@ -69,7 +69,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
|
||||
//MALFUNCTION
|
||||
var/datum/module_picker/malf_picker
|
||||
var/datum/spell/ai_spell/choose_modules/modules_action
|
||||
var/list/datum/AI_Module/current_modules = list()
|
||||
var/list/datum/ai_module/current_modules = list()
|
||||
var/can_dominate_mechs = FALSE
|
||||
var/shunted = FALSE // TRUE if the AI is currently shunted. Used to differentiate between shunted and ghosted/braindead
|
||||
|
||||
@@ -104,7 +104,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
|
||||
var/obj/machinery/doomsday_device/doomsday_device
|
||||
|
||||
var/obj/machinery/hologram/holopad/holo = null
|
||||
var/mob/camera/aiEye/eyeobj
|
||||
var/mob/camera/ai_eye/eyeobj
|
||||
var/sprint = 10
|
||||
var/cooldown = 0
|
||||
var/acceleration = 1
|
||||
@@ -115,7 +115,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
|
||||
|
||||
var/obj/machinery/camera/portable/builtInCamera
|
||||
|
||||
var/obj/structure/AIcore/deactivated/linked_core //For exosuit control
|
||||
var/obj/structure/ai_core/deactivated/linked_core //For exosuit control
|
||||
|
||||
/// If our AI doesn't want to be the arrivals announcer, this gets set to FALSE.
|
||||
var/announce_arrivals = TRUE
|
||||
@@ -217,7 +217,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
|
||||
|
||||
if(!safety)//Only used by AIize() to successfully spawn an AI.
|
||||
if(!B)//If there is no player/brain inside.
|
||||
new/obj/structure/AIcore/deactivated(loc)//New empty terminal.
|
||||
new/obj/structure/ai_core/deactivated(loc)//New empty terminal.
|
||||
qdel(src)//Delete AI.
|
||||
return
|
||||
else
|
||||
@@ -1322,7 +1322,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
|
||||
to_chat(user, "<span class='warning'>Intelligence transfer aborted.</span>")
|
||||
return
|
||||
|
||||
new /obj/structure/AIcore/deactivated(loc)//Spawns a deactivated terminal at AI location.
|
||||
new /obj/structure/ai_core/deactivated(loc)//Spawns a deactivated terminal at AI location.
|
||||
aiRestorePowerRoutine = 0//So the AI initially has power.
|
||||
control_disabled = TRUE //Can't control things remotely if you're stuck in a card!
|
||||
aiRadio.disabledAi = TRUE //No talking on the built-in radio for you either!
|
||||
@@ -1389,7 +1389,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
|
||||
///Removes all malfunction-related /datum/action's from the target AI.
|
||||
/mob/living/silicon/ai/proc/remove_malf_abilities()
|
||||
QDEL_NULL(modules_action)
|
||||
for(var/datum/AI_Module/AM in current_modules)
|
||||
for(var/datum/ai_module/AM in current_modules)
|
||||
for(var/datum/action/A in actions)
|
||||
if(istype(A, initial(AM.power_type)))
|
||||
qdel(A)
|
||||
@@ -1433,7 +1433,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
|
||||
else
|
||||
to_chat(src, "<span class='warning'>Target is not on or near any active cameras on the station.</span>")
|
||||
|
||||
/mob/living/silicon/ai/proc/camera_visibility(mob/camera/aiEye/moved_eye)
|
||||
/mob/living/silicon/ai/proc/camera_visibility(mob/camera/ai_eye/moved_eye)
|
||||
GLOB.cameranet.visibility(moved_eye, client, all_eyes)
|
||||
|
||||
/mob/living/silicon/ai/handle_fire()
|
||||
|
||||
@@ -44,7 +44,7 @@ GLOBAL_DATUM_INIT(cameranet, /datum/cameranet, new())
|
||||
var/list/chunks_post_seen = list()
|
||||
|
||||
for(var/V in moved_eyes)
|
||||
var/mob/camera/aiEye/eye = V
|
||||
var/mob/camera/ai_eye/eye = V
|
||||
if(C)
|
||||
chunks_pre_seen |= eye.visibleCameraChunks
|
||||
// 0xf = 15
|
||||
@@ -76,7 +76,7 @@ GLOBAL_DATUM_INIT(cameranet, /datum/cameranet, new())
|
||||
|
||||
if(C)
|
||||
for(var/V in other_eyes)
|
||||
var/mob/camera/aiEye/eye = V
|
||||
var/mob/camera/ai_eye/eye = V
|
||||
chunks_post_seen |= eye.visibleCameraChunks
|
||||
|
||||
var/list/remove = chunks_pre_seen - chunks_post_seen
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
SScamera.queue(src)
|
||||
|
||||
// Add an AI eye to the chunk, then update if changed.
|
||||
/datum/camerachunk/proc/add(mob/camera/aiEye/eye, add_images = TRUE)
|
||||
/datum/camerachunk/proc/add(mob/camera/ai_eye/eye, add_images = TRUE)
|
||||
if(add_images)
|
||||
var/client/client = eye.GetViewerClient()
|
||||
if(client)
|
||||
@@ -67,11 +67,11 @@
|
||||
if(changed)
|
||||
SScamera.queue(src)
|
||||
|
||||
/datum/camerachunk/proc/aiEye_destroyed(mob/camera/aiEye/eye)
|
||||
/datum/camerachunk/proc/aiEye_destroyed(mob/camera/ai_eye/eye)
|
||||
remove(eye, FALSE)
|
||||
|
||||
// Remove an AI eye from the chunk, then update if changed.
|
||||
/datum/camerachunk/proc/remove(mob/camera/aiEye/eye, remove_images = TRUE)
|
||||
/datum/camerachunk/proc/remove(mob/camera/ai_eye/eye, remove_images = TRUE)
|
||||
if(remove_images)
|
||||
var/client/client = eye.GetViewerClient()
|
||||
if(client)
|
||||
@@ -134,7 +134,7 @@
|
||||
obscured += t.obscured
|
||||
images_to_add += t.obscured
|
||||
|
||||
for(var/mob/camera/aiEye/eye as anything in seenby)
|
||||
for(var/mob/camera/ai_eye/eye as anything in seenby)
|
||||
var/client/client = eye.GetViewerClient()
|
||||
if(client)
|
||||
client.images -= images_to_remove
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
// An invisible (no icon) mob that the AI controls to look around the station with.
|
||||
// It streams chunks as it moves around, which will show it what the AI can and cannot see.
|
||||
|
||||
/mob/camera/aiEye
|
||||
/mob/camera/ai_eye
|
||||
name = "Inactive AI Eye"
|
||||
|
||||
icon = 'icons/mob/ai.dmi' //Allows ghosts to see what the AI is looking at.
|
||||
@@ -23,7 +23,7 @@
|
||||
// Use this when setting the aiEye's location.
|
||||
// It will also stream the chunk that the new loc is in.
|
||||
|
||||
/mob/camera/aiEye/setLoc(T)
|
||||
/mob/camera/ai_eye/setLoc(T)
|
||||
if(ai)
|
||||
if(!isturf(ai.loc))
|
||||
return
|
||||
@@ -39,26 +39,26 @@
|
||||
var/obj/machinery/hologram/holopad/H = ai.current
|
||||
H.move_hologram(ai, T)
|
||||
|
||||
/mob/camera/aiEye/Move()
|
||||
/mob/camera/ai_eye/Move()
|
||||
return 0
|
||||
|
||||
/mob/camera/aiEye/Process_Spacemove(movement_dir)
|
||||
/mob/camera/ai_eye/Process_Spacemove(movement_dir)
|
||||
// Nothing in space can stop us from moving.
|
||||
return 1
|
||||
|
||||
/mob/camera/aiEye/proc/GetViewerClient()
|
||||
/mob/camera/ai_eye/proc/GetViewerClient()
|
||||
if(ai)
|
||||
return ai.client
|
||||
return null
|
||||
|
||||
/mob/camera/aiEye/proc/RemoveImages()
|
||||
/mob/camera/ai_eye/proc/RemoveImages()
|
||||
var/client/C = GetViewerClient()
|
||||
if(C && use_static)
|
||||
for(var/V in visibleCameraChunks)
|
||||
var/datum/camerachunk/chunk = V
|
||||
C.images -= chunk.obscured
|
||||
|
||||
/mob/camera/aiEye/Destroy()
|
||||
/mob/camera/ai_eye/Destroy()
|
||||
if(ai)
|
||||
ai.all_eyes -= src
|
||||
ai = null
|
||||
@@ -131,7 +131,7 @@
|
||||
/mob/living/silicon/ai/proc/create_eye()
|
||||
if(eyeobj)
|
||||
return
|
||||
eyeobj = new /mob/camera/aiEye()
|
||||
eyeobj = new /mob/camera/ai_eye()
|
||||
all_eyes += eyeobj
|
||||
eyeobj.ai = src
|
||||
eyeobj.setLoc(loc)
|
||||
@@ -146,7 +146,7 @@
|
||||
acceleration = !acceleration
|
||||
to_chat(usr, "Camera acceleration has been toggled [acceleration ? "on" : "off"].")
|
||||
|
||||
/mob/camera/aiEye/hear_say(list/message_pieces, verb = "says", italics = 0, mob/speaker = null, sound/speech_sound, sound_vol, sound_frequency, use_voice = TRUE)
|
||||
/mob/camera/ai_eye/hear_say(list/message_pieces, verb = "says", italics = 0, mob/speaker = null, sound/speech_sound, sound_vol, sound_frequency, use_voice = TRUE)
|
||||
if(relay_speech)
|
||||
if(istype(ai))
|
||||
ai.relay_speech(speaker, message_pieces, verb)
|
||||
|
||||
@@ -11,7 +11,7 @@ GLOBAL_LIST_EMPTY(empty_playable_ai_cores)
|
||||
cryo_AI()
|
||||
|
||||
/mob/living/silicon/ai/proc/cryo_AI()
|
||||
var/dead_aicore = new /obj/structure/AIcore/deactivated(loc)
|
||||
var/dead_aicore = new /obj/structure/ai_core/deactivated(loc)
|
||||
GLOB.empty_playable_ai_cores += dead_aicore
|
||||
GLOB.global_announcer.autosay("[src] has been moved to intelligence storage.", "Artificial Intelligence Oversight", follow_target_override = dead_aicore)
|
||||
|
||||
@@ -67,7 +67,7 @@ GLOBAL_LIST_EMPTY(empty_playable_ai_cores)
|
||||
CRASH("moveToEmptyCore called without any available cores")
|
||||
|
||||
// IsJobAvailable for AI checks that there is an empty core available in this list
|
||||
var/obj/structure/AIcore/deactivated/C = GLOB.empty_playable_ai_cores[1]
|
||||
var/obj/structure/ai_core/deactivated/C = GLOB.empty_playable_ai_cores[1]
|
||||
GLOB.empty_playable_ai_cores -= C
|
||||
|
||||
forceMove(C.loc)
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
// Recruiting observers to play as pAIs
|
||||
|
||||
GLOBAL_DATUM_INIT(paiController, /datum/paiController, new) // Global handler for pAI candidates
|
||||
GLOBAL_DATUM_INIT(paiController, /datum/pai_controller, new) // Global handler for pAI candidates
|
||||
|
||||
/datum/paiController
|
||||
/datum/pai_controller
|
||||
var/list/pai_candidates = list()
|
||||
var/list/asked = list()
|
||||
|
||||
var/askDelay = 10 * 60 * 1 // One minute [ms * sec * min]
|
||||
|
||||
/datum/paiController/Topic(href, href_list[])
|
||||
/datum/pai_controller/Topic(href, href_list[])
|
||||
|
||||
var/datum/pai_save/candidate = locateUID(href_list["candidate"])
|
||||
|
||||
@@ -115,7 +115,7 @@ GLOBAL_DATUM_INIT(paiController, /datum/paiController, new) // Global handler fo
|
||||
return
|
||||
recruitWindow(usr)
|
||||
|
||||
/datum/paiController/proc/recruitWindow(mob/M)
|
||||
/datum/pai_controller/proc/recruitWindow(mob/M)
|
||||
var/datum/pai_save/candidate = M.client.pai_save
|
||||
|
||||
var/dat = ""
|
||||
@@ -234,7 +234,7 @@ GLOBAL_DATUM_INIT(paiController, /datum/paiController, new) // Global handler fo
|
||||
|
||||
M << browse(dat, "window=paiRecruit;size=580x580;")
|
||||
|
||||
/datum/paiController/proc/findPAI(obj/item/paicard/p, mob/user)
|
||||
/datum/pai_controller/proc/findPAI(obj/item/paicard/p, mob/user)
|
||||
requestRecruits(p, user)
|
||||
var/list/available = list()
|
||||
for(var/datum/pai_save/c in GLOB.paiController.pai_candidates)
|
||||
@@ -349,7 +349,7 @@ GLOBAL_DATUM_INIT(paiController, /datum/paiController, new) // Global handler fo
|
||||
|
||||
user << browse(dat, "window=findPai")
|
||||
|
||||
/datum/paiController/proc/requestRecruits(obj/item/paicard/P, mob/user)
|
||||
/datum/pai_controller/proc/requestRecruits(obj/item/paicard/P, mob/user)
|
||||
for(var/mob/dead/observer/O in GLOB.player_list)
|
||||
if(O.client && (ROLE_PAI in O.client.prefs.be_special))
|
||||
if(player_old_enough_antag(O.client,ROLE_PAI))
|
||||
@@ -357,7 +357,7 @@ GLOBAL_DATUM_INIT(paiController, /datum/paiController, new) // Global handler fo
|
||||
to_chat(O, "<span class='boldnotice'>A pAI card activated by [user.real_name] is looking for personalities. (<a href='byond://?src=[O.UID()];jump=\ref[P]'>Teleport</a> | <a href='byond://?src=[UID()];signup=\ref[O]'>Sign Up</a>)</span>")
|
||||
//question(O.client)
|
||||
|
||||
/datum/paiController/proc/check_recruit(mob/dead/observer/O)
|
||||
/datum/pai_controller/proc/check_recruit(mob/dead/observer/O)
|
||||
if(jobban_isbanned(O, ROLE_PAI) || jobban_isbanned(O, "nonhumandept"))
|
||||
return 0
|
||||
if(!player_old_enough_antag(O.client,ROLE_PAI))
|
||||
@@ -370,7 +370,7 @@ GLOBAL_DATUM_INIT(paiController, /datum/paiController, new) // Global handler fo
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/datum/paiController/proc/question(client/C)
|
||||
/datum/pai_controller/proc/question(client/C)
|
||||
spawn(0)
|
||||
if(!C) return
|
||||
asked.Add(C.key)
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
var/obj/item/matter_decompiler/decompiler = null
|
||||
|
||||
// What objects can drones bump into
|
||||
var/static/list/allowed_bumpable_objects = list(/obj/machinery/door, /obj/machinery/recharge_station, /obj/machinery/disposal/deliveryChute,
|
||||
var/static/list/allowed_bumpable_objects = list(/obj/machinery/door, /obj/machinery/recharge_station, /obj/machinery/disposal/delivery_chute,
|
||||
/obj/machinery/teleport/hub, /obj/effect/portal, /obj/structure/transit_tube/station)
|
||||
|
||||
var/reboot_cooldown = 1 MINUTES
|
||||
|
||||
@@ -346,7 +346,7 @@
|
||||
/obj/item/surgicaldrill,
|
||||
/obj/item/bonesetter,
|
||||
/obj/item/bonegel,
|
||||
/obj/item/FixOVein,
|
||||
/obj/item/fix_o_vein,
|
||||
/obj/item/extinguisher/mini,
|
||||
/obj/item/reagent_containers/glass/beaker/large,
|
||||
/obj/item/reagent_containers/dropper,
|
||||
@@ -847,7 +847,7 @@
|
||||
/obj/item/surgicaldrill,
|
||||
/obj/item/bonesetter,
|
||||
/obj/item/bonegel,
|
||||
/obj/item/FixOVein,
|
||||
/obj/item/fix_o_vein,
|
||||
/obj/item/card/emag,
|
||||
/obj/item/crowbar/cyborg/red,
|
||||
/obj/item/pinpointer/operative,
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
footstep_type = FOOTSTEP_MOB_CLAW
|
||||
|
||||
//RUNTIME IS ALIVE! SQUEEEEEEEE~
|
||||
/mob/living/simple_animal/pet/cat/Runtime
|
||||
/mob/living/simple_animal/pet/cat/runtime
|
||||
name = "Runtime"
|
||||
desc = "GCAT."
|
||||
icon_state = "cat"
|
||||
@@ -42,35 +42,35 @@
|
||||
var/list/family = list()
|
||||
var/list/children = list() //Actual mob instances of children
|
||||
|
||||
/mob/living/simple_animal/pet/cat/Runtime/Initialize(mapload)
|
||||
/mob/living/simple_animal/pet/cat/runtime/Initialize(mapload)
|
||||
. = ..()
|
||||
SSpersistent_data.register(src)
|
||||
|
||||
/mob/living/simple_animal/pet/cat/Runtime/Destroy()
|
||||
/mob/living/simple_animal/pet/cat/runtime/Destroy()
|
||||
SSpersistent_data.registered_atoms -= src
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/pet/cat/Runtime/persistent_load()
|
||||
/mob/living/simple_animal/pet/cat/runtime/persistent_load()
|
||||
read_memory()
|
||||
deploy_the_cats()
|
||||
|
||||
/mob/living/simple_animal/pet/cat/Runtime/persistent_save()
|
||||
/mob/living/simple_animal/pet/cat/runtime/persistent_save()
|
||||
if(SEND_SIGNAL(src, COMSIG_LIVING_WRITE_MEMORY) & COMPONENT_DONT_WRITE_MEMORY)
|
||||
return FALSE
|
||||
write_memory(FALSE)
|
||||
|
||||
/mob/living/simple_animal/pet/cat/Runtime/make_babies()
|
||||
/mob/living/simple_animal/pet/cat/runtime/make_babies()
|
||||
var/mob/baby = ..()
|
||||
if(baby)
|
||||
children += baby
|
||||
return baby
|
||||
|
||||
/mob/living/simple_animal/pet/cat/Runtime/death()
|
||||
/mob/living/simple_animal/pet/cat/runtime/death()
|
||||
if(can_die())
|
||||
write_memory(TRUE)
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/pet/cat/Runtime/proc/read_memory()
|
||||
/mob/living/simple_animal/pet/cat/runtime/proc/read_memory()
|
||||
var/savefile/S = new /savefile("data/npc_saves/Runtime.sav")
|
||||
S["family"] >> family
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
family = list()
|
||||
log_debug("Persistent data for [src] loaded (family: [family ? list2params(family) : "None"])")
|
||||
|
||||
/mob/living/simple_animal/pet/cat/Runtime/proc/write_memory(dead)
|
||||
/mob/living/simple_animal/pet/cat/runtime/proc/write_memory(dead)
|
||||
var/savefile/S = new /savefile("data/npc_saves/Runtime.sav")
|
||||
family = list()
|
||||
if(!dead)
|
||||
@@ -92,7 +92,7 @@
|
||||
S["family"] << family
|
||||
log_debug("Persistent data for [src] saved (family: [family ? list2params(family) : "None"])")
|
||||
|
||||
/mob/living/simple_animal/pet/cat/Runtime/proc/deploy_the_cats()
|
||||
/mob/living/simple_animal/pet/cat/runtime/proc/deploy_the_cats()
|
||||
for(var/cat_type in family)
|
||||
if(family[cat_type] > 0)
|
||||
for(var/i in 1 to min(family[cat_type],100)) //Limits to about 500 cats, you wouldn't think this would be needed (BUT IT IS)
|
||||
@@ -174,13 +174,13 @@
|
||||
stop_automated_movement = TRUE
|
||||
walk(src, movement_target, 0, 3)
|
||||
|
||||
/mob/living/simple_animal/pet/cat/Proc
|
||||
/mob/living/simple_animal/pet/cat/proc_cat
|
||||
name = "Proc"
|
||||
gender = MALE
|
||||
gold_core_spawnable = NO_SPAWN
|
||||
unique_pet = TRUE
|
||||
|
||||
/mob/living/simple_animal/pet/cat/Var
|
||||
/mob/living/simple_animal/pet/cat/var_cat
|
||||
name = "Var"
|
||||
desc = "Maintenance Cat!"
|
||||
gold_core_spawnable = NO_SPAWN
|
||||
@@ -197,7 +197,7 @@
|
||||
pass_flags = PASSMOB
|
||||
collar_type = "kitten"
|
||||
|
||||
/mob/living/simple_animal/pet/cat/Syndi
|
||||
/mob/living/simple_animal/pet/cat/syndi
|
||||
name = "SyndiCat"
|
||||
desc = "It's a SyndiCat droid."
|
||||
icon_state = "Syndicat"
|
||||
@@ -213,11 +213,11 @@
|
||||
melee_damage_lower = 5
|
||||
melee_damage_upper = 15
|
||||
|
||||
/mob/living/simple_animal/pet/cat/Syndi/Initialize(mapload)
|
||||
/mob/living/simple_animal/pet/cat/syndi/Initialize(mapload)
|
||||
. = ..()
|
||||
ADD_TRAIT(src, TRAIT_NOBREATH, SPECIES_TRAIT)
|
||||
|
||||
/mob/living/simple_animal/pet/cat/Syndi/npc_safe(mob/user)
|
||||
/mob/living/simple_animal/pet/cat/syndi/npc_safe(mob/user)
|
||||
if(GAMEMODE_IS_NUCLEAR)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
return
|
||||
|
||||
//mining pet
|
||||
/mob/living/simple_animal/cockroach/Brad
|
||||
/mob/living/simple_animal/cockroach/brad
|
||||
name = "Brad"
|
||||
desc = "Lavaland's most resilient cockroach. Seeing this little guy walk through the wastes almost makes you wish for nuclear winter."
|
||||
response_help = "carefully pets"
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
return TRUE
|
||||
|
||||
//COFFEE! SQUEEEEEEEEE!
|
||||
/mob/living/simple_animal/crab/Coffee
|
||||
/mob/living/simple_animal/crab/coffee
|
||||
name = "Coffee"
|
||||
real_name = "Coffee"
|
||||
desc = "It's Coffee, the other pet!"
|
||||
|
||||
@@ -316,7 +316,7 @@
|
||||
add_overlay(back_icon)
|
||||
|
||||
//IAN! SQUEEEEEEEEE~
|
||||
/mob/living/simple_animal/pet/dog/corgi/Ian
|
||||
/mob/living/simple_animal/pet/dog/corgi/ian
|
||||
name = "Ian"
|
||||
real_name = "Ian" //Intended to hold the name without altering it.
|
||||
gender = MALE
|
||||
@@ -332,19 +332,19 @@
|
||||
var/record_age = 1
|
||||
var/saved_head //path
|
||||
|
||||
/mob/living/simple_animal/pet/dog/corgi/Ian/Initialize(mapload)
|
||||
/mob/living/simple_animal/pet/dog/corgi/ian/Initialize(mapload)
|
||||
. = ..()
|
||||
SSpersistent_data.register(src)
|
||||
|
||||
/mob/living/simple_animal/pet/dog/corgi/Ian/Destroy()
|
||||
/mob/living/simple_animal/pet/dog/corgi/ian/Destroy()
|
||||
SSpersistent_data.registered_atoms -= src
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/pet/dog/corgi/Ian/death()
|
||||
/mob/living/simple_animal/pet/dog/corgi/ian/death()
|
||||
write_memory(TRUE)
|
||||
..()
|
||||
|
||||
/mob/living/simple_animal/pet/dog/corgi/Ian/persistent_load()
|
||||
/mob/living/simple_animal/pet/dog/corgi/ian/persistent_load()
|
||||
read_memory()
|
||||
if(age == 0)
|
||||
var/turf/target = get_turf(loc)
|
||||
@@ -365,12 +365,12 @@
|
||||
desc = "At a ripe old age of [record_age], Ian's not as spry as he used to be, but he'll always be the HoP's beloved corgi." //RIP
|
||||
turns_per_move = 20
|
||||
|
||||
/mob/living/simple_animal/pet/dog/corgi/Ian/persistent_save()
|
||||
/mob/living/simple_animal/pet/dog/corgi/ian/persistent_save()
|
||||
if(SEND_SIGNAL(src, COMSIG_LIVING_WRITE_MEMORY) & COMPONENT_DONT_WRITE_MEMORY)
|
||||
return FALSE
|
||||
write_memory(FALSE)
|
||||
|
||||
/mob/living/simple_animal/pet/dog/corgi/Ian/proc/read_memory()
|
||||
/mob/living/simple_animal/pet/dog/corgi/ian/proc/read_memory()
|
||||
if(fexists("data/npc_saves/Ian.sav")) //legacy compatability to convert old format to new
|
||||
var/savefile/S = new /savefile("data/npc_saves/Ian.sav")
|
||||
S["age"] >> age
|
||||
@@ -393,7 +393,7 @@
|
||||
place_on_head(new saved_head)
|
||||
log_debug("Persistent data for [src] loaded (age: [age] | record_age: [record_age] | saved_head: [saved_head ? saved_head : "None"])")
|
||||
|
||||
/mob/living/simple_animal/pet/dog/corgi/Ian/proc/write_memory(dead)
|
||||
/mob/living/simple_animal/pet/dog/corgi/ian/proc/write_memory(dead)
|
||||
var/json_file = file("data/npc_saves/Ian.json")
|
||||
var/list/file_data = list()
|
||||
if(!dead)
|
||||
@@ -414,7 +414,7 @@
|
||||
WRITE_FILE(json_file, json_encode(file_data))
|
||||
log_debug("Persistent data for [src] saved (age: [age] | record_age: [record_age] | saved_head: [saved_head ? saved_head : "None"])")
|
||||
|
||||
/mob/living/simple_animal/pet/dog/corgi/Ian/handle_automated_movement()
|
||||
/mob/living/simple_animal/pet/dog/corgi/ian/handle_automated_movement()
|
||||
. = ..()
|
||||
//Feeding, chasing food, FOOOOODDDD
|
||||
if(IS_HORIZONTAL(src) || buckled)
|
||||
@@ -450,7 +450,7 @@
|
||||
if(prob(1))
|
||||
chasetail()
|
||||
|
||||
/mob/living/simple_animal/pet/dog/corgi/Ian/proc/move_to_target()
|
||||
/mob/living/simple_animal/pet/dog/corgi/ian/proc/move_to_target()
|
||||
stop_automated_movement = TRUE
|
||||
step_to(src, movement_target, 1)
|
||||
sleep(3)
|
||||
@@ -470,7 +470,7 @@
|
||||
else if(prob(30) && ishuman(movement_target.loc)) // mean hooman has stolen it
|
||||
custom_emote(EMOTE_VISIBLE, "stares at [movement_target.loc]'s [movement_target] with a sad puppy-face.")
|
||||
|
||||
/mob/living/simple_animal/pet/dog/corgi/Ian/narsie_act()
|
||||
/mob/living/simple_animal/pet/dog/corgi/ian/narsie_act()
|
||||
playsound(src, 'sound/misc/demon_dies.ogg', 75, TRUE)
|
||||
var/mob/living/simple_animal/pet/dog/corgi/narsie/N = new(loc)
|
||||
N.setDir(dir)
|
||||
@@ -538,7 +538,7 @@
|
||||
return 1 //Void puppies can navigate space.
|
||||
|
||||
//LISA! SQUEEEEEEEEE~
|
||||
/mob/living/simple_animal/pet/dog/corgi/Lisa
|
||||
/mob/living/simple_animal/pet/dog/corgi/lisa
|
||||
name = "Lisa"
|
||||
real_name = "Lisa"
|
||||
gender = FEMALE
|
||||
@@ -554,11 +554,11 @@
|
||||
strippable_inventory_slots = list(/datum/strippable_item/corgi_back, /datum/strippable_item/pet_collar) //Lisa already has a cute bow!
|
||||
var/turns_since_scan = 0
|
||||
|
||||
/mob/living/simple_animal/pet/dog/corgi/Lisa/Life()
|
||||
/mob/living/simple_animal/pet/dog/corgi/lisa/Life()
|
||||
..()
|
||||
make_babies()
|
||||
|
||||
/mob/living/simple_animal/pet/dog/corgi/Lisa/handle_automated_movement()
|
||||
/mob/living/simple_animal/pet/dog/corgi/lisa/handle_automated_movement()
|
||||
. = ..()
|
||||
if(!IS_HORIZONTAL(src) && !buckled)
|
||||
if(prob(1))
|
||||
|
||||
@@ -19,14 +19,14 @@
|
||||
response_harm = "kicks"
|
||||
|
||||
//Captain fox
|
||||
/mob/living/simple_animal/pet/dog/fox/Renault
|
||||
/mob/living/simple_animal/pet/dog/fox/renault
|
||||
name = "Renault"
|
||||
desc = "Renault, the Captain's trustworthy fox. I wonder what it says?"
|
||||
unique_pet = TRUE
|
||||
gold_core_spawnable = NO_SPAWN
|
||||
|
||||
//Syndi fox
|
||||
/mob/living/simple_animal/pet/dog/fox/Syndifox
|
||||
/mob/living/simple_animal/pet/dog/fox/syndifox
|
||||
name = "Syndifox"
|
||||
desc = "Syndifox, the Syndicate's most respected mascot. I wonder what it says?"
|
||||
icon_state = "Syndifox"
|
||||
@@ -41,11 +41,11 @@
|
||||
melee_damage_lower = 10
|
||||
melee_damage_upper = 20
|
||||
|
||||
/mob/living/simple_animal/pet/dog/fox/Syndifox/Initialize(mapload)
|
||||
/mob/living/simple_animal/pet/dog/fox/syndifox/Initialize(mapload)
|
||||
. = ..()
|
||||
ADD_TRAIT(src, TRAIT_NOBREATH, SPECIES_TRAIT)
|
||||
|
||||
/mob/living/simple_animal/pet/dog/fox/Syndifox/npc_safe(mob/user)
|
||||
/mob/living/simple_animal/pet/dog/fox/syndifox/npc_safe(mob/user)
|
||||
if(GAMEMODE_IS_NUCLEAR)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
@@ -144,7 +144,7 @@
|
||||
icon_state = "mouse_brown"
|
||||
|
||||
//TOM IS ALIVE! SQUEEEEEEEE~K :)
|
||||
/mob/living/simple_animal/mouse/brown/Tom
|
||||
/mob/living/simple_animal/mouse/brown/tom
|
||||
name = "Tom"
|
||||
real_name = "Tom"
|
||||
response_help = "pets"
|
||||
@@ -153,23 +153,23 @@
|
||||
unique_pet = TRUE
|
||||
gold_core_spawnable = NO_SPAWN
|
||||
|
||||
/mob/living/simple_animal/mouse/brown/Tom/update_desc()
|
||||
/mob/living/simple_animal/mouse/brown/tom/update_desc()
|
||||
. = ..()
|
||||
desc = "Jerry the cat is not amused."
|
||||
|
||||
/mob/living/simple_animal/mouse/brown/Tom/Initialize(mapload)
|
||||
/mob/living/simple_animal/mouse/brown/tom/Initialize(mapload)
|
||||
. = ..()
|
||||
// Tom fears no cable.
|
||||
ADD_TRAIT(src, TRAIT_SHOCKIMMUNE, SPECIES_TRAIT)
|
||||
|
||||
/mob/living/simple_animal/mouse/white/Brain
|
||||
/mob/living/simple_animal/mouse/white/brain
|
||||
name = "Brain"
|
||||
real_name = "Brain"
|
||||
response_harm = "splats"
|
||||
unique_pet = TRUE
|
||||
gold_core_spawnable = NO_SPAWN
|
||||
|
||||
/mob/living/simple_animal/mouse/white/Brain/update_desc()
|
||||
/mob/living/simple_animal/mouse/white/brain/update_desc()
|
||||
. = ..()
|
||||
desc = "Gee Virology, what are we going to do tonight? The same thing we do every night, try to take over the world!"
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
butcher_results = list(/obj/item/food/monstermeat/bearmeat = 5, /obj/item/clothing/head/bearpelt/polar = 1)
|
||||
|
||||
//SPACE BEARS! SQUEEEEEEEE~ OW! FUCK! IT BIT MY HAND OFF!!
|
||||
/mob/living/simple_animal/hostile/bear/Hudson
|
||||
/mob/living/simple_animal/hostile/bear/hudson
|
||||
name = "Hudson"
|
||||
desc = "Feared outlaw, this guy is one bad news bear." //I'm sorry...
|
||||
icon_state = "combat_bear"
|
||||
@@ -70,7 +70,7 @@
|
||||
icon_dead = "combat_bear_dead"
|
||||
butcher_results = list(/obj/item/food/monstermeat/bearmeat = 5, /obj/item/clothing/head/bearpelt/brown = 1)
|
||||
|
||||
/mob/living/simple_animal/hostile/bear/Hudson/Initialize(mapload)
|
||||
/mob/living/simple_animal/hostile/bear/hudson/Initialize(mapload)
|
||||
. = ..()
|
||||
var/unbearable_pun = pick("He's unbearably cute.", "It looks like he is a bearer of bad news.", "Sadly, he is bearly able to comprehend puns.")
|
||||
desc = "That's Hudson. " + unbearable_pun // I am not sorry for this.
|
||||
|
||||
@@ -649,7 +649,7 @@
|
||||
/*
|
||||
* Sub-types
|
||||
*/
|
||||
/mob/living/simple_animal/parrot/Poly
|
||||
/mob/living/simple_animal/parrot/poly
|
||||
name = "Poly"
|
||||
desc = "Poly the Parrot. An expert on quantum cracker theory."
|
||||
clean_speak = list(
|
||||
@@ -679,13 +679,13 @@
|
||||
gold_core_spawnable = NO_SPAWN
|
||||
available_channels = list(":e")
|
||||
|
||||
/mob/living/simple_animal/parrot/Poly/Initialize(mapload)
|
||||
/mob/living/simple_animal/parrot/poly/Initialize(mapload)
|
||||
. = ..()
|
||||
|
||||
ears = new /obj/item/radio/headset/headset_eng(src)
|
||||
clean_speak += "Danger! Crystal hyperstructure integrity faltering! Integrity: [rand(75, 99)]%" // Has to be here cause of the `rand()`.
|
||||
|
||||
/mob/living/simple_animal/parrot/Poly/npc_safe(mob/user) // Hello yes, I have universal speak and I follow people around and shout out antags
|
||||
/mob/living/simple_animal/parrot/poly/npc_safe(mob/user) // Hello yes, I have universal speak and I follow people around and shout out antags
|
||||
return FALSE
|
||||
|
||||
/mob/living/simple_animal/parrot/handle_message_mode(message_mode, list/message_pieces, verb, used_radios)
|
||||
|
||||
@@ -38,11 +38,11 @@
|
||||
|
||||
// Sprites by Travelling Merchant
|
||||
|
||||
/datum/sprite_accessory/head_accessory/kidan/kidan_Mantie_Long
|
||||
/datum/sprite_accessory/head_accessory/kidan/kidan_mantie_long
|
||||
name = "Mantie Long"
|
||||
icon_state = "Mantie_Long"
|
||||
|
||||
/datum/sprite_accessory/head_accessory/kidan/kidan_Mantie_Curled
|
||||
/datum/sprite_accessory/head_accessory/kidan/kidan_mantie_curled
|
||||
name = "Mantie Curled"
|
||||
icon_state = "Mantie_Curled"
|
||||
|
||||
|
||||
@@ -535,11 +535,11 @@
|
||||
/*
|
||||
* Premade paper
|
||||
*/
|
||||
/obj/item/paper/Court
|
||||
/obj/item/paper/court
|
||||
name = "Judgement"
|
||||
info = "For crimes against the station, the offender is sentenced to:<BR>\n<BR>\n"
|
||||
|
||||
/obj/item/paper/Toxin
|
||||
/obj/item/paper/toxin
|
||||
name = "Chemical Information"
|
||||
info = "Known Onboard Toxins:<BR>\n\tGrade A Semi-Liquid Plasma:<BR>\n\t\tHighly poisonous. You cannot sustain concentrations above 15 units.<BR>\n\t\tA gas mask fails to filter plasma after 50 units.<BR>\n\t\tWill attempt to diffuse like a gas.<BR>\n\t\tFiltered by scrubbers.<BR>\n\t\tThere is a bottled version which is very different<BR>\n\t\t\tfrom the version found in canisters!<BR>\n<BR>\n\t\tWARNING: Highly Flammable. Keep away from heat sources<BR>\n\t\texcept in a enclosed fire area!<BR>\n\t\tWARNING: It is a crime to use this without authorization.<BR>\nKnown Onboard Anti-Toxin:<BR>\n\tAnti-Toxin Type 01P: Works against Grade A Plasma.<BR>\n\t\tBest if injected directly into bloodstream.<BR>\n\t\tA full injection is in every regular Med-Kit.<BR>\n\t\tSpecial toxin Kits hold around 7.<BR>\n<BR>\nKnown Onboard Chemicals (other):<BR>\n\tRejuvenation T#001:<BR>\n\t\tEven 1 unit injected directly into the bloodstream<BR>\n\t\t\twill cure paralysis and sleep plasma.<BR>\n\t\tIf administered to a dying patient it will prevent<BR>\n\t\t\tfurther damage for about units*3 seconds.<BR>\n\t\t\tit will not cure them or allow them to be cured.<BR>\n\t\tIt can be administeredd to a non-dying patient<BR>\n\t\t\tbut the chemicals disappear just as fast.<BR>\n\tSoporific T#054:<BR>\n\t\t5 units wilkl induce precisely 1 minute of sleep.<BR>\n\t\t\tThe effect are cumulative.<BR>\n\t\tWARNING: It is a crime to use this without authorization"
|
||||
|
||||
|
||||
@@ -337,7 +337,7 @@
|
||||
/obj/machinery/field/containment,
|
||||
/obj/structure/disposalpipe,
|
||||
/obj/structure/disposaloutlet,
|
||||
/obj/machinery/disposal/deliveryChute,
|
||||
/obj/machinery/disposal/delivery_chute,
|
||||
/obj/machinery/camera,
|
||||
/obj/structure/sign,
|
||||
/obj/structure/lattice,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/datum/mapGenerator
|
||||
/datum/map_generator
|
||||
|
||||
//Map information
|
||||
var/list/map = list()
|
||||
@@ -6,13 +6,13 @@
|
||||
//mapGeneratorModule information
|
||||
var/list/modules = list()
|
||||
|
||||
/datum/mapGenerator/New()
|
||||
/datum/map_generator/New()
|
||||
..()
|
||||
initialiseModules()
|
||||
|
||||
//Defines the region the map represents, sets map
|
||||
//Returns the map
|
||||
/datum/mapGenerator/proc/defineRegion(turf/Start, turf/End, replace = 0)
|
||||
/datum/map_generator/proc/defineRegion(turf/Start, turf/End, replace = 0)
|
||||
if(!checkRegion(Start, End))
|
||||
return 0
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
//Defines the region the map represents, as a CIRCLE!, sets map
|
||||
//Returns the map
|
||||
/datum/mapGenerator/proc/defineCircularRegion(turf/Start, turf/End, replace = 0)
|
||||
/datum/map_generator/proc/defineCircularRegion(turf/Start, turf/End, replace = 0)
|
||||
if(!checkRegion(Start, End))
|
||||
return 0
|
||||
|
||||
@@ -60,13 +60,13 @@
|
||||
|
||||
|
||||
//Empties the map list, he's dead jim.
|
||||
/datum/mapGenerator/proc/undefineRegion()
|
||||
/datum/map_generator/proc/undefineRegion()
|
||||
map = list() //bai bai
|
||||
|
||||
|
||||
//Checks for and Rejects bad region coordinates
|
||||
//Returns 1/0
|
||||
/datum/mapGenerator/proc/checkRegion(turf/Start, turf/End)
|
||||
/datum/map_generator/proc/checkRegion(turf/Start, turf/End)
|
||||
. = 1
|
||||
|
||||
if(!Start || !End)
|
||||
@@ -81,29 +81,29 @@
|
||||
|
||||
|
||||
//Requests the mapGeneratorModule(s) to (re)generate
|
||||
/datum/mapGenerator/proc/generate()
|
||||
/datum/map_generator/proc/generate()
|
||||
syncModules()
|
||||
if(!modules || !length(modules))
|
||||
return
|
||||
for(var/datum/mapGeneratorModule/mod in modules)
|
||||
for(var/datum/map_generator_module/mod in modules)
|
||||
spawn(0)
|
||||
mod.generate()
|
||||
|
||||
|
||||
//Requests the mapGeneratorModule(s) to (re)generate this one turf
|
||||
/datum/mapGenerator/proc/generateOneTurf(turf/T)
|
||||
/datum/map_generator/proc/generateOneTurf(turf/T)
|
||||
if(!T)
|
||||
return
|
||||
syncModules()
|
||||
if(!modules || !length(modules))
|
||||
return
|
||||
for(var/datum/mapGeneratorModule/mod in modules)
|
||||
for(var/datum/map_generator_module/mod in modules)
|
||||
spawn(0)
|
||||
mod.place(T)
|
||||
|
||||
|
||||
//Replaces all paths in the module list with actual module datums
|
||||
/datum/mapGenerator/proc/initialiseModules()
|
||||
/datum/map_generator/proc/initialiseModules()
|
||||
for(var/path in modules)
|
||||
if(ispath(path))
|
||||
modules.Remove(path)
|
||||
@@ -112,8 +112,8 @@
|
||||
|
||||
|
||||
//Sync mapGeneratorModule(s) to mapGenerator
|
||||
/datum/mapGenerator/proc/syncModules()
|
||||
for(var/datum/mapGeneratorModule/mod in modules)
|
||||
/datum/map_generator/proc/syncModules()
|
||||
for(var/datum/map_generator_module/mod in modules)
|
||||
mod.sync(src)
|
||||
|
||||
|
||||
@@ -129,7 +129,7 @@
|
||||
if(!check_rights(R_MAINTAINER))
|
||||
return
|
||||
|
||||
var/datum/mapGenerator/nature/N = new()
|
||||
var/datum/map_generator/nature/N = new()
|
||||
var/startInput = clean_input("Start turf of Map, (X;Y;Z)", "Map Gen Settings", "1;1;1")
|
||||
var/endInput = clean_input("End turf of Map (X;Y;Z)", "Map Gen Settings", "[world.maxx];[world.maxy];[mob ? mob.z : 1]")
|
||||
//maxx maxy and current z so that if you fuck up, you only fuck up one entire z level instead of the entire universe
|
||||
@@ -170,7 +170,7 @@
|
||||
theCluster = MAP_GENERATOR_CLUSTER_CHECK_NONE
|
||||
|
||||
if(theCluster)
|
||||
for(var/datum/mapGeneratorModule/M in N.modules)
|
||||
for(var/datum/map_generator_module/M in N.modules)
|
||||
M.clusterCheckFlags = theCluster
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
/datum/mapGeneratorModule
|
||||
var/datum/mapGenerator/mother = null
|
||||
/datum/map_generator_module
|
||||
var/datum/map_generator/mother = null
|
||||
var/list/spawnableAtoms = list()
|
||||
var/list/spawnableTurfs = list()
|
||||
var/clusterMax = 5
|
||||
@@ -10,14 +10,14 @@
|
||||
|
||||
|
||||
//Syncs the module up with it's mother
|
||||
/datum/mapGeneratorModule/proc/sync(datum/mapGenerator/mum)
|
||||
/datum/map_generator_module/proc/sync(datum/map_generator/mum)
|
||||
mother = null
|
||||
if(mum)
|
||||
mother = mum
|
||||
|
||||
|
||||
//Generates it's spawnable atoms and turfs
|
||||
/datum/mapGeneratorModule/proc/generate()
|
||||
/datum/map_generator_module/proc/generate()
|
||||
if(!mother)
|
||||
return
|
||||
var/list/map = mother.map
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
|
||||
//Place a spawnable atom or turf on this turf
|
||||
/datum/mapGeneratorModule/proc/place(turf/T)
|
||||
/datum/map_generator_module/proc/place(turf/T)
|
||||
if(!T)
|
||||
return 0
|
||||
|
||||
@@ -103,7 +103,7 @@
|
||||
|
||||
|
||||
//Checks and Rejects dense turfs
|
||||
/datum/mapGeneratorModule/proc/checkPlaceAtom(turf/T)
|
||||
/datum/map_generator_module/proc/checkPlaceAtom(turf/T)
|
||||
. = 1
|
||||
if(!T)
|
||||
return 0
|
||||
@@ -127,19 +127,19 @@
|
||||
|
||||
//Settings appropriate for a turf that covers the entire map region, eg a fill colour on a bottom layer in a graphics program.
|
||||
//Should only have one of these in your mapGenerator unless you want to waste CPU
|
||||
/datum/mapGeneratorModule/bottomLayer
|
||||
/datum/map_generator_module/bottom_layer
|
||||
clusterCheckFlags = MAP_GENERATOR_CLUSTER_CHECK_NONE
|
||||
spawnableAtoms = list()//Recommended: No atoms.
|
||||
spawnableTurfs = list(/turf = 100)
|
||||
|
||||
//Settings appropriate for turfs/atoms that cover SOME of the map region, sometimes referred to as a splatter layer.
|
||||
/datum/mapGeneratorModule/splatterLayer
|
||||
/datum/map_generator_module/splatter_layer
|
||||
clusterCheckFlags = MAP_GENERATOR_CLUSTER_CHECK_ALL
|
||||
spawnableAtoms = list(/atom = 30)
|
||||
spawnableTurfs = list(/turf = 30)
|
||||
|
||||
//Settings appropriate for turfs/atoms that cover a lot of the map region, eg a dense forest.
|
||||
/datum/mapGeneratorModule/denseLayer
|
||||
/datum/map_generator_module/dense_layer
|
||||
clusterCheckFlags = MAP_GENERATOR_CLUSTER_CHECK_NONE
|
||||
spawnableAtoms = list(/atom = 75)
|
||||
spawnableTurfs = list(/turf = 75)
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
|
||||
|
||||
// Helper to repressurize the area in case it was run in space
|
||||
/datum/mapGeneratorModule/bottomLayer/repressurize
|
||||
/datum/map_generator_module/bottom_layer/repressurize
|
||||
spawnableAtoms = list()
|
||||
spawnableTurfs = list()
|
||||
|
||||
/datum/mapGeneratorModule/bottomLayer/repressurize/generate()
|
||||
/datum/map_generator_module/bottom_layer/repressurize/generate()
|
||||
if(!mother)
|
||||
return
|
||||
var/list/map = mother.map
|
||||
@@ -22,10 +22,10 @@
|
||||
T.blind_set_air(air)
|
||||
|
||||
//Only places atoms/turfs on area borders
|
||||
/datum/mapGeneratorModule/border
|
||||
/datum/map_generator_module/border
|
||||
clusterCheckFlags = MAP_GENERATOR_CLUSTER_CHECK_NONE
|
||||
|
||||
/datum/mapGeneratorModule/border/generate()
|
||||
/datum/map_generator_module/border/generate()
|
||||
if(!mother)
|
||||
return
|
||||
var/list/map = mother.map
|
||||
@@ -33,7 +33,7 @@
|
||||
if(is_border(T))
|
||||
place(T)
|
||||
|
||||
/datum/mapGeneratorModule/border/proc/is_border(turf/T)
|
||||
/datum/map_generator_module/border/proc/is_border(turf/T)
|
||||
for(var/direction in list(SOUTH,EAST,WEST,NORTH))
|
||||
if(get_step(T,direction) in mother.map)
|
||||
continue
|
||||
|
||||
@@ -3,18 +3,18 @@
|
||||
|
||||
|
||||
//Pine Trees
|
||||
/datum/mapGeneratorModule/pineTrees
|
||||
/datum/map_generator_module/pine_trees
|
||||
spawnableAtoms = list(/obj/structure/flora/tree/pine = 30)
|
||||
|
||||
//Dead Trees
|
||||
/datum/mapGeneratorModule/deadTrees
|
||||
/datum/map_generator_module/dead_trees
|
||||
spawnableAtoms = list(/obj/structure/flora/tree/dead = 10)
|
||||
|
||||
//Random assortment of bushes
|
||||
/datum/mapGeneratorModule/randBushes
|
||||
/datum/map_generator_module/rand_bushes
|
||||
spawnableAtoms = list()
|
||||
|
||||
/datum/mapGeneratorModule/randBushes/New()
|
||||
/datum/map_generator_module/rand_bushes/New()
|
||||
..()
|
||||
spawnableAtoms = typesof(/obj/structure/flora/ausbushes)
|
||||
for(var/i in spawnableAtoms)
|
||||
@@ -22,16 +22,16 @@
|
||||
|
||||
|
||||
//Random assortment of rocks and rockpiles
|
||||
/datum/mapGeneratorModule/randRocks
|
||||
/datum/map_generator_module/rand_rocks
|
||||
spawnableAtoms = list(/obj/structure/flora/rock = 40, /obj/structure/flora/rock/pile = 20)
|
||||
|
||||
|
||||
//Grass turfs
|
||||
/datum/mapGeneratorModule/bottomLayer/grassTurfs
|
||||
/datum/map_generator_module/bottom_layer/grass_turfs
|
||||
spawnableTurfs = list(/turf/simulated/floor/grass = 100)
|
||||
|
||||
|
||||
//Grass tufts with a high spawn chance
|
||||
/datum/mapGeneratorModule/denseLayer/grassTufts
|
||||
/datum/map_generator_module/dense_layer/grass_tufts
|
||||
spawnableTurfs = list()
|
||||
spawnableAtoms = list(/obj/structure/flora/ausbushes/grassybush = 75)
|
||||
|
||||
@@ -38,7 +38,7 @@ mapGenerator:
|
||||
|
||||
initialiseModules()
|
||||
Example: initialiseModules()
|
||||
Desc: Replaces all typepaths in the modules list with actual /datum/mapGenerator/Module types
|
||||
Desc: Replaces all typepaths in the modules list with actual /datum/map_generator/Module types
|
||||
Existing Calls: mapGenerator/New()
|
||||
|
||||
syncModules()
|
||||
@@ -51,7 +51,7 @@ mapGeneratorModule
|
||||
Desc: a mapGeneratorModule has spawnableAtoms and spawnableTurfs lists
|
||||
which it will generate on turfs in it's mother's map based on cluster variables
|
||||
|
||||
sync(var/datum/mapGenerator/mum)
|
||||
sync(var/datum/map_generator/mum)
|
||||
Example: sync(a_mapGenerator_as_a_variable)
|
||||
Desc: Sets the Mother variable to the mum argument
|
||||
Existing Calls: mapGenerator/syncModules()
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
//Asteroid turfs
|
||||
/datum/mapGeneratorModule/bottomLayer/asteroidTurfs
|
||||
/datum/map_generator_module/bottom_layer/asteroid_turfs
|
||||
spawnableTurfs = list(/turf/simulated/floor/plating/asteroid/airless = 100)
|
||||
|
||||
/datum/mapGeneratorModule/bottomLayer/asteroidWalls
|
||||
/datum/map_generator_module/bottom_layer/asteroid_walls
|
||||
spawnableTurfs = list(/turf/simulated/mineral = 100)
|
||||
|
||||
//Border walls
|
||||
/datum/mapGeneratorModule/border/asteroidWalls
|
||||
/datum/map_generator_module/border/asteroid_walls
|
||||
spawnableAtoms = list()
|
||||
spawnableTurfs = list(/turf/simulated/mineral = 100)
|
||||
|
||||
//Random walls
|
||||
/datum/mapGeneratorModule/splatterLayer/asteroidWalls
|
||||
/datum/map_generator_module/splatter_layer/asteroid_walls
|
||||
clusterCheckFlags = MAP_GENERATOR_CLUSTER_CHECK_NONE
|
||||
spawnableAtoms = list()
|
||||
spawnableTurfs = list(/turf/simulated/mineral = 30)
|
||||
|
||||
//Monsters
|
||||
/datum/mapGeneratorModule/splatterLayer/asteroidMonsters
|
||||
/datum/map_generator_module/splatter_layer/asteroid_monsters
|
||||
spawnableTurfs = list()
|
||||
spawnableAtoms = list(/mob/living/simple_animal/hostile/asteroid/basilisk = 10, \
|
||||
/mob/living/simple_animal/hostile/asteroid/hivelord = 10, \
|
||||
@@ -26,20 +26,20 @@
|
||||
|
||||
// GENERATORS
|
||||
|
||||
/datum/mapGenerator/asteroid/hollow
|
||||
modules = list(/datum/mapGeneratorModule/bottomLayer/asteroidTurfs, \
|
||||
/datum/mapGeneratorModule/border/asteroidWalls)
|
||||
/datum/map_generator/asteroid/hollow
|
||||
modules = list(/datum/map_generator_module/bottom_layer/asteroid_turfs, \
|
||||
/datum/map_generator_module/border/asteroid_walls)
|
||||
|
||||
/datum/mapGenerator/asteroid/hollow/random
|
||||
modules = list(/datum/mapGeneratorModule/bottomLayer/asteroidTurfs, \
|
||||
/datum/mapGeneratorModule/border/asteroidWalls, \
|
||||
/datum/mapGeneratorModule/splatterLayer/asteroidWalls)
|
||||
/datum/map_generator/asteroid/hollow/random
|
||||
modules = list(/datum/map_generator_module/bottom_layer/asteroid_turfs, \
|
||||
/datum/map_generator_module/border/asteroid_walls, \
|
||||
/datum/map_generator_module/splatter_layer/asteroid_walls)
|
||||
|
||||
/datum/mapGenerator/asteroid/hollow/random/monsters
|
||||
modules = list(/datum/mapGeneratorModule/bottomLayer/asteroidTurfs, \
|
||||
/datum/mapGeneratorModule/border/asteroidWalls, \
|
||||
/datum/mapGeneratorModule/splatterLayer/asteroidWalls, \
|
||||
/datum/mapGeneratorModule/splatterLayer/asteroidMonsters)
|
||||
/datum/map_generator/asteroid/hollow/random/monsters
|
||||
modules = list(/datum/map_generator_module/bottom_layer/asteroid_turfs, \
|
||||
/datum/map_generator_module/border/asteroid_walls, \
|
||||
/datum/map_generator_module/splatter_layer/asteroid_walls, \
|
||||
/datum/map_generator_module/splatter_layer/asteroid_monsters)
|
||||
|
||||
/datum/mapGenerator/asteroid/filled
|
||||
modules = list(/datum/mapGeneratorModule/bottomLayer/asteroidWalls)
|
||||
/datum/map_generator/asteroid/filled
|
||||
modules = list(/datum/map_generator_module/bottom_layer/asteroid_walls)
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
|
||||
//Exists primarily as a test type.
|
||||
|
||||
/datum/mapGenerator/nature
|
||||
modules = list(/datum/mapGeneratorModule/bottomLayer/grassTurfs, \
|
||||
/datum/mapGeneratorModule/pineTrees, \
|
||||
/datum/mapGeneratorModule/deadTrees, \
|
||||
/datum/mapGeneratorModule/randBushes, \
|
||||
/datum/mapGeneratorModule/randRocks, \
|
||||
/datum/mapGeneratorModule/denseLayer/grassTufts)
|
||||
/datum/map_generator/nature
|
||||
modules = list(/datum/map_generator_module/bottom_layer/grass_turfs, \
|
||||
/datum/map_generator_module/pine_trees, \
|
||||
/datum/map_generator_module/dead_trees, \
|
||||
/datum/map_generator_module/rand_bushes, \
|
||||
/datum/map_generator_module/rand_rocks, \
|
||||
/datum/map_generator_module/dense_layer/grass_tufts)
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
// Modules
|
||||
|
||||
/datum/mapGeneratorModule/bottomLayer/syndieFloor
|
||||
/datum/map_generator_module/bottom_layer/syndie_floor
|
||||
spawnableTurfs = list(/turf/simulated/floor/mineral/plastitanium/red = 100)
|
||||
|
||||
/datum/mapGeneratorModule/border/syndieWalls
|
||||
/datum/map_generator_module/border/syndie_walls
|
||||
spawnableAtoms = list()
|
||||
spawnableTurfs = list(/turf/simulated/wall/r_wall = 100)
|
||||
|
||||
|
||||
/datum/mapGeneratorModule/syndieFurniture
|
||||
/datum/map_generator_module/syndie_furniture
|
||||
clusterCheckFlags = MAP_GENERATOR_CLUSTER_CHECK_SAME_ATOMS
|
||||
spawnableTurfs = list()
|
||||
spawnableAtoms = list(/obj/structure/table = 20,/obj/structure/chair = 15,/obj/structure/chair/stool = 10, \
|
||||
/obj/structure/computerframe = 15, /obj/item/storage/toolbox/syndicate = 15 ,\
|
||||
/obj/structure/closet/syndicate = 25)
|
||||
|
||||
/datum/mapGeneratorModule/splatterLayer/syndieMobs
|
||||
/datum/map_generator_module/splatter_layer/syndie_mobs
|
||||
clusterCheckFlags = MAP_GENERATOR_CLUSTER_CHECK_SAME_ATOMS
|
||||
spawnableAtoms = list(/mob/living/simple_animal/hostile/syndicate = 30, \
|
||||
/mob/living/simple_animal/hostile/syndicate/melee = 20, \
|
||||
@@ -26,26 +26,26 @@
|
||||
// Generators
|
||||
|
||||
/// walls and floor only
|
||||
/datum/mapGenerator/syndicate/empty
|
||||
modules = list(/datum/mapGeneratorModule/bottomLayer/syndieFloor, \
|
||||
/datum/mapGeneratorModule/border/syndieWalls,\
|
||||
/datum/mapGeneratorModule/bottomLayer/repressurize)
|
||||
/datum/map_generator/syndicate/empty
|
||||
modules = list(/datum/map_generator_module/bottom_layer/syndie_floor, \
|
||||
/datum/map_generator_module/border/syndie_walls,\
|
||||
/datum/map_generator_module/bottom_layer/repressurize)
|
||||
|
||||
/datum/mapGenerator/syndicate/mobsonly
|
||||
modules = list(/datum/mapGeneratorModule/bottomLayer/syndieFloor, \
|
||||
/datum/mapGeneratorModule/border/syndieWalls,\
|
||||
/datum/mapGeneratorModule/splatterLayer/syndieMobs, \
|
||||
/datum/mapGeneratorModule/bottomLayer/repressurize)
|
||||
/datum/map_generator/syndicate/mobsonly
|
||||
modules = list(/datum/map_generator_module/bottom_layer/syndie_floor, \
|
||||
/datum/map_generator_module/border/syndie_walls,\
|
||||
/datum/map_generator_module/splatter_layer/syndie_mobs, \
|
||||
/datum/map_generator_module/bottom_layer/repressurize)
|
||||
|
||||
/datum/mapGenerator/syndicate/furniture
|
||||
modules = list(/datum/mapGeneratorModule/bottomLayer/syndieFloor, \
|
||||
/datum/mapGeneratorModule/border/syndieWalls,\
|
||||
/datum/mapGeneratorModule/syndieFurniture, \
|
||||
/datum/mapGeneratorModule/bottomLayer/repressurize)
|
||||
/datum/map_generator/syndicate/furniture
|
||||
modules = list(/datum/map_generator_module/bottom_layer/syndie_floor, \
|
||||
/datum/map_generator_module/border/syndie_walls,\
|
||||
/datum/map_generator_module/syndie_furniture, \
|
||||
/datum/map_generator_module/bottom_layer/repressurize)
|
||||
|
||||
/datum/mapGenerator/syndicate/full
|
||||
modules = list(/datum/mapGeneratorModule/bottomLayer/syndieFloor, \
|
||||
/datum/mapGeneratorModule/border/syndieWalls,\
|
||||
/datum/mapGeneratorModule/syndieFurniture, \
|
||||
/datum/mapGeneratorModule/splatterLayer/syndieMobs, \
|
||||
/datum/mapGeneratorModule/bottomLayer/repressurize)
|
||||
/datum/map_generator/syndicate/full
|
||||
modules = list(/datum/map_generator_module/bottom_layer/syndie_floor, \
|
||||
/datum/map_generator_module/border/syndie_walls,\
|
||||
/datum/map_generator_module/syndie_furniture, \
|
||||
/datum/map_generator_module/splatter_layer/syndie_mobs, \
|
||||
/datum/map_generator_module/bottom_layer/repressurize)
|
||||
|
||||
@@ -487,7 +487,7 @@
|
||||
ammo_type = /obj/item/ammo_casing/shotgun/meteorslug
|
||||
|
||||
|
||||
/obj/item/ammo_box/magazine/m12g/XtrLrg
|
||||
/obj/item/ammo_box/magazine/m12g/xtr_lrg
|
||||
name = "\improper XL shotgun magazine (12g slugs)"
|
||||
desc = "An extra large drum magazine."
|
||||
icon_state = "m12gXlSl"
|
||||
@@ -495,12 +495,12 @@
|
||||
ammo_type = /obj/item/ammo_casing/shotgun
|
||||
max_ammo = 16
|
||||
|
||||
/obj/item/ammo_box/magazine/m12g/XtrLrg/buckshot
|
||||
/obj/item/ammo_box/magazine/m12g/xtr_lrg/buckshot
|
||||
name = "\improper XL shotgun magazine (12g buckshot)"
|
||||
icon_state = "m12gXlBs"
|
||||
ammo_type = /obj/item/ammo_casing/shotgun/buckshot
|
||||
|
||||
/obj/item/ammo_box/magazine/m12g/XtrLrg/dragon
|
||||
/obj/item/ammo_box/magazine/m12g/xtr_lrg/dragon
|
||||
name = "\improper XL shotgun magazine (12g dragon's breath)"
|
||||
icon_state = "m12gXlDb"
|
||||
ammo_type = /obj/item/ammo_casing/shotgun/incendiary/dragonsbreath
|
||||
|
||||
@@ -329,7 +329,7 @@
|
||||
. = ..()
|
||||
if(magazine)
|
||||
. += "[magazine.icon_state]"
|
||||
if(istype(magazine, /obj/item/ammo_box/magazine/m12g/XtrLrg))
|
||||
if(istype(magazine, /obj/item/ammo_box/magazine/m12g/xtr_lrg))
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
else
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
@@ -340,7 +340,7 @@
|
||||
icon_state = "bulldog[chambered ? "" : "-e"]"
|
||||
|
||||
/obj/item/gun/projectile/automatic/shotgun/bulldog/attackby(obj/item/A as obj, mob/user as mob, params)
|
||||
if(istype(A, /obj/item/ammo_box/magazine/m12g/XtrLrg))
|
||||
if(istype(A, /obj/item/ammo_box/magazine/m12g/xtr_lrg))
|
||||
if(isstorage(loc)) // To prevent inventory exploits
|
||||
var/obj/item/storage/Strg = loc
|
||||
if(Strg.max_w_class < WEIGHT_CLASS_BULKY)
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
item_state = "deagleg"
|
||||
|
||||
//APS Pistol//
|
||||
/obj/item/gun/projectile/automatic/pistol/APS
|
||||
/obj/item/gun/projectile/automatic/pistol/aps
|
||||
name = "stechkin APS pistol"
|
||||
desc = "A deadly automatic pistol produced by the USSP's State Armory. Uses 10mm ammo."
|
||||
icon_state = "aps"
|
||||
|
||||
@@ -134,7 +134,7 @@
|
||||
result_amount = 5
|
||||
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
|
||||
|
||||
/datum/chemical_reaction/kahluaVodka
|
||||
/datum/chemical_reaction/kahlua_vodka
|
||||
name = "KahluaVodka"
|
||||
id = "kahlauVodka"
|
||||
result = "kahlua"
|
||||
|
||||
@@ -716,7 +716,7 @@
|
||||
P.forceMove(get_turf(holder.my_atom))
|
||||
|
||||
//Rainbow :o)
|
||||
/datum/chemical_reaction/slimeRNG
|
||||
/datum/chemical_reaction/slime_rng
|
||||
name = "Random Core"
|
||||
id = "slimerng"
|
||||
result = null
|
||||
@@ -725,7 +725,7 @@
|
||||
required_other = TRUE
|
||||
required_container = /obj/item/slime_extract/rainbow
|
||||
|
||||
/datum/chemical_reaction/slimeRNG/on_reaction(datum/reagents/holder)
|
||||
/datum/chemical_reaction/slime_rng/on_reaction(datum/reagents/holder)
|
||||
SSblackbox.record_feedback("tally", "slime_cores_used", 1, type)
|
||||
var/mob/living/simple_animal/slime/random/S = new (get_turf(holder.my_atom))
|
||||
S.visible_message("<span class='danger'>Infused with plasma, the core begins to quiver and grow, and a new baby slime emerges from it!</span>")
|
||||
|
||||
@@ -149,7 +149,7 @@
|
||||
//////////////////////////////
|
||||
// MARK: CMO HYPO
|
||||
//////////////////////////////
|
||||
/obj/item/reagent_containers/hypospray/CMO
|
||||
/obj/item/reagent_containers/hypospray/cmo
|
||||
name = "advanced hypospray"
|
||||
desc = "Nanotrasen's own, reverse-engineered and improved version of DeForest's hypospray."
|
||||
list_reagents = list("omnizine" = 30)
|
||||
@@ -157,11 +157,11 @@
|
||||
penetrate_thick = TRUE
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
|
||||
|
||||
/obj/item/reagent_containers/hypospray/CMO/Initialize(mapload)
|
||||
/obj/item/reagent_containers/hypospray/cmo/Initialize(mapload)
|
||||
. = ..()
|
||||
RegisterSignal(src, COMSIG_PARENT_QDELETING, PROC_REF(alert_admins_on_destroy))
|
||||
|
||||
/obj/item/reagent_containers/hypospray/CMO/examine_more(mob/user)
|
||||
/obj/item/reagent_containers/hypospray/cmo/examine_more(mob/user)
|
||||
. = ..()
|
||||
. += "The DeForest Medical Corporation's hypospray is a highly successful medical device currently under patent protection. Naturally, this has not stopped Nanotrasen from taking the design and tinkering with it."
|
||||
. += ""
|
||||
|
||||
@@ -190,22 +190,22 @@
|
||||
blood_type = pick("A+", "A-", "B+", "B-", "O+", "O-")
|
||||
return ..()
|
||||
|
||||
/obj/item/reagent_containers/iv_bag/blood/APlus
|
||||
/obj/item/reagent_containers/iv_bag/blood/a_plus
|
||||
blood_type = "A+"
|
||||
|
||||
/obj/item/reagent_containers/iv_bag/blood/AMinus
|
||||
/obj/item/reagent_containers/iv_bag/blood/a_minus
|
||||
blood_type = "A-"
|
||||
|
||||
/obj/item/reagent_containers/iv_bag/blood/BPlus
|
||||
/obj/item/reagent_containers/iv_bag/blood/b_plus
|
||||
blood_type = "B+"
|
||||
|
||||
/obj/item/reagent_containers/iv_bag/blood/BMinus
|
||||
/obj/item/reagent_containers/iv_bag/blood/b_minus
|
||||
blood_type = "B-"
|
||||
|
||||
/obj/item/reagent_containers/iv_bag/blood/OPlus
|
||||
/obj/item/reagent_containers/iv_bag/blood/o_plus
|
||||
blood_type = "O+"
|
||||
|
||||
/obj/item/reagent_containers/iv_bag/blood/OMinus
|
||||
/obj/item/reagent_containers/iv_bag/blood/o_minus
|
||||
blood_type = "O-"
|
||||
|
||||
/obj/item/reagent_containers/iv_bag/blood/vox
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
if(PIPE_DISPOSALS_OUTLET)
|
||||
return /obj/structure/disposaloutlet
|
||||
if(PIPE_DISPOSALS_CHUTE)
|
||||
return /obj/machinery/disposal/deliveryChute
|
||||
return /obj/machinery/disposal/delivery_chute
|
||||
if(PIPE_DISPOSALS_SORT_RIGHT, PIPE_DISPOSALS_SORT_LEFT)
|
||||
return /obj/structure/disposalpipe/sortjunction
|
||||
return
|
||||
@@ -248,7 +248,7 @@
|
||||
|
||||
else if(ptype==PIPE_DISPOSALS_CHUTE) // Disposal outlet
|
||||
|
||||
var/obj/machinery/disposal/deliveryChute/P = new /obj/machinery/disposal/deliveryChute(src.loc)
|
||||
var/obj/machinery/disposal/delivery_chute/P = new /obj/machinery/disposal/delivery_chute(src.loc)
|
||||
src.transfer_fingerprints_to(P)
|
||||
P.dir = dir
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
/obj/machinery/disposal/Moved(atom/OldLoc, Dir)
|
||||
. = ..()
|
||||
eject()
|
||||
var/ptype = istype(src, /obj/machinery/disposal/deliveryChute) ? PIPE_DISPOSALS_CHUTE : PIPE_DISPOSALS_BIN //Check what disposaltype it is
|
||||
var/ptype = istype(src, /obj/machinery/disposal/delivery_chute) ? PIPE_DISPOSALS_CHUTE : PIPE_DISPOSALS_BIN //Check what disposaltype it is
|
||||
var/turf/T = OldLoc
|
||||
if(T.intact)
|
||||
var/turf/simulated/floor/F = T
|
||||
@@ -550,7 +550,7 @@
|
||||
for(var/mob/living/silicon/robot/syndicate/saboteur/R in src)
|
||||
wrapcheck = 1
|
||||
|
||||
for(var/obj/item/smallDelivery/O in src)
|
||||
for(var/obj/item/small_delivery/O in src)
|
||||
wrapcheck = 1
|
||||
|
||||
if(wrapcheck == 1)
|
||||
@@ -704,11 +704,11 @@
|
||||
var/mob/living/carbon/human/H = AM
|
||||
if(HAS_TRAIT(H, TRAIT_FAT)) // is a human and fat?
|
||||
has_fat_guy = TRUE // set flag on holder
|
||||
if(istype(AM, /obj/structure/bigDelivery) && !hasmob)
|
||||
var/obj/structure/bigDelivery/T = AM
|
||||
if(istype(AM, /obj/structure/big_delivery) && !hasmob)
|
||||
var/obj/structure/big_delivery/T = AM
|
||||
destinationTag = T.sortTag
|
||||
if(istype(AM, /obj/item/smallDelivery) && !hasmob)
|
||||
var/obj/item/smallDelivery/T = AM
|
||||
if(istype(AM, /obj/item/small_delivery) && !hasmob)
|
||||
var/obj/item/small_delivery/T = AM
|
||||
destinationTag = T.sortTag
|
||||
//Drones can mail themselves through maint.
|
||||
if(isdrone(AM))
|
||||
@@ -717,8 +717,8 @@
|
||||
if(istype(AM, /mob/living/silicon/robot/syndicate/saboteur))
|
||||
var/mob/living/silicon/robot/syndicate/saboteur/S = AM
|
||||
destinationTag = S.mail_destination
|
||||
if(istype(AM, /obj/item/shippingPackage) && !hasmob)
|
||||
var/obj/item/shippingPackage/sp = AM
|
||||
if(istype(AM, /obj/item/shipping_package) && !hasmob)
|
||||
var/obj/item/shipping_package/sp = AM
|
||||
if(sp.sealed) //only sealed packages get delivered to their intended destination
|
||||
destinationTag = sp.sortTag
|
||||
|
||||
@@ -1232,8 +1232,8 @@
|
||||
if(..())
|
||||
return
|
||||
|
||||
if(istype(I, /obj/item/destTagger))
|
||||
var/obj/item/destTagger/O = I
|
||||
if(istype(I, /obj/item/dest_tagger))
|
||||
var/obj/item/dest_tagger/O = I
|
||||
var/tag = uppertext(GLOB.TAGGERLOCATIONS[O.currTag])
|
||||
playsound(loc, 'sound/machines/twobeep.ogg', 100, 1)
|
||||
if(O.currTag == 1)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/structure/bigDelivery
|
||||
/obj/structure/big_delivery
|
||||
name = "large parcel"
|
||||
desc = "A big wrapped package."
|
||||
icon = 'icons/obj/storage.dmi'
|
||||
@@ -10,19 +10,19 @@
|
||||
var/giftwrapped = FALSE
|
||||
var/sortTag = 1
|
||||
|
||||
/obj/structure/bigDelivery/Destroy()
|
||||
/obj/structure/big_delivery/Destroy()
|
||||
var/turf/T = get_turf(src)
|
||||
for(var/atom/movable/AM in contents)
|
||||
AM.forceMove(T)
|
||||
return ..()
|
||||
|
||||
/obj/structure/bigDelivery/ex_act(severity)
|
||||
/obj/structure/big_delivery/ex_act(severity)
|
||||
for(var/atom/movable/AM in contents)
|
||||
AM.ex_act()
|
||||
CHECK_TICK
|
||||
..()
|
||||
|
||||
/obj/structure/bigDelivery/attack_hand(mob/user as mob)
|
||||
/obj/structure/big_delivery/attack_hand(mob/user as mob)
|
||||
playsound(loc, 'sound/items/poster_ripped.ogg', 50, 1)
|
||||
if(wrapped)
|
||||
wrapped.forceMove(get_turf(src))
|
||||
@@ -35,9 +35,9 @@
|
||||
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/bigDelivery/attackby(obj/item/W as obj, mob/user as mob, params)
|
||||
if(istype(W, /obj/item/destTagger))
|
||||
var/obj/item/destTagger/O = W
|
||||
/obj/structure/big_delivery/attackby(obj/item/W as obj, mob/user as mob, params)
|
||||
if(istype(W, /obj/item/dest_tagger))
|
||||
var/obj/item/dest_tagger/O = W
|
||||
|
||||
if(sortTag != O.currTag)
|
||||
var/tag = uppertext(GLOB.TAGGERLOCATIONS[O.currTag])
|
||||
@@ -45,8 +45,8 @@
|
||||
sortTag = O.currTag
|
||||
playsound(loc, 'sound/machines/twobeep.ogg', 100, 1)
|
||||
|
||||
else if(istype(W, /obj/item/shippingPackage))
|
||||
var/obj/item/shippingPackage/sp = W
|
||||
else if(istype(W, /obj/item/shipping_package))
|
||||
var/obj/item/shipping_package/sp = W
|
||||
if(sp.sealed)
|
||||
return
|
||||
else
|
||||
@@ -74,7 +74,7 @@
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/smallDelivery
|
||||
/obj/item/small_delivery
|
||||
name = "small parcel"
|
||||
desc = "A small wrapped package."
|
||||
icon = 'icons/obj/storage.dmi'
|
||||
@@ -83,19 +83,19 @@
|
||||
var/giftwrapped = FALSE
|
||||
var/sortTag = 1
|
||||
|
||||
/obj/item/smallDelivery/ex_act(severity)
|
||||
/obj/item/small_delivery/ex_act(severity)
|
||||
for(var/atom/movable/AM in contents)
|
||||
AM.ex_act()
|
||||
CHECK_TICK
|
||||
..()
|
||||
|
||||
/obj/item/smallDelivery/emp_act(severity)
|
||||
/obj/item/small_delivery/emp_act(severity)
|
||||
..()
|
||||
for(var/i in contents)
|
||||
var/atom/A = i
|
||||
A.emp_act(severity)
|
||||
|
||||
/obj/item/smallDelivery/attack_self(mob/user)
|
||||
/obj/item/small_delivery/attack_self(mob/user)
|
||||
if(wrapped?.loc == src) //sometimes items can disappear. For example, bombs. --rastaf0
|
||||
wrapped.forceMove(get_turf(src))
|
||||
if(ishuman(user))
|
||||
@@ -103,9 +103,9 @@
|
||||
playsound(src, 'sound/items/poster_ripped.ogg', 50, TRUE)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/smallDelivery/attackby(obj/item/W as obj, mob/user as mob, params)
|
||||
if(istype(W, /obj/item/destTagger))
|
||||
var/obj/item/destTagger/O = W
|
||||
/obj/item/small_delivery/attackby(obj/item/W as obj, mob/user as mob, params)
|
||||
if(istype(W, /obj/item/dest_tagger))
|
||||
var/obj/item/dest_tagger/O = W
|
||||
|
||||
if(sortTag != O.currTag)
|
||||
var/tag = uppertext(GLOB.TAGGERLOCATIONS[O.currTag])
|
||||
@@ -113,8 +113,8 @@
|
||||
sortTag = O.currTag
|
||||
playsound(loc, 'sound/machines/twobeep.ogg', 100, 1)
|
||||
|
||||
else if(istype(W, /obj/item/shippingPackage))
|
||||
var/obj/item/shippingPackage/sp = W
|
||||
else if(istype(W, /obj/item/shipping_package))
|
||||
var/obj/item/shipping_package/sp = W
|
||||
if(sp.sealed)
|
||||
return
|
||||
else
|
||||
@@ -139,7 +139,7 @@
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/stack/packageWrap
|
||||
/obj/item/stack/package_wrap
|
||||
name = "package wrapper"
|
||||
icon = 'icons/obj/stacks/miscellaneous.dmi'
|
||||
icon_state = "deliveryPaper"
|
||||
@@ -148,9 +148,9 @@
|
||||
amount = 25
|
||||
max_amount = 25
|
||||
resistance_flags = FLAMMABLE
|
||||
var/static/list/no_wrap = list(/obj/item/smallDelivery, /obj/structure/bigDelivery, /obj/item/evidencebag, /obj/structure/closet/body_bag)
|
||||
var/static/list/no_wrap = list(/obj/item/small_delivery, /obj/structure/big_delivery, /obj/item/evidencebag, /obj/structure/closet/body_bag)
|
||||
|
||||
/obj/item/stack/packageWrap/pre_attack(atom/A, mob/living/user, params)
|
||||
/obj/item/stack/package_wrap/pre_attack(atom/A, mob/living/user, params)
|
||||
. = ..()
|
||||
if(!in_range(A, user))
|
||||
return
|
||||
@@ -162,10 +162,10 @@
|
||||
if(is_type_in_list(target, no_wrap))
|
||||
return
|
||||
|
||||
if(istype(target, /obj/item/stack/packageWrap) && user.a_intent != INTENT_HARM)
|
||||
if(istype(target, /obj/item/stack/package_wrap) && user.a_intent != INTENT_HARM)
|
||||
return
|
||||
|
||||
if(is_type_in_list(A.loc, list(/obj/item/smallDelivery, /obj/structure/bigDelivery)))
|
||||
if(is_type_in_list(A.loc, list(/obj/item/small_delivery, /obj/structure/big_delivery)))
|
||||
return
|
||||
|
||||
if(target.anchored)
|
||||
@@ -174,12 +174,12 @@
|
||||
if(target in user)
|
||||
return
|
||||
|
||||
if(isitem(target) && !(isstorage(target) && !istype(target,/obj/item/storage/box) && !istype(target, /obj/item/shippingPackage)))
|
||||
if(isitem(target) && !(isstorage(target) && !istype(target,/obj/item/storage/box) && !istype(target, /obj/item/shipping_package)))
|
||||
var/obj/item/O = target
|
||||
if(!use(1))
|
||||
return FALSE
|
||||
|
||||
var/obj/item/smallDelivery/P = new /obj/item/smallDelivery(get_turf(O.loc)) //Aaannd wrap it up!
|
||||
var/obj/item/small_delivery/P = new /obj/item/small_delivery(get_turf(O.loc)) //Aaannd wrap it up!
|
||||
if(!isturf(O.loc))
|
||||
if(user.client)
|
||||
user.client.screen -= O
|
||||
@@ -194,14 +194,14 @@
|
||||
add_fingerprint(user)
|
||||
|
||||
else if(istype(target, /obj/structure/closet/crate))
|
||||
var/obj/structure/bigDelivery/D = wrap_closet(target, user)
|
||||
var/obj/structure/big_delivery/D = wrap_closet(target, user)
|
||||
if(!D)
|
||||
return FALSE
|
||||
D.icon_state = "deliverycrate"
|
||||
|
||||
else if(istype(target, /obj/structure/closet))
|
||||
var/obj/structure/closet/C = target
|
||||
var/obj/structure/bigDelivery/D = wrap_closet(target, user)
|
||||
var/obj/structure/big_delivery/D = wrap_closet(target, user)
|
||||
if(!D)
|
||||
return FALSE
|
||||
D.init_welded = C.welded
|
||||
@@ -225,7 +225,7 @@
|
||||
return FALSE
|
||||
|
||||
// Separate proc to avoid copy pasting the code twice
|
||||
/obj/item/stack/packageWrap/proc/wrap_closet(obj/structure/closet/C, mob/user)
|
||||
/obj/item/stack/package_wrap/proc/wrap_closet(obj/structure/closet/C, mob/user)
|
||||
if(C.opened)
|
||||
return
|
||||
if(amount < 3)
|
||||
@@ -233,12 +233,12 @@
|
||||
return
|
||||
if(!do_after_once(user, 1.5 SECONDS, target = C) || C.opened || !use(3)) // Checking these again since it's after a delay
|
||||
return
|
||||
var/obj/structure/bigDelivery/P = new(get_turf(C))
|
||||
var/obj/structure/big_delivery/P = new(get_turf(C))
|
||||
P.wrapped = C
|
||||
C.loc = P
|
||||
return P
|
||||
|
||||
/obj/item/destTagger
|
||||
/obj/item/dest_tagger
|
||||
name = "destination tagger"
|
||||
desc = "Used to set the destination of properly wrapped packages."
|
||||
icon = 'icons/obj/device.dmi'
|
||||
@@ -254,25 +254,25 @@
|
||||
//disposals must always be 1, since anything that's untagged will automatically go to disposals, or sort_type = list(1) --Superxpdude
|
||||
var/datum/ui_module/destination_tagger/destination_tagger
|
||||
|
||||
/obj/item/destTagger/Initialize(mapload)
|
||||
/obj/item/dest_tagger/Initialize(mapload)
|
||||
. = ..()
|
||||
destination_tagger = new(src)
|
||||
|
||||
/obj/item/destTagger/Destroy()
|
||||
/obj/item/dest_tagger/Destroy()
|
||||
QDEL_NULL(destination_tagger)
|
||||
return ..()
|
||||
|
||||
/obj/item/destTagger/attack_self(mob/user)
|
||||
/obj/item/dest_tagger/attack_self(mob/user)
|
||||
add_fingerprint(user)
|
||||
ui_interact(user)
|
||||
|
||||
/obj/item/destTagger/ui_state(mob/user)
|
||||
/obj/item/dest_tagger/ui_state(mob/user)
|
||||
return GLOB.default_state
|
||||
|
||||
/obj/item/destTagger/ui_interact(mob/user, datum/tgui/ui = null)
|
||||
/obj/item/dest_tagger/ui_interact(mob/user, datum/tgui/ui = null)
|
||||
destination_tagger.ui_interact(user)
|
||||
|
||||
/obj/machinery/disposal/deliveryChute
|
||||
/obj/machinery/disposal/delivery_chute
|
||||
name = "delivery chute"
|
||||
desc = "A chute for big and small packages alike!"
|
||||
density = TRUE
|
||||
@@ -281,20 +281,20 @@
|
||||
deconstructs_to = PIPE_DISPOSALS_CHUTE
|
||||
var/can_deconstruct = FALSE
|
||||
|
||||
/obj/machinery/disposal/deliveryChute/Initialize(mapload)
|
||||
/obj/machinery/disposal/delivery_chute/Initialize(mapload)
|
||||
. = ..()
|
||||
|
||||
trunk = locate() in loc
|
||||
if(trunk)
|
||||
trunk.linked = src // link the pipe trunk to self
|
||||
|
||||
/obj/machinery/disposal/deliveryChute/interact()
|
||||
/obj/machinery/disposal/delivery_chute/interact()
|
||||
return
|
||||
|
||||
/obj/machinery/disposal/deliveryChute/update()
|
||||
/obj/machinery/disposal/delivery_chute/update()
|
||||
return
|
||||
|
||||
/obj/machinery/disposal/deliveryChute/CanPass(atom/movable/mover, turf/target)
|
||||
/obj/machinery/disposal/delivery_chute/CanPass(atom/movable/mover, turf/target)
|
||||
// If the mover is a thrownthing passing through space, remove its thrown datum,
|
||||
// ingest it like normal, and mark the chute as not passible.
|
||||
// This prevents the mover from Entering the chute's turf
|
||||
@@ -307,7 +307,7 @@
|
||||
|
||||
. = ..()
|
||||
|
||||
/obj/machinery/disposal/deliveryChute/Bumped(atom/movable/AM) //Go straight into the chute
|
||||
/obj/machinery/disposal/delivery_chute/Bumped(atom/movable/AM) //Go straight into the chute
|
||||
if(isprojectile(AM) || isAI(AM) || QDELETED(AM))
|
||||
return
|
||||
|
||||
@@ -336,17 +336,17 @@
|
||||
M.loc = src
|
||||
flush()
|
||||
|
||||
/obj/machinery/disposal/deliveryChute/flush()
|
||||
/obj/machinery/disposal/delivery_chute/flush()
|
||||
flushing = 1
|
||||
flick("intake-closing", src)
|
||||
var/deliveryCheck = 0
|
||||
var/obj/structure/disposalholder/H = new(src) // virtual holder object which actually
|
||||
// travels through the pipes.
|
||||
for(var/obj/structure/bigDelivery/O in src)
|
||||
for(var/obj/structure/big_delivery/O in src)
|
||||
deliveryCheck = 1
|
||||
for(var/obj/item/smallDelivery/O in src)
|
||||
for(var/obj/item/small_delivery/O in src)
|
||||
deliveryCheck = 1
|
||||
for(var/obj/item/shippingPackage/O in src)
|
||||
for(var/obj/item/shipping_package/O in src)
|
||||
deliveryCheck = 1
|
||||
if(!O.sealed) //unsealed shipping packages will default to disposals
|
||||
O.sortTag = 1
|
||||
@@ -370,14 +370,14 @@
|
||||
update()
|
||||
return
|
||||
|
||||
/obj/machinery/disposal/deliveryChute/screwdriver_act(mob/user, obj/item/I)
|
||||
/obj/machinery/disposal/delivery_chute/screwdriver_act(mob/user, obj/item/I)
|
||||
. = TRUE
|
||||
if(!I.use_tool(src, user, 0, volume = I.tool_volume))
|
||||
return
|
||||
can_deconstruct = !can_deconstruct
|
||||
to_chat(user, "You [can_deconstruct ? "unfasten": "fasten"] the screws around the power connection.")
|
||||
|
||||
/obj/machinery/disposal/deliveryChute/welder_act(mob/user, obj/item/I)
|
||||
/obj/machinery/disposal/delivery_chute/welder_act(mob/user, obj/item/I)
|
||||
. = TRUE
|
||||
if(!can_deconstruct)
|
||||
return
|
||||
@@ -396,7 +396,7 @@
|
||||
C.density = TRUE
|
||||
qdel(src)
|
||||
|
||||
/obj/item/shippingPackage
|
||||
/obj/item/shipping_package
|
||||
name = "Shipping package"
|
||||
desc = "A pre-labeled package for shipping an item to coworkers."
|
||||
icon = 'icons/obj/boxes.dmi'
|
||||
@@ -405,7 +405,7 @@
|
||||
var/sortTag = 1
|
||||
var/sealed = 0
|
||||
|
||||
/obj/item/shippingPackage/attackby(obj/item/O, mob/user, params)
|
||||
/obj/item/shipping_package/attackby(obj/item/O, mob/user, params)
|
||||
if(sealed)
|
||||
if(is_pen(O))
|
||||
var/str = tgui_input_text(user, "Intended recipient?", "Address", max_length = MAX_NAME_LEN)
|
||||
@@ -418,7 +418,7 @@
|
||||
if(wrapped)
|
||||
to_chat(user, "<span class='notice'>[src] already contains \a [wrapped].</span>")
|
||||
return
|
||||
if(isitem(O) && !isstorage(O) && !istype(O, /obj/item/shippingPackage))
|
||||
if(isitem(O) && !isstorage(O) && !istype(O, /obj/item/shipping_package))
|
||||
if(!user.canUnEquip(O))
|
||||
to_chat(user, "<span class='warning'>[O] is stuck to your hand, you cannot put it in [src]!</span>")
|
||||
return
|
||||
@@ -432,7 +432,7 @@
|
||||
add_fingerprint(usr)
|
||||
to_chat(user, "<span class='notice'>You put [O] in [src].</span>")
|
||||
|
||||
/obj/item/shippingPackage/attack_self(mob/user)
|
||||
/obj/item/shipping_package/attack_self(mob/user)
|
||||
if(sealed)
|
||||
to_chat(user, "<span class='notice'>You tear open [src], dropping the contents onto the floor.</span>")
|
||||
playsound(loc, 'sound/items/poster_ripped.ogg', 50, 1)
|
||||
@@ -458,7 +458,7 @@
|
||||
user.unEquip(src)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/shippingPackage/update_desc()
|
||||
/obj/item/shipping_package/update_desc()
|
||||
. = ..()
|
||||
desc = "A pre-labeled package for shipping an item to coworkers."
|
||||
if(sortTag)
|
||||
@@ -466,6 +466,6 @@
|
||||
if(!sealed)
|
||||
desc += " The package is not sealed."
|
||||
|
||||
/obj/item/shippingPackage/Destroy()
|
||||
/obj/item/shipping_package/Destroy()
|
||||
QDEL_NULL(wrapped)
|
||||
return ..()
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
req_tech = list("programming" = 5, "materials" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, MAT_GOLD = 100)
|
||||
build_path = /obj/item/aiModule/freeform
|
||||
build_path = /obj/item/ai_module/freeform
|
||||
category = list("AI Modules")
|
||||
|
||||
/datum/design/onecrewmember_module
|
||||
@@ -19,7 +19,7 @@
|
||||
req_tech = list("programming" = 6, "materials" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100)
|
||||
build_path = /obj/item/aiModule/oneCrewMember
|
||||
build_path = /obj/item/ai_module/one_crew_member
|
||||
category = list("AI Modules")
|
||||
|
||||
/datum/design/oxygen_module
|
||||
@@ -29,7 +29,7 @@
|
||||
req_tech = list("programming" = 4, "biotech" = 2, "materials" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, MAT_GOLD = 100)
|
||||
build_path = /obj/item/aiModule/oxygen
|
||||
build_path = /obj/item/ai_module/oxygen
|
||||
category = list("AI Modules")
|
||||
|
||||
/datum/design/protectstation_module
|
||||
@@ -39,7 +39,7 @@
|
||||
req_tech = list("programming" = 5, "materials" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, MAT_GOLD = 100)
|
||||
build_path = /obj/item/aiModule/protectStation
|
||||
build_path = /obj/item/ai_module/protect_station
|
||||
category = list("AI Modules")
|
||||
|
||||
/datum/design/purge_module
|
||||
@@ -49,7 +49,7 @@
|
||||
req_tech = list("programming" = 5, "materials" = 6)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100)
|
||||
build_path = /obj/item/aiModule/purge
|
||||
build_path = /obj/item/ai_module/purge
|
||||
category = list("AI Modules")
|
||||
|
||||
/datum/design/quarantine_module
|
||||
@@ -59,7 +59,7 @@
|
||||
req_tech = list("programming" = 3, "biotech" = 2, "materials" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, MAT_GOLD = 100)
|
||||
build_path = /obj/item/aiModule/quarantine
|
||||
build_path = /obj/item/ai_module/quarantine
|
||||
category = list("AI Modules")
|
||||
|
||||
/datum/design/reset_module
|
||||
@@ -69,7 +69,7 @@
|
||||
req_tech = list("programming" = 4, "materials" = 6)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, MAT_GOLD = 100)
|
||||
build_path = /obj/item/aiModule/reset
|
||||
build_path = /obj/item/ai_module/reset
|
||||
category = list("AI Modules")
|
||||
|
||||
/datum/design/safeguard_module
|
||||
@@ -79,7 +79,7 @@
|
||||
req_tech = list("programming" = 3, "materials" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, MAT_GOLD = 100)
|
||||
build_path = /obj/item/aiModule/safeguard
|
||||
build_path = /obj/item/ai_module/safeguard
|
||||
category = list("AI Modules")
|
||||
|
||||
/datum/design/antimov_module
|
||||
@@ -89,7 +89,7 @@
|
||||
req_tech = list("programming" = 5, "syndicate" = 2, "materials" = 5)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100)
|
||||
build_path = /obj/item/aiModule/antimov
|
||||
build_path = /obj/item/ai_module/antimov
|
||||
category = list("AI Modules")
|
||||
|
||||
/datum/design/pranksimov_module
|
||||
@@ -99,7 +99,7 @@
|
||||
req_tech = list("programming" = 5, "syndicate" = 2, "materials" = 5)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, MAT_BANANIUM = 100)
|
||||
build_path = /obj/item/aiModule/pranksimov
|
||||
build_path = /obj/item/ai_module/pranksimov
|
||||
category = list("AI Modules")
|
||||
|
||||
/datum/design/asimov
|
||||
@@ -109,7 +109,7 @@
|
||||
req_tech = list("programming" = 3, "materials" = 5)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100)
|
||||
build_path = /obj/item/aiModule/asimov
|
||||
build_path = /obj/item/ai_module/asimov
|
||||
category = list("AI Modules")
|
||||
|
||||
/datum/design/corporate_module
|
||||
@@ -119,7 +119,7 @@
|
||||
req_tech = list("programming" = 5, "materials" = 5)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100)
|
||||
build_path = /obj/item/aiModule/corp
|
||||
build_path = /obj/item/ai_module/corp
|
||||
category = list("AI Modules")
|
||||
|
||||
/datum/design/crewsimov
|
||||
@@ -129,7 +129,7 @@
|
||||
req_tech = list("programming" = 3, "materials" = 5)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100)
|
||||
build_path = /obj/item/aiModule/crewsimov
|
||||
build_path = /obj/item/ai_module/crewsimov
|
||||
category = list("AI Modules")
|
||||
|
||||
/datum/design/freeformcore_module
|
||||
@@ -139,7 +139,7 @@
|
||||
req_tech = list("programming" = 6, "materials" = 6)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100)
|
||||
build_path = /obj/item/aiModule/freeformcore
|
||||
build_path = /obj/item/ai_module/freeformcore
|
||||
category = list("AI Modules")
|
||||
|
||||
/datum/design/paladin_module
|
||||
@@ -149,7 +149,7 @@
|
||||
req_tech = list("programming" = 5, "materials" = 5)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100)
|
||||
build_path = /obj/item/aiModule/paladin
|
||||
build_path = /obj/item/ai_module/paladin
|
||||
category = list("AI Modules")
|
||||
|
||||
/datum/design/tyrant_module
|
||||
@@ -159,5 +159,5 @@
|
||||
req_tech = list("programming" = 5, "syndicate" = 2, "materials" = 5)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100)
|
||||
build_path = /obj/item/aiModule/tyrant
|
||||
build_path = /obj/item/ai_module/tyrant
|
||||
category = list("AI Modules")
|
||||
|
||||
@@ -404,7 +404,7 @@
|
||||
id = "fixovein"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(MAT_METAL = 5000, MAT_GLASS = 3000)
|
||||
build_path = /obj/item/FixOVein
|
||||
build_path = /obj/item/fix_o_vein
|
||||
category = list("initial", "Medical")
|
||||
|
||||
/datum/design/bonegel
|
||||
@@ -878,7 +878,7 @@
|
||||
id = "desttagger"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(MAT_METAL = 250, MAT_GLASS = 150)
|
||||
build_path = /obj/item/destTagger
|
||||
build_path = /obj/item/dest_tagger
|
||||
category = list("initial", "Electronics")
|
||||
|
||||
/datum/design/handlabeler
|
||||
|
||||
@@ -300,7 +300,7 @@
|
||||
desc = "An advanced FixOVein obtained through Abductor technology."
|
||||
id = "alien_fixovein"
|
||||
req_tech = list("biotech" = 4, "materials" = 4, "abductor" = 3)
|
||||
build_path = /obj/item/FixOVein/alien
|
||||
build_path = /obj/item/fix_o_vein/alien
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500)
|
||||
category = list("Medical")
|
||||
|
||||
@@ -230,7 +230,7 @@
|
||||
category = list("Stock Parts")
|
||||
lathe_time_factor = 0.2
|
||||
|
||||
/datum/design/RPED
|
||||
/datum/design/rped
|
||||
name = "Rapid Part Exchange Device"
|
||||
desc = "Special mechanical module made to store, sort, and apply standard machine parts."
|
||||
id = "rped"
|
||||
@@ -240,7 +240,7 @@
|
||||
build_path = /obj/item/storage/part_replacer
|
||||
category = list("Stock Parts")
|
||||
|
||||
/datum/design/BS_RPED
|
||||
/datum/design/bs_rped
|
||||
name = "Bluespace RPED"
|
||||
desc = "Powered by bluespace technology, this RPED variant can upgrade buildings from a distance, without needing to remove the panel first."
|
||||
id = "bs_rped"
|
||||
|
||||
@@ -482,7 +482,7 @@
|
||||
if(globalMalf > 16 && globalMalf < 35)
|
||||
visible_message("<span class='warning'>[src] melts [exp_on], ian-izing the air around it!</span>")
|
||||
throwSmoke(loc)
|
||||
var/mob/living/tracked_ian = locate(/mob/living/simple_animal/pet/dog/corgi/Ian) in GLOB.mob_living_list
|
||||
var/mob/living/tracked_ian = locate(/mob/living/simple_animal/pet/dog/corgi/ian) in GLOB.mob_living_list
|
||||
if(tracked_ian)
|
||||
throwSmoke(tracked_ian.loc)
|
||||
tracked_ian.loc = loc
|
||||
@@ -496,7 +496,7 @@
|
||||
if(globalMalf > 36 && globalMalf < 59)
|
||||
visible_message("<span class='warning'>[src] encounters a run-time error!</span>")
|
||||
throwSmoke(loc)
|
||||
var/mob/living/tracked_runtime = locate(/mob/living/simple_animal/pet/cat/Runtime) in GLOB.mob_living_list
|
||||
var/mob/living/tracked_runtime = locate(/mob/living/simple_animal/pet/cat/runtime) in GLOB.mob_living_list
|
||||
if(tracked_runtime)
|
||||
throwSmoke(tracked_runtime.loc)
|
||||
tracked_runtime.loc = loc
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
//Xenobio control console
|
||||
/mob/camera/aiEye/remote/xenobio
|
||||
/mob/camera/ai_eye/remote/xenobio
|
||||
visible_icon = 1
|
||||
icon = 'icons/obj/abductor.dmi'
|
||||
icon_state = "camera_target"
|
||||
@@ -8,12 +8,12 @@
|
||||
/// Area that the xenobio camera eye is allowed to travel
|
||||
var/allowed_area = null
|
||||
|
||||
/mob/camera/aiEye/remote/xenobio/Initialize(mapload)
|
||||
/mob/camera/ai_eye/remote/xenobio/Initialize(mapload)
|
||||
. = ..()
|
||||
var/area/A = get_area(loc)
|
||||
allowed_area = A.name
|
||||
|
||||
/mob/camera/aiEye/remote/xenobio/setLoc(t)
|
||||
/mob/camera/ai_eye/remote/xenobio/setLoc(t)
|
||||
var/area/new_area = get_area(t)
|
||||
if(!new_area)
|
||||
return
|
||||
@@ -80,7 +80,7 @@
|
||||
return ..()
|
||||
|
||||
/obj/machinery/computer/camera_advanced/xenobio/CreateEye()
|
||||
eyeobj = new /mob/camera/aiEye/remote/xenobio(get_turf(src))
|
||||
eyeobj = new /mob/camera/ai_eye/remote/xenobio(get_turf(src))
|
||||
eyeobj.origin = src
|
||||
eyeobj.visible_icon = TRUE
|
||||
eyeobj.acceleration = FALSE
|
||||
@@ -223,7 +223,7 @@
|
||||
if(!target || !ishuman(owner))
|
||||
return
|
||||
var/mob/living/carbon/human/C = owner
|
||||
var/mob/camera/aiEye/remote/xenobio/remote_eye = C.remote_control
|
||||
var/mob/camera/ai_eye/remote/xenobio/remote_eye = C.remote_control
|
||||
var/obj/machinery/computer/camera_advanced/xenobio/X = target
|
||||
|
||||
if(iswallturf(remote_eye.loc))
|
||||
@@ -243,7 +243,7 @@
|
||||
if(!target || !ishuman(owner))
|
||||
return
|
||||
var/mob/living/carbon/human/C = owner
|
||||
var/mob/camera/aiEye/remote/xenobio/remote_eye = C.remote_control
|
||||
var/mob/camera/ai_eye/remote/xenobio/remote_eye = C.remote_control
|
||||
var/obj/machinery/computer/camera_advanced/xenobio/X = target
|
||||
|
||||
if(GLOB.cameranet.checkTurfVis(remote_eye.loc))
|
||||
@@ -265,7 +265,7 @@
|
||||
if(!target || !ishuman(owner))
|
||||
return
|
||||
var/mob/living/carbon/human/C = owner
|
||||
var/mob/camera/aiEye/remote/xenobio/remote_eye = C.remote_control
|
||||
var/mob/camera/ai_eye/remote/xenobio/remote_eye = C.remote_control
|
||||
var/obj/machinery/computer/camera_advanced/xenobio/X = target
|
||||
var/obj/machinery/monkey_recycler/recycler = X.connected_recycler
|
||||
|
||||
@@ -309,7 +309,7 @@
|
||||
if(!target || !ishuman(owner))
|
||||
return
|
||||
var/mob/living/carbon/human/C = owner
|
||||
var/mob/camera/aiEye/remote/xenobio/remote_eye = C.remote_control
|
||||
var/mob/camera/ai_eye/remote/xenobio/remote_eye = C.remote_control
|
||||
var/obj/machinery/computer/camera_advanced/xenobio/X = target
|
||||
var/obj/machinery/monkey_recycler/recycler = X.connected_recycler
|
||||
|
||||
@@ -334,7 +334,7 @@
|
||||
if(!target || !isliving(owner))
|
||||
return
|
||||
var/mob/living/C = owner
|
||||
var/mob/camera/aiEye/remote/xenobio/remote_eye = C.remote_control
|
||||
var/mob/camera/ai_eye/remote/xenobio/remote_eye = C.remote_control
|
||||
|
||||
if(GLOB.cameranet.checkTurfVis(remote_eye.loc))
|
||||
for(var/mob/living/simple_animal/slime/S in remote_eye.loc)
|
||||
@@ -351,7 +351,7 @@
|
||||
return
|
||||
|
||||
var/mob/living/carbon/human/C = owner
|
||||
var/mob/camera/aiEye/remote/xenobio/remote_eye = C.remote_control
|
||||
var/mob/camera/ai_eye/remote/xenobio/remote_eye = C.remote_control
|
||||
var/obj/machinery/computer/camera_advanced/xenobio/X = target
|
||||
|
||||
if(QDELETED(X.current_potion))
|
||||
@@ -420,7 +420,7 @@
|
||||
to_chat(user, "<span class='warning'>Target is not near a camera. Cannot proceed.</span>")
|
||||
return
|
||||
var/mob/living/C = user
|
||||
var/mob/camera/aiEye/remote/xenobio/E = C.remote_control
|
||||
var/mob/camera/ai_eye/remote/xenobio/E = C.remote_control
|
||||
var/area/mobarea = get_area(S.loc)
|
||||
if(mobarea.name == E.allowed_area || mobarea.xenobiology_compatible)
|
||||
slime_scan(S, C)
|
||||
@@ -431,7 +431,7 @@
|
||||
to_chat(user, "<span class='warning'>Target is not near a camera. Cannot proceed.</span>")
|
||||
return
|
||||
var/mob/living/C = user
|
||||
var/mob/camera/aiEye/remote/xenobio/E = C.remote_control
|
||||
var/mob/camera/ai_eye/remote/xenobio/E = C.remote_control
|
||||
var/obj/machinery/computer/camera_advanced/xenobio/X = E.origin
|
||||
var/area/mobarea = get_area(S.loc)
|
||||
if(!X.current_potion)
|
||||
@@ -446,7 +446,7 @@
|
||||
to_chat(user, "<span class='warning'>Target is not near a camera. Cannot proceed.</span>")
|
||||
return
|
||||
var/mob/living/C = user
|
||||
var/mob/camera/aiEye/remote/xenobio/E = C.remote_control
|
||||
var/mob/camera/ai_eye/remote/xenobio/E = C.remote_control
|
||||
var/obj/machinery/computer/camera_advanced/xenobio/X = E.origin
|
||||
var/area/mobarea = get_area(S.loc)
|
||||
if(mobarea.name == E.allowed_area || mobarea.xenobiology_compatible)
|
||||
@@ -467,7 +467,7 @@
|
||||
to_chat(user, "<span class='warning'>Target is not near a camera. Cannot proceed.</span>")
|
||||
return
|
||||
var/mob/living/C = user
|
||||
var/mob/camera/aiEye/remote/xenobio/E = C.remote_control
|
||||
var/mob/camera/ai_eye/remote/xenobio/E = C.remote_control
|
||||
var/obj/machinery/computer/camera_advanced/xenobio/X = E.origin
|
||||
var/area/turfarea = get_area(T)
|
||||
if(iswallturf(T))
|
||||
@@ -483,7 +483,7 @@
|
||||
to_chat(user, "<span class='warning'>Target is not near a camera. Cannot proceed.</span>")
|
||||
return
|
||||
var/mob/living/C = user
|
||||
var/mob/camera/aiEye/remote/xenobio/E = C.remote_control
|
||||
var/mob/camera/ai_eye/remote/xenobio/E = C.remote_control
|
||||
var/obj/machinery/computer/camera_advanced/xenobio/X = E.origin
|
||||
var/obj/machinery/monkey_recycler/recycler = X.connected_recycler
|
||||
var/area/turfarea = get_area(T)
|
||||
@@ -517,7 +517,7 @@
|
||||
to_chat(user, "<span class='warning'>Target is not near a camera. Cannot proceed.</span>")
|
||||
return
|
||||
var/mob/living/C = user
|
||||
var/mob/camera/aiEye/remote/xenobio/E = C.remote_control
|
||||
var/mob/camera/ai_eye/remote/xenobio/E = C.remote_control
|
||||
var/obj/machinery/computer/camera_advanced/xenobio/X = E.origin
|
||||
var/area/mobarea = get_area(M.loc)
|
||||
var/obj/machinery/monkey_recycler/recycler = X.connected_recycler
|
||||
|
||||
@@ -140,7 +140,7 @@
|
||||
return FALSE //If you put an AI that isn't malf in it I'm shooting you
|
||||
if(interaction == AI_TRANS_TO_CARD) //No patrick you can't card the AI out of the computer.
|
||||
return
|
||||
AI.linked_core = new /obj/structure/AIcore/deactivated(AI.loc)
|
||||
AI.linked_core = new /obj/structure/ai_core/deactivated(AI.loc)
|
||||
ai_enter_emergency_computer(AI)
|
||||
|
||||
/obj/machinery/computer/emergency_shuttle/proc/ai_enter_emergency_computer(mob/living/silicon/ai/AI)
|
||||
|
||||
@@ -55,8 +55,8 @@
|
||||
shuttle_port = null
|
||||
return
|
||||
|
||||
eyeobj = new /mob/camera/aiEye/remote/shuttle_docker(get_turf(locate("landmark*Observer-Start")), src) // There should always be an observer start landmark
|
||||
var/mob/camera/aiEye/remote/shuttle_docker/the_eye = eyeobj
|
||||
eyeobj = new /mob/camera/ai_eye/remote/shuttle_docker(get_turf(locate("landmark*Observer-Start")), src) // There should always be an observer start landmark
|
||||
var/mob/camera/ai_eye/remote/shuttle_docker/the_eye = eyeobj
|
||||
the_eye.setDir(shuttle_port.dir)
|
||||
var/turf/origin = locate(shuttle_port.x + x_offset, shuttle_port.y + y_offset, shuttle_port.z)
|
||||
for(var/V in shuttle_port.shuttle_areas)
|
||||
@@ -76,7 +76,7 @@
|
||||
/obj/machinery/computer/camera_advanced/shuttle_docker/give_eye_control(mob/user)
|
||||
..()
|
||||
if(!QDELETED(user) && user.client)
|
||||
var/mob/camera/aiEye/remote/shuttle_docker/the_eye = eyeobj
|
||||
var/mob/camera/ai_eye/remote/shuttle_docker/the_eye = eyeobj
|
||||
var/list/to_add = list()
|
||||
to_add += the_eye.placement_images
|
||||
to_add += the_eye.placed_images
|
||||
@@ -89,7 +89,7 @@
|
||||
/obj/machinery/computer/camera_advanced/shuttle_docker/remove_eye_control(mob/living/user)
|
||||
..()
|
||||
if(!QDELETED(user) && user.client)
|
||||
var/mob/camera/aiEye/remote/shuttle_docker/the_eye = eyeobj
|
||||
var/mob/camera/ai_eye/remote/shuttle_docker/the_eye = eyeobj
|
||||
var/list/to_remove = list()
|
||||
to_remove += the_eye.placement_images
|
||||
to_remove += the_eye.placed_images
|
||||
@@ -103,7 +103,7 @@
|
||||
if(designating_target_loc || !current_user)
|
||||
return
|
||||
|
||||
var/mob/camera/aiEye/remote/shuttle_docker/the_eye = eyeobj
|
||||
var/mob/camera/ai_eye/remote/shuttle_docker/the_eye = eyeobj
|
||||
var/landing_clear = checkLandingSpot()
|
||||
if(designate_time && (landing_clear != SHUTTLE_DOCKER_BLOCKED))
|
||||
to_chat(current_user, "<span class='warning'>Targeting transit location, please wait [DisplayTimeText(designate_time)]...</span>")
|
||||
@@ -162,7 +162,7 @@
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/computer/camera_advanced/shuttle_docker/proc/rotateLandingSpot()
|
||||
var/mob/camera/aiEye/remote/shuttle_docker/the_eye = eyeobj
|
||||
var/mob/camera/ai_eye/remote/shuttle_docker/the_eye = eyeobj
|
||||
var/list/image_cache = the_eye.placement_images
|
||||
the_eye.setDir(turn(the_eye.dir, -90))
|
||||
for(var/i in 1 to length(image_cache))
|
||||
@@ -178,7 +178,7 @@
|
||||
checkLandingSpot()
|
||||
|
||||
/obj/machinery/computer/camera_advanced/shuttle_docker/proc/checkLandingSpot()
|
||||
var/mob/camera/aiEye/remote/shuttle_docker/the_eye = eyeobj
|
||||
var/mob/camera/ai_eye/remote/shuttle_docker/the_eye = eyeobj
|
||||
var/turf/eyeturf = get_turf(the_eye)
|
||||
if(!eyeturf)
|
||||
return SHUTTLE_DOCKER_BLOCKED
|
||||
@@ -253,7 +253,7 @@
|
||||
if(dock)
|
||||
jumpto_ports[dock.id] = TRUE
|
||||
|
||||
/mob/camera/aiEye/remote/shuttle_docker
|
||||
/mob/camera/ai_eye/remote/shuttle_docker
|
||||
visible_icon = FALSE
|
||||
use_static = FALSE
|
||||
simulated = FALSE
|
||||
@@ -262,11 +262,11 @@
|
||||
var/list/placement_images = list()
|
||||
var/list/placed_images = list()
|
||||
|
||||
/mob/camera/aiEye/remote/shuttle_docker/Initialize(mapload, obj/machinery/computer/camera_advanced/origin)
|
||||
/mob/camera/ai_eye/remote/shuttle_docker/Initialize(mapload, obj/machinery/computer/camera_advanced/origin)
|
||||
src.origin = origin
|
||||
return ..()
|
||||
|
||||
/mob/camera/aiEye/remote/shuttle_docker/setLoc(T)
|
||||
/mob/camera/ai_eye/remote/shuttle_docker/setLoc(T)
|
||||
if(isspaceturf(get_turf(T)) || isspacearea(get_area(T)) || istype(get_area(T), /area/shuttle))
|
||||
..()
|
||||
var/obj/machinery/computer/camera_advanced/shuttle_docker/console = origin
|
||||
@@ -275,7 +275,7 @@
|
||||
else
|
||||
return
|
||||
|
||||
/mob/camera/aiEye/remote/shuttle_docker/update_remote_sight(mob/living/user)
|
||||
/mob/camera/ai_eye/remote/shuttle_docker/update_remote_sight(mob/living/user)
|
||||
user.sight = SEE_TURFS
|
||||
|
||||
..()
|
||||
@@ -290,7 +290,7 @@
|
||||
if(QDELETED(target) || !isliving(target))
|
||||
return
|
||||
var/mob/living/C = target
|
||||
var/mob/camera/aiEye/remote/remote_eye = C.remote_control
|
||||
var/mob/camera/ai_eye/remote/remote_eye = C.remote_control
|
||||
var/obj/machinery/computer/camera_advanced/shuttle_docker/origin = remote_eye.origin
|
||||
origin.rotateLandingSpot()
|
||||
|
||||
@@ -303,7 +303,7 @@
|
||||
if(QDELETED(target) || !isliving(target))
|
||||
return
|
||||
var/mob/living/C = target
|
||||
var/mob/camera/aiEye/remote/remote_eye = C.remote_control
|
||||
var/mob/camera/ai_eye/remote/remote_eye = C.remote_control
|
||||
var/obj/machinery/computer/camera_advanced/shuttle_docker/origin = remote_eye.origin
|
||||
origin.placeLandingSpot(target)
|
||||
|
||||
@@ -315,7 +315,7 @@
|
||||
if(QDELETED(target) || !isliving(target))
|
||||
return
|
||||
var/mob/living/C = target
|
||||
var/mob/camera/aiEye/remote/remote_eye = C.remote_control
|
||||
var/mob/camera/ai_eye/remote/remote_eye = C.remote_control
|
||||
var/obj/machinery/computer/camera_advanced/shuttle_docker/console = remote_eye.origin
|
||||
|
||||
playsound(console, 'sound/machines/terminal_prompt_deny.ogg', 25, 0)
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
/obj/item/clothing/head/collectable/rabbitears,
|
||||
/obj/item/clothing/head/collectable/wizard,
|
||||
/obj/item/clothing/head/collectable/hardhat,
|
||||
/obj/item/clothing/head/collectable/HoS,
|
||||
/obj/item/clothing/head/collectable/hos,
|
||||
/obj/item/clothing/head/collectable/thunderdome,
|
||||
/obj/item/clothing/head/collectable/swat,
|
||||
/obj/item/clothing/head/collectable/slime,
|
||||
|
||||
@@ -156,7 +156,7 @@
|
||||
cost = 100
|
||||
containername = "collector crate"
|
||||
|
||||
/datum/supply_packs/engineering/engine/PA
|
||||
/datum/supply_packs/engineering/engine/particle_accelerator
|
||||
name = "Particle Accelerator Crate"
|
||||
contains = list(/obj/structure/particle_accelerator/fuel_chamber,
|
||||
/obj/machinery/particle_accelerator/control_box,
|
||||
|
||||
@@ -129,12 +129,12 @@
|
||||
name = "Blood Pack Variety Crate"
|
||||
contains = list(/obj/item/reagent_containers/iv_bag,
|
||||
/obj/item/reagent_containers/iv_bag,
|
||||
/obj/item/reagent_containers/iv_bag/blood/APlus,
|
||||
/obj/item/reagent_containers/iv_bag/blood/AMinus,
|
||||
/obj/item/reagent_containers/iv_bag/blood/BPlus,
|
||||
/obj/item/reagent_containers/iv_bag/blood/BMinus,
|
||||
/obj/item/reagent_containers/iv_bag/blood/OPlus,
|
||||
/obj/item/reagent_containers/iv_bag/blood/OMinus,
|
||||
/obj/item/reagent_containers/iv_bag/blood/a_plus,
|
||||
/obj/item/reagent_containers/iv_bag/blood/a_minus,
|
||||
/obj/item/reagent_containers/iv_bag/blood/b_plus,
|
||||
/obj/item/reagent_containers/iv_bag/blood/b_minus,
|
||||
/obj/item/reagent_containers/iv_bag/blood/o_plus,
|
||||
/obj/item/reagent_containers/iv_bag/blood/o_minus,
|
||||
/obj/item/reagent_containers/iv_bag/slime,
|
||||
/obj/item/reagent_containers/iv_bag/blood/vox,
|
||||
/obj/machinery/iv_drip)
|
||||
@@ -148,7 +148,7 @@
|
||||
/obj/item/surgicaldrill,
|
||||
/obj/item/clothing/mask/breath/medical,
|
||||
/obj/item/tank/internals/anesthetic,
|
||||
/obj/item/FixOVein,
|
||||
/obj/item/fix_o_vein,
|
||||
/obj/item/hemostat,
|
||||
/obj/item/scalpel,
|
||||
/obj/item/bonegel,
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
/obj/item/camera_film,
|
||||
/obj/item/camera_film,
|
||||
/obj/item/storage/photo_album,
|
||||
/obj/item/stack/packageWrap,
|
||||
/obj/item/stack/package_wrap,
|
||||
/obj/item/reagent_containers/glass/paint/red,
|
||||
/obj/item/reagent_containers/glass/paint/green,
|
||||
/obj/item/reagent_containers/glass/paint/blue,
|
||||
@@ -331,7 +331,7 @@
|
||||
/obj/item/clothing/head/collectable/rabbitears,
|
||||
/obj/item/clothing/head/collectable/wizard,
|
||||
/obj/item/clothing/head/collectable/hardhat,
|
||||
/obj/item/clothing/head/collectable/HoS,
|
||||
/obj/item/clothing/head/collectable/hos,
|
||||
/obj/item/clothing/head/collectable/thunderdome,
|
||||
/obj/item/clothing/head/collectable/swat,
|
||||
/obj/item/clothing/head/collectable/slime,
|
||||
|
||||
@@ -269,7 +269,7 @@
|
||||
desc = "An alien surgical toolset, designed to be installed on the subject's arm."
|
||||
icon_state = "toolkit_surgical"
|
||||
origin_tech = "materials=5;engineering=5;plasmatech=5;powerstorage=4;abductor=2"
|
||||
contents = newlist(/obj/item/retractor/alien, /obj/item/hemostat/alien, /obj/item/cautery/alien, /obj/item/bonesetter/alien, /obj/item/scalpel/alien, /obj/item/circular_saw/alien, /obj/item/bonegel/alien, /obj/item/FixOVein/alien, /obj/item/surgicaldrill/alien)
|
||||
contents = newlist(/obj/item/retractor/alien, /obj/item/hemostat/alien, /obj/item/cautery/alien, /obj/item/bonesetter/alien, /obj/item/scalpel/alien, /obj/item/circular_saw/alien, /obj/item/bonegel/alien, /obj/item/fix_o_vein/alien, /obj/item/surgicaldrill/alien)
|
||||
action_icon = list(/datum/action/item_action/organ_action/toggle = 'icons/obj/abductor.dmi')
|
||||
action_icon_state = list(/datum/action/item_action/organ_action/toggle = "belt")
|
||||
|
||||
@@ -335,7 +335,7 @@
|
||||
name = "surgical toolset implant"
|
||||
desc = "A set of surgical tools hidden behind a concealed panel on the user's arm."
|
||||
icon_state = "toolkit_surgical"
|
||||
contents = newlist(/obj/item/retractor/augment, /obj/item/hemostat/augment, /obj/item/cautery/augment, /obj/item/bonesetter/augment, /obj/item/scalpel/augment, /obj/item/circular_saw/augment, /obj/item/bonegel/augment, /obj/item/FixOVein/augment, /obj/item/surgicaldrill/augment)
|
||||
contents = newlist(/obj/item/retractor/augment, /obj/item/hemostat/augment, /obj/item/cautery/augment, /obj/item/bonesetter/augment, /obj/item/scalpel/augment, /obj/item/circular_saw/augment, /obj/item/bonegel/augment, /obj/item/fix_o_vein/augment, /obj/item/surgicaldrill/augment)
|
||||
origin_tech = "materials=3;engineering=3;biotech=3;programming=2;magnets=3"
|
||||
action_icon = list(/datum/action/item_action/organ_action/toggle = 'icons/obj/storage.dmi')
|
||||
action_icon_state = list(/datum/action/item_action/organ_action/toggle = "duffel-med")
|
||||
|
||||
@@ -166,8 +166,8 @@ GLOBAL_DATUM_INIT(multispin_words, /regex, regex("like a record baby"))
|
||||
var/mob/living/carbon/human/H = L
|
||||
if(H.check_ear_prot() >= HEARING_PROTECTION_TOTAL)
|
||||
continue
|
||||
if(istype(L, /mob/camera/aiEye))
|
||||
var/mob/camera/aiEye/ai_eye = L
|
||||
if(istype(L, /mob/camera/ai_eye))
|
||||
var/mob/camera/ai_eye/ai_eye = L
|
||||
if(ai_eye.relay_speech && ai_eye.ai)
|
||||
listeners += ai_eye.ai
|
||||
else
|
||||
|
||||
@@ -273,7 +273,7 @@
|
||||
/obj/item/bonegel/augment
|
||||
toolspeed = 0.5
|
||||
|
||||
/obj/item/FixOVein
|
||||
/obj/item/fix_o_vein
|
||||
name = "FixOVein"
|
||||
desc = "An advanced medical device which uses an array of manipulators to reconnect and repair ruptured blood vessels."
|
||||
icon = 'icons/obj/surgery.dmi'
|
||||
@@ -286,11 +286,11 @@
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
tool_behaviour = TOOL_FIXOVEIN
|
||||
|
||||
/obj/item/FixOVein/Initialize(mapload)
|
||||
/obj/item/fix_o_vein/Initialize(mapload)
|
||||
. = ..()
|
||||
ADD_TRAIT(src, TRAIT_SURGICAL, ROUNDSTART_TRAIT)
|
||||
|
||||
/obj/item/FixOVein/augment
|
||||
/obj/item/fix_o_vein/augment
|
||||
toolspeed = 0.5
|
||||
|
||||
/obj/item/bonesetter
|
||||
|
||||
@@ -41,8 +41,8 @@
|
||||
playsound(host, 'sound/machines/terminal_select.ogg', 15, TRUE)
|
||||
. = TRUE
|
||||
// Handle setting tags (and flushing for drones)
|
||||
if(istype(host, /obj/item/destTagger))
|
||||
var/obj/item/destTagger/O = host
|
||||
if(istype(host, /obj/item/dest_tagger))
|
||||
var/obj/item/dest_tagger/O = host
|
||||
O.currTag = my_tag
|
||||
else if(isrobot(host))
|
||||
var/mob/living/silicon/robot/R = host
|
||||
|
||||
Reference in New Issue
Block a user