mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-07-20 11:35:19 +01:00
Merge branch 'master' into kk-adminships
This commit is contained in:
@@ -181,7 +181,6 @@ var/list/admin_verbs_server = list(
|
||||
/datum/admins/proc/toggle_space_ninja,
|
||||
/client/proc/toggle_random_events,
|
||||
/client/proc/check_customitem_activity,
|
||||
/client/proc/nanomapgen_DumpImage,
|
||||
/client/proc/modify_server_news,
|
||||
/client/proc/recipe_dump,
|
||||
/client/proc/panicbunker,
|
||||
|
||||
@@ -6,36 +6,36 @@
|
||||
"tgui.bundle.css" = 'tgui/packages/tgui/public/tgui.bundle.css',
|
||||
)
|
||||
|
||||
// /datum/asset/simple/headers
|
||||
// assets = list(
|
||||
// "alarm_green.gif" = 'icons/program_icons/alarm_green.gif',
|
||||
// "alarm_red.gif" = 'icons/program_icons/alarm_red.gif',
|
||||
// "batt_5.gif" = 'icons/program_icons/batt_5.gif',
|
||||
// "batt_20.gif" = 'icons/program_icons/batt_20.gif',
|
||||
// "batt_40.gif" = 'icons/program_icons/batt_40.gif',
|
||||
// "batt_60.gif" = 'icons/program_icons/batt_60.gif',
|
||||
// "batt_80.gif" = 'icons/program_icons/batt_80.gif',
|
||||
// "batt_100.gif" = 'icons/program_icons/batt_100.gif',
|
||||
// "charging.gif" = 'icons/program_icons/charging.gif',
|
||||
// "downloader_finished.gif" = 'icons/program_icons/downloader_finished.gif',
|
||||
// "downloader_running.gif" = 'icons/program_icons/downloader_running.gif',
|
||||
// "ntnrc_idle.gif" = 'icons/program_icons/ntnrc_idle.gif',
|
||||
// "ntnrc_new.gif" = 'icons/program_icons/ntnrc_new.gif',
|
||||
// "power_norm.gif" = 'icons/program_icons/power_norm.gif',
|
||||
// "power_warn.gif" = 'icons/program_icons/power_warn.gif',
|
||||
// "sig_high.gif" = 'icons/program_icons/sig_high.gif',
|
||||
// "sig_low.gif" = 'icons/program_icons/sig_low.gif',
|
||||
// "sig_lan.gif" = 'icons/program_icons/sig_lan.gif',
|
||||
// "sig_none.gif" = 'icons/program_icons/sig_none.gif',
|
||||
// "smmon_0.gif" = 'icons/program_icons/smmon_0.gif',
|
||||
// "smmon_1.gif" = 'icons/program_icons/smmon_1.gif',
|
||||
// "smmon_2.gif" = 'icons/program_icons/smmon_2.gif',
|
||||
// "smmon_3.gif" = 'icons/program_icons/smmon_3.gif',
|
||||
// "smmon_4.gif" = 'icons/program_icons/smmon_4.gif',
|
||||
// "smmon_5.gif" = 'icons/program_icons/smmon_5.gif',
|
||||
// "smmon_6.gif" = 'icons/program_icons/smmon_6.gif',
|
||||
// "borg_mon.gif" = 'icons/program_icons/borg_mon.gif'
|
||||
// )
|
||||
/datum/asset/simple/headers
|
||||
assets = list(
|
||||
"alarm_green.gif" = 'icons/program_icons/alarm_green.gif',
|
||||
"alarm_red.gif" = 'icons/program_icons/alarm_red.gif',
|
||||
"batt_5.gif" = 'icons/program_icons/batt_5.gif',
|
||||
"batt_20.gif" = 'icons/program_icons/batt_20.gif',
|
||||
"batt_40.gif" = 'icons/program_icons/batt_40.gif',
|
||||
"batt_60.gif" = 'icons/program_icons/batt_60.gif',
|
||||
"batt_80.gif" = 'icons/program_icons/batt_80.gif',
|
||||
"batt_100.gif" = 'icons/program_icons/batt_100.gif',
|
||||
"charging.gif" = 'icons/program_icons/charging.gif',
|
||||
"downloader_finished.gif" = 'icons/program_icons/downloader_finished.gif',
|
||||
"downloader_running.gif" = 'icons/program_icons/downloader_running.gif',
|
||||
"ntnrc_idle.gif" = 'icons/program_icons/ntnrc_idle.gif',
|
||||
"ntnrc_new.gif" = 'icons/program_icons/ntnrc_new.gif',
|
||||
"power_norm.gif" = 'icons/program_icons/power_norm.gif',
|
||||
"power_warn.gif" = 'icons/program_icons/power_warn.gif',
|
||||
"sig_high.gif" = 'icons/program_icons/sig_high.gif',
|
||||
"sig_low.gif" = 'icons/program_icons/sig_low.gif',
|
||||
"sig_lan.gif" = 'icons/program_icons/sig_lan.gif',
|
||||
"sig_none.gif" = 'icons/program_icons/sig_none.gif',
|
||||
"smmon_0.gif" = 'icons/program_icons/smmon_0.gif',
|
||||
"smmon_1.gif" = 'icons/program_icons/smmon_1.gif',
|
||||
"smmon_2.gif" = 'icons/program_icons/smmon_2.gif',
|
||||
"smmon_3.gif" = 'icons/program_icons/smmon_3.gif',
|
||||
"smmon_4.gif" = 'icons/program_icons/smmon_4.gif',
|
||||
"smmon_5.gif" = 'icons/program_icons/smmon_5.gif',
|
||||
"smmon_6.gif" = 'icons/program_icons/smmon_6.gif',
|
||||
// "borg_mon.gif" = 'icons/program_icons/borg_mon.gif'
|
||||
)
|
||||
|
||||
// /datum/asset/simple/radar_assets
|
||||
// assets = list(
|
||||
@@ -206,15 +206,15 @@
|
||||
// "none_button.png" = 'html/none_button.png',
|
||||
// )
|
||||
|
||||
// /datum/asset/simple/arcade
|
||||
// assets = list(
|
||||
// "boss1.gif" = 'icons/UI_Icons/Arcade/boss1.gif',
|
||||
// "boss2.gif" = 'icons/UI_Icons/Arcade/boss2.gif',
|
||||
// "boss3.gif" = 'icons/UI_Icons/Arcade/boss3.gif',
|
||||
// "boss4.gif" = 'icons/UI_Icons/Arcade/boss4.gif',
|
||||
// "boss5.gif" = 'icons/UI_Icons/Arcade/boss5.gif',
|
||||
// "boss6.gif" = 'icons/UI_Icons/Arcade/boss6.gif',
|
||||
// )
|
||||
/datum/asset/simple/arcade
|
||||
assets = list(
|
||||
"boss1.gif" = 'icons/UI_Icons/Arcade/boss1.gif',
|
||||
"boss2.gif" = 'icons/UI_Icons/Arcade/boss2.gif',
|
||||
"boss3.gif" = 'icons/UI_Icons/Arcade/boss3.gif',
|
||||
"boss4.gif" = 'icons/UI_Icons/Arcade/boss4.gif',
|
||||
"boss5.gif" = 'icons/UI_Icons/Arcade/boss5.gif',
|
||||
"boss6.gif" = 'icons/UI_Icons/Arcade/boss6.gif',
|
||||
)
|
||||
|
||||
// /datum/asset/spritesheet/simple/achievements
|
||||
// name ="achievements"
|
||||
@@ -433,45 +433,6 @@
|
||||
// Insert("polycrystal", 'icons/obj/telescience.dmi', "polycrystal")
|
||||
// ..()
|
||||
|
||||
/datum/asset/nanoui
|
||||
var/list/common = list()
|
||||
|
||||
var/list/common_dirs = list(
|
||||
"nano/css/",
|
||||
"nano/images/",
|
||||
"nano/images/modular_computers/",
|
||||
"nano/js/"
|
||||
)
|
||||
var/list/template_dirs = list(
|
||||
"nano/templates/"
|
||||
)
|
||||
|
||||
/datum/asset/nanoui/register()
|
||||
// Crawl the directories to find files.
|
||||
for(var/path in common_dirs)
|
||||
var/list/filenames = flist(path)
|
||||
for(var/filename in filenames)
|
||||
if(copytext(filename, length(filename)) != "/") // Ignore directories.
|
||||
if(fexists(path + filename))
|
||||
common[filename] = fcopy_rsc(path + filename)
|
||||
register_asset(filename, common[filename])
|
||||
// Combine all templates into a single bundle.
|
||||
var/list/template_data = list()
|
||||
for(var/path in template_dirs)
|
||||
var/list/filenames = flist(path)
|
||||
for(var/filename in filenames)
|
||||
if(copytext(filename, length(filename) - 4) == ".tmpl") // Ignore directories.
|
||||
template_data[filename] = file2text(path + filename)
|
||||
var/template_bundle = "function nanouiTemplateBundle(){return [json_encode(template_data)];}"
|
||||
var/fname = "data/nano_templates_bundle.js"
|
||||
fdel(fname)
|
||||
text2file(template_bundle, fname)
|
||||
register_asset("nano_templates_bundle.js", fcopy_rsc(fname))
|
||||
fdel(fname)
|
||||
|
||||
/datum/asset/nanoui/send(client)
|
||||
send_asset_list(client, common)
|
||||
|
||||
//Pill sprites for UIs
|
||||
/datum/asset/chem_master
|
||||
var/assets = list()
|
||||
@@ -522,4 +483,31 @@
|
||||
|
||||
/datum/asset/spritesheet/sheetmaterials/register()
|
||||
InsertAll("", 'icons/obj/stacks.dmi')
|
||||
..()
|
||||
..()
|
||||
|
||||
// Nanomaps
|
||||
/datum/asset/simple/nanomaps
|
||||
// It REALLY doesnt matter too much if these arent up to date
|
||||
// They are relatively big
|
||||
assets = list(
|
||||
// VOREStation Edit: We don't need Southern Cross
|
||||
// "southern_cross_nanomap_z1.png" = 'icons/_nanomaps/southern_cross_nanomap_z1.png',
|
||||
// "southern_cross_nanomap_z10.png" = 'icons/_nanomaps/southern_cross_nanomap_z10.png',
|
||||
// "southern_cross_nanomap_z2.png" = 'icons/_nanomaps/southern_cross_nanomap_z2.png',
|
||||
// "southern_cross_nanomap_z3.png" = 'icons/_nanomaps/southern_cross_nanomap_z3.png',
|
||||
// "southern_cross_nanomap_z5.png" = 'icons/_nanomaps/southern_cross_nanomap_z5.png',
|
||||
// "southern_cross_nanomap_z6.png" = 'icons/_nanomaps/southern_cross_nanomap_z6.png',
|
||||
"tether_nanomap_z1.png" = 'icons/_nanomaps/tether_nanomap_z1.png',
|
||||
"tether_nanomap_z2.png" = 'icons/_nanomaps/tether_nanomap_z2.png',
|
||||
"tether_nanomap_z3.png" = 'icons/_nanomaps/tether_nanomap_z3.png',
|
||||
"tether_nanomap_z4.png" = 'icons/_nanomaps/tether_nanomap_z4.png',
|
||||
"tether_nanomap_z5.png" = 'icons/_nanomaps/tether_nanomap_z5.png',
|
||||
"tether_nanomap_z6.png" = 'icons/_nanomaps/tether_nanomap_z6.png',
|
||||
"tether_nanomap_z7.png" = 'icons/_nanomaps/tether_nanomap_z7.png',
|
||||
"tether_nanomap_z8.png" = 'icons/_nanomaps/tether_nanomap_z8.png',
|
||||
"tether_nanomap_z9.png" = 'icons/_nanomaps/tether_nanomap_z9.png',
|
||||
"tether_nanomap_z10.png" = 'icons/_nanomaps/tether_nanomap_z10.png',
|
||||
"tether_nanomap_z13.png" = 'icons/_nanomaps/tether_nanomap_z13.png',
|
||||
"tether_nanomap_z14.png" = 'icons/_nanomaps/tether_nanomap_z14.png',
|
||||
// VOREStation Edit End
|
||||
)
|
||||
@@ -391,4 +391,9 @@
|
||||
|
||||
/obj/structure/symbol/sa
|
||||
desc = "It looks like a right triangle with a dot to the side. It reminds you of a wooden strut between a wall and ceiling."
|
||||
icon_state = "sa"
|
||||
icon_state = "sa"
|
||||
|
||||
/obj/structure/symbol/maint
|
||||
name = "maintenance panel"
|
||||
desc = "This sign suggests that the wall it's attached to can be opened somehow."
|
||||
icon_state = "maintenance_panel"
|
||||
@@ -5,6 +5,16 @@
|
||||
slot = slot_glasses
|
||||
sort_category = "Glasses and Eyewear"
|
||||
|
||||
/datum/gear/eyes/eyepatchwhite
|
||||
display_name = "eyepatch (recolorable)"
|
||||
path = /obj/item/clothing/glasses/eyepatchwhite
|
||||
slot = slot_glasses
|
||||
sort_category = "Glasses and Eyewear"
|
||||
|
||||
/datum/gear/eyes/eyepatchwhite/New()
|
||||
..()
|
||||
gear_tweaks += gear_tweak_free_color_choice
|
||||
|
||||
/datum/gear/eyes/glasses
|
||||
display_name = "Glasses, prescription"
|
||||
path = /obj/item/clothing/glasses/regular
|
||||
|
||||
@@ -911,6 +911,13 @@
|
||||
ckeywhitelist = list("theskringdinger")
|
||||
character_name = list("Monty Kopic")
|
||||
|
||||
/datum/gear/fluff/shadow_laptop
|
||||
path = /obj/item/modular_computer/laptop/preset/custom_loadout/advanced/shadowlarkens
|
||||
display_name = "Shadow's Laptop"
|
||||
ckeywhitelist = list("tigercat2000")
|
||||
character_name = list("Shadow Larkens")
|
||||
cost = 5
|
||||
|
||||
/datum/gear/fluff/konor_medal
|
||||
path = /obj/item/clothing/accessory/medal/silver/unity
|
||||
display_name = "Konor's Unity Medal"
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
name = "clothing"
|
||||
siemens_coefficient = 0.9
|
||||
drop_sound = 'sound/items/drop/clothing.ogg'
|
||||
pickup_sound = 'sound/items/pickup/cloth.ogg'
|
||||
pickup_sound = 'sound/items/pickup/clothing.ogg'
|
||||
var/list/species_restricted = null //Only these species can wear this kit.
|
||||
var/gunshot_residue //Used by forensics.
|
||||
|
||||
@@ -435,6 +435,8 @@
|
||||
fingerprint_chance = 100
|
||||
punch_force = 2
|
||||
body_parts_covered = 0
|
||||
drop_sound = 'sound/items/drop/ring.ogg'
|
||||
pickup_sound = 'sound/items/pickup/ring.ogg'
|
||||
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
//Head
|
||||
@@ -573,6 +575,9 @@
|
||||
var/list/say_messages
|
||||
var/list/say_verbs
|
||||
|
||||
drop_sound = "generic_drop"
|
||||
pickup_sound = "generic_pickup"
|
||||
|
||||
/obj/item/clothing/mask/update_clothing_icon()
|
||||
if (ismob(src.loc))
|
||||
var/mob/M = src.loc
|
||||
@@ -733,6 +738,7 @@
|
||||
siemens_coefficient = 0.9
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
preserve_item = 1
|
||||
equip_sound = 'sound/items/jumpsuit_equip.ogg'
|
||||
|
||||
|
||||
sprite_sheets = list(
|
||||
|
||||
@@ -53,8 +53,8 @@
|
||||
desc = "A delicate golden chain worn by female skrell to decorate their head tails."
|
||||
icon_state = "skrell_chain"
|
||||
item_state_slots = list(slot_r_hand_str = "egg5", slot_l_hand_str = "egg5")
|
||||
drop_sound = 'sound/items/drop/accessory.ogg'
|
||||
pickup_sound = 'sound/items/pickup/accessory.ogg'
|
||||
drop_sound = 'sound/items/drop/ring.ogg'
|
||||
pickup_sound = 'sound/items/pickup/ring.ogg'
|
||||
|
||||
/obj/item/clothing/ears/skrell/chain/silver
|
||||
name = "Silver headtail chains"
|
||||
@@ -85,8 +85,8 @@
|
||||
desc = "Golden metallic bands worn by male skrell to adorn their head tails."
|
||||
icon_state = "skrell_band"
|
||||
item_state_slots = list(slot_r_hand_str = "egg5", slot_l_hand_str = "egg5")
|
||||
drop_sound = 'sound/items/drop/accessory.ogg'
|
||||
pickup_sound = 'sound/items/pickup/accessory.ogg'
|
||||
drop_sound = 'sound/items/drop/ring.ogg'
|
||||
pickup_sound = 'sound/items/pickup/ring.ogg'
|
||||
|
||||
/obj/item/clothing/ears/skrell/band/silver
|
||||
name = "Silver headtail bands"
|
||||
|
||||
@@ -199,6 +199,30 @@ BLIND // can't see anything
|
||||
icon_state = initial(icon_state)
|
||||
update_clothing_icon()
|
||||
|
||||
/obj/item/clothing/glasses/eyepatchwhite
|
||||
name = "eyepatch"
|
||||
desc = "A simple eyepatch made of a strip of cloth tied around the head."
|
||||
icon_state = "eyepatch_white"
|
||||
item_state_slots = list(slot_r_hand_str = "blindfold", slot_l_hand_str = "blindfold")
|
||||
body_parts_covered = 0
|
||||
var/eye = null
|
||||
drop_sound = 'sound/items/drop/gloves.ogg'
|
||||
pickup_sound = 'sound/items/pickup/gloves.ogg'
|
||||
|
||||
/obj/item/clothing/glasses/eyepatchwhite/verb/switcheye()
|
||||
set name = "Switch Eyepatch"
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
if(!istype(usr, /mob/living)) return
|
||||
if(usr.stat) return
|
||||
|
||||
eye = !eye
|
||||
if(eye)
|
||||
icon_state = "[icon_state]_1"
|
||||
else
|
||||
icon_state = initial(icon_state)
|
||||
update_clothing_icon()
|
||||
|
||||
/obj/item/clothing/glasses/monocle
|
||||
name = "monocle"
|
||||
desc = "Such a dapper eyepiece!"
|
||||
|
||||
@@ -8,8 +8,6 @@
|
||||
var/obj/item/clothing/glasses/hud/omni/hud = null
|
||||
var/mode = "civ"
|
||||
icon_state = "glasses"
|
||||
var/datum/nano_module/arscreen
|
||||
var/arscreen_path
|
||||
var/datum/tgui_module/tgarscreen
|
||||
var/tgarscreen_path
|
||||
var/flash_prot = 0 //0 for none, 1 for flash weapon protection, 2 for welder protection
|
||||
@@ -18,34 +16,24 @@
|
||||
|
||||
/obj/item/clothing/glasses/omnihud/New()
|
||||
..()
|
||||
if(arscreen_path)
|
||||
arscreen = new arscreen_path(src)
|
||||
if(tgarscreen_path)
|
||||
tgarscreen = new tgarscreen_path(src)
|
||||
|
||||
/obj/item/clothing/glasses/omnihud/Destroy()
|
||||
QDEL_NULL(arscreen)
|
||||
QDEL_NULL(tgarscreen)
|
||||
. = ..()
|
||||
|
||||
/obj/item/clothing/glasses/omnihud/dropped()
|
||||
if(arscreen)
|
||||
SSnanoui.close_uis(src)
|
||||
if(tgarscreen)
|
||||
SStgui.close_uis(src)
|
||||
..()
|
||||
|
||||
/obj/item/clothing/glasses/omnihud/emp_act(var/severity)
|
||||
if(arscreen)
|
||||
SSnanoui.close_uis(src)
|
||||
if(tgarscreen)
|
||||
SStgui.close_uis(src)
|
||||
var/disconnect_ar = arscreen
|
||||
var/disconnect_tgar = tgarscreen
|
||||
arscreen = null
|
||||
tgarscreen = null
|
||||
spawn(20 SECONDS)
|
||||
arscreen = disconnect_ar
|
||||
tgarscreen = disconnect_tgar
|
||||
|
||||
//extra fun for non-sci variants; a small chance flip the state to the dumb 3d glasses when EMP'd
|
||||
|
||||
@@ -37,6 +37,7 @@
|
||||
icon_state = "sunflower_crown"
|
||||
body_parts_covered = 0
|
||||
drop_sound = 'sound/items/drop/herb.ogg'
|
||||
pickup_sound = 'sound/items/pickup/herb.ogg'
|
||||
|
||||
/obj/item/clothing/head/lavender_crown
|
||||
name = "lavender crown"
|
||||
@@ -44,6 +45,7 @@
|
||||
icon_state = "lavender_crown"
|
||||
body_parts_covered = 0
|
||||
drop_sound = 'sound/items/drop/herb.ogg'
|
||||
pickup_sound = 'sound/items/pickup/herb.ogg'
|
||||
|
||||
/obj/item/clothing/head/poppy_crown
|
||||
name = "poppy crown"
|
||||
@@ -51,6 +53,7 @@
|
||||
icon_state = "poppy_crown"
|
||||
body_parts_covered = 0
|
||||
drop_sound = 'sound/items/drop/herb.ogg'
|
||||
pickup_sound = 'sound/items/pickup/herb.ogg'
|
||||
|
||||
/obj/item/clothing/head/rose_crown
|
||||
name = "rose crown"
|
||||
@@ -58,3 +61,4 @@
|
||||
icon_state = "poppy_crown"
|
||||
body_parts_covered = 0
|
||||
drop_sound = 'sound/items/drop/herb.ogg'
|
||||
pickup_sound = 'sound/items/pickup/herb.ogg'
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
desc = "A nice hair pin."
|
||||
slot_flags = SLOT_HEAD | SLOT_EARS
|
||||
body_parts_covered = 0
|
||||
drop_sound = 'sound/items/drop/ring.ogg'
|
||||
pickup_sound = 'sound/items/pickup/ring.ogg'
|
||||
drop_sound = 'sound/items/drop/accessory.ogg'
|
||||
pickup_sound = 'sound/items/pickup/accessory.ogg'
|
||||
|
||||
/obj/item/clothing/head/pin/pink
|
||||
icon_state = "pinkpin"
|
||||
@@ -424,7 +424,8 @@
|
||||
desc = "A jeweled headpiece originating in India."
|
||||
icon_state = "maangtikka"
|
||||
body_parts_covered = 0
|
||||
drop_sound = 'sound/items/drop/accessory.ogg'
|
||||
drop_sound = 'sound/items/drop/ring.ogg'
|
||||
pickup_sound = 'sound/items/pickup/ring.ogg'
|
||||
|
||||
/obj/item/clothing/head/jingasa
|
||||
name = "jingasa"
|
||||
|
||||
@@ -10,6 +10,8 @@
|
||||
permeability_coefficient = 0.50
|
||||
var/hanging = 0
|
||||
action_button_name = "Adjust Breath Mask"
|
||||
pickup_sound = 'sound/items/pickup/component.ogg'
|
||||
drop_sound = 'sound/items/drop/component.ogg'
|
||||
|
||||
|
||||
/obj/item/clothing/mask/breath/proc/adjust_mask(mob/user)
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
var/gas_filter_strength = 1 //For gas mask filters
|
||||
var/list/filtered_gases = list("phoron", "nitrous_oxide")
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 75, rad = 0)
|
||||
pickup_sound = 'sound/items/pickup/rubber.ogg'
|
||||
|
||||
/obj/item/clothing/mask/gas/filter_air(datum/gas_mixture/air)
|
||||
var/datum/gas_mixture/gas_filtered = new
|
||||
|
||||
@@ -108,7 +108,7 @@ obj/item/clothing/shoes/sandal/clogs
|
||||
species_restricted = null
|
||||
w_class = ITEMSIZE_SMALL
|
||||
drop_sound = 'sound/items/drop/clothing.ogg'
|
||||
pickup_sound = 'sound/items/pickup/cloth.ogg'
|
||||
pickup_sound = 'sound/items/pickup/clothing.ogg'
|
||||
|
||||
/obj/item/clothing/shoes/slippers/worn
|
||||
name = "worn bunny slippers"
|
||||
@@ -172,7 +172,7 @@ obj/item/clothing/shoes/sandal/clogs
|
||||
w_class = ITEMSIZE_SMALL
|
||||
species_restricted = null
|
||||
drop_sound = 'sound/items/drop/clothing.ogg'
|
||||
pickup_sound = 'sound/items/pickup/cloth.ogg'
|
||||
pickup_sound = 'sound/items/pickup/clothing.ogg'
|
||||
|
||||
/obj/item/clothing/shoes/boots/ranger
|
||||
var/bootcolor = "white"
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
to_chat(usr, "Your module is not installed in a hardsuit.")
|
||||
return
|
||||
|
||||
module.holder.ui_interact(usr, nano_state = contained_state)
|
||||
module.holder.tgui_interact(usr, custom_state = GLOB.tgui_contained_state)
|
||||
|
||||
/obj/item/rig_module/ai_container
|
||||
|
||||
|
||||
@@ -134,7 +134,7 @@
|
||||
if(!target)
|
||||
if(ai_card)
|
||||
if(istype(ai_card,/obj/item/device/aicard))
|
||||
ai_card.tgui_interact(H, custom_state = deep_inventory_state)
|
||||
ai_card.tgui_interact(H, custom_state = GLOB.tgui_deep_inventory_state)
|
||||
else
|
||||
eject_ai(H)
|
||||
update_verb_holder()
|
||||
|
||||
@@ -13,9 +13,6 @@
|
||||
|
||||
var/stored_name
|
||||
var/badge_string = "Corporate Security"
|
||||
|
||||
drop_sound = 'sound/items/drop/ring.ogg'
|
||||
pickup_sound = 'sound/items/pickup/ring.ogg'
|
||||
|
||||
/obj/item/clothing/accessory/badge/old
|
||||
name = "faded badge"
|
||||
|
||||
+157
-155
@@ -15,7 +15,7 @@
|
||||
var/const/fund_cap = 1000000
|
||||
|
||||
/obj/machinery/account_database/proc/get_access_level()
|
||||
if (!held_card)
|
||||
if(!held_card)
|
||||
return 0
|
||||
if(access_cent_captain in held_card.access)
|
||||
return 2
|
||||
@@ -53,19 +53,24 @@
|
||||
O.loc = src
|
||||
held_card = O
|
||||
|
||||
SSnanoui.update_uis(src)
|
||||
SStgui.update_uis(src)
|
||||
|
||||
attack_hand(user)
|
||||
|
||||
/obj/machinery/account_database/attack_hand(mob/user as mob)
|
||||
if(stat & (NOPOWER|BROKEN)) return
|
||||
ui_interact(user)
|
||||
tgui_interact(user)
|
||||
|
||||
/obj/machinery/account_database/ui_interact(mob/user, ui_key="main", var/datum/nanoui/ui = null, var/force_open = 1)
|
||||
user.set_machine(src)
|
||||
/obj/machinery/account_database/tgui_interact(mob/user, datum/tgui/ui)
|
||||
ui = SStgui.try_update_ui(user, src, ui)
|
||||
if(!ui)
|
||||
ui = new(user, src, "AccountsTerminal", name)
|
||||
ui.open()
|
||||
|
||||
|
||||
/obj/machinery/account_database/tgui_data(mob/user, datum/tgui/ui, datum/tgui_state/state)
|
||||
var/list/data = ..()
|
||||
|
||||
var/data[0]
|
||||
data["src"] = "\ref[src]"
|
||||
data["id_inserted"] = !!held_card
|
||||
data["id_card"] = held_card ? text("[held_card.registered_name], [held_card.assignment]") : "-----"
|
||||
data["access_level"] = get_access_level()
|
||||
@@ -73,10 +78,14 @@
|
||||
data["creating_new_account"] = creating_new_account
|
||||
data["detailed_account_view"] = !!detailed_account_view
|
||||
data["station_account_number"] = station_account.account_number
|
||||
data["transactions"] = null
|
||||
data["accounts"] = null
|
||||
|
||||
if (detailed_account_view)
|
||||
data["account_number"] = null
|
||||
data["owner_name"] = null
|
||||
data["money"] = null
|
||||
data["suspended"] = null
|
||||
data["transactions"] = list()
|
||||
|
||||
if(detailed_account_view)
|
||||
data["account_number"] = detailed_account_view.account_number
|
||||
data["owner_name"] = detailed_account_view.owner_name
|
||||
data["money"] = detailed_account_view.money
|
||||
@@ -92,11 +101,10 @@
|
||||
"amount" = T.amount, \
|
||||
"source_terminal" = T.source_terminal)))
|
||||
|
||||
if (trx.len > 0)
|
||||
data["transactions"] = trx
|
||||
data["transactions"] = trx
|
||||
|
||||
var/list/accounts[0]
|
||||
for(var/i=1, i<=all_money_accounts.len, i++)
|
||||
var/list/accounts = list()
|
||||
for(var/i in 1 to LAZYLEN(all_money_accounts))
|
||||
var/datum/money_account/D = all_money_accounts[i]
|
||||
if(D.offmap)
|
||||
continue
|
||||
@@ -106,174 +114,168 @@
|
||||
"suspended"=D.suspended ? "SUSPENDED" : "",\
|
||||
"account_index"=i)))
|
||||
|
||||
if (accounts.len > 0)
|
||||
data["accounts"] = accounts
|
||||
data["accounts"] = accounts
|
||||
|
||||
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open)
|
||||
if (!ui)
|
||||
ui = new(user, src, ui_key, "accounts_terminal.tmpl", src.name, 400, 640)
|
||||
ui.set_initial_data(data)
|
||||
ui.open()
|
||||
return data
|
||||
|
||||
/obj/machinery/account_database/Topic(href, href_list)
|
||||
/obj/machinery/account_database/tgui_act(action, list/params, datum/tgui/ui, datum/tgui_state/state)
|
||||
if(..())
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
var/datum/nanoui/ui = SSnanoui.get_open_ui(usr, src, "main")
|
||||
switch(action)
|
||||
if("create_account")
|
||||
creating_new_account = 1
|
||||
|
||||
if(href_list["choice"])
|
||||
switch(href_list["choice"])
|
||||
if("create_account")
|
||||
creating_new_account = 1
|
||||
if("add_funds")
|
||||
var/amount = input("Enter the amount you wish to add", "Silently add funds") as num
|
||||
if(detailed_account_view)
|
||||
detailed_account_view.money = min(detailed_account_view.money + amount, fund_cap)
|
||||
|
||||
if("add_funds")
|
||||
var/amount = input("Enter the amount you wish to add", "Silently add funds") as num
|
||||
if(detailed_account_view)
|
||||
detailed_account_view.money = min(detailed_account_view.money + amount, fund_cap)
|
||||
if("remove_funds")
|
||||
var/amount = input("Enter the amount you wish to remove", "Silently remove funds") as num
|
||||
if(detailed_account_view)
|
||||
detailed_account_view.money = max(detailed_account_view.money - amount, -fund_cap)
|
||||
|
||||
if("remove_funds")
|
||||
var/amount = input("Enter the amount you wish to remove", "Silently remove funds") as num
|
||||
if(detailed_account_view)
|
||||
detailed_account_view.money = max(detailed_account_view.money - amount, -fund_cap)
|
||||
if("toggle_suspension")
|
||||
if(detailed_account_view)
|
||||
detailed_account_view.suspended = !detailed_account_view.suspended
|
||||
callHook("change_account_status", list(detailed_account_view))
|
||||
|
||||
if("toggle_suspension")
|
||||
if(detailed_account_view)
|
||||
detailed_account_view.suspended = !detailed_account_view.suspended
|
||||
callHook("change_account_status", list(detailed_account_view))
|
||||
if("finalise_create_account")
|
||||
var/account_name = params["holder_name"]
|
||||
var/starting_funds = max(text2num(params["starting_funds"]), 0)
|
||||
|
||||
if("finalise_create_account")
|
||||
var/account_name = href_list["holder_name"]
|
||||
var/starting_funds = max(text2num(href_list["starting_funds"]), 0)
|
||||
starting_funds = CLAMP(starting_funds, 0, station_account.money) // Not authorized to put the station in debt.
|
||||
starting_funds = min(starting_funds, fund_cap) // Not authorized to give more than the fund cap.
|
||||
|
||||
starting_funds = CLAMP(starting_funds, 0, station_account.money) // Not authorized to put the station in debt.
|
||||
starting_funds = min(starting_funds, fund_cap) // Not authorized to give more than the fund cap.
|
||||
create_account(account_name, starting_funds, src)
|
||||
if(starting_funds > 0)
|
||||
//subtract the money
|
||||
station_account.money -= starting_funds
|
||||
|
||||
create_account(account_name, starting_funds, src)
|
||||
if(starting_funds > 0)
|
||||
//subtract the money
|
||||
station_account.money -= starting_funds
|
||||
|
||||
//create a transaction log entry
|
||||
var/trx = create_transation(account_name, "New account activation", "([starting_funds])")
|
||||
station_account.transaction_log.Add(trx)
|
||||
|
||||
creating_new_account = 0
|
||||
ui.close()
|
||||
//create a transaction log entry
|
||||
var/trx = create_transation(account_name, "New account activation", "([starting_funds])")
|
||||
station_account.transaction_log.Add(trx)
|
||||
|
||||
creating_new_account = 0
|
||||
if("insert_card")
|
||||
if(held_card)
|
||||
held_card.loc = src.loc
|
||||
|
||||
if(ishuman(usr) && !usr.get_active_hand())
|
||||
usr.put_in_hands(held_card)
|
||||
held_card = null
|
||||
creating_new_account = 0
|
||||
if("insert_card")
|
||||
if(held_card)
|
||||
held_card.loc = src.loc
|
||||
|
||||
else
|
||||
var/obj/item/I = usr.get_active_hand()
|
||||
if (istype(I, /obj/item/weapon/card/id))
|
||||
var/obj/item/weapon/card/id/C = I
|
||||
usr.drop_item()
|
||||
C.loc = src
|
||||
held_card = C
|
||||
if(ishuman(usr) && !usr.get_active_hand())
|
||||
usr.put_in_hands(held_card)
|
||||
held_card = null
|
||||
|
||||
if("view_account_detail")
|
||||
var/index = text2num(href_list["account_index"])
|
||||
if(index && index <= all_money_accounts.len)
|
||||
detailed_account_view = all_money_accounts[index]
|
||||
else
|
||||
var/obj/item/I = usr.get_active_hand()
|
||||
if(istype(I, /obj/item/weapon/card/id))
|
||||
var/obj/item/weapon/card/id/C = I
|
||||
usr.drop_item()
|
||||
C.loc = src
|
||||
held_card = C
|
||||
|
||||
if("view_accounts_list")
|
||||
detailed_account_view = null
|
||||
creating_new_account = 0
|
||||
if("view_account_detail")
|
||||
var/index = text2num(params["account_index"])
|
||||
if(index && index <= all_money_accounts.len)
|
||||
detailed_account_view = all_money_accounts[index]
|
||||
|
||||
if("revoke_payroll")
|
||||
var/funds = detailed_account_view.money
|
||||
var/account_trx = create_transation(station_account.owner_name, "Revoke payroll", "([funds])")
|
||||
var/station_trx = create_transation(detailed_account_view.owner_name, "Revoke payroll", funds)
|
||||
if("view_accounts_list")
|
||||
detailed_account_view = null
|
||||
creating_new_account = 0
|
||||
|
||||
station_account.money += funds
|
||||
detailed_account_view.money = 0
|
||||
if("revoke_payroll")
|
||||
var/funds = detailed_account_view.money
|
||||
var/account_trx = create_transation(station_account.owner_name, "Revoke payroll", "([funds])")
|
||||
var/station_trx = create_transation(detailed_account_view.owner_name, "Revoke payroll", funds)
|
||||
|
||||
detailed_account_view.transaction_log.Add(account_trx)
|
||||
station_account.transaction_log.Add(station_trx)
|
||||
station_account.money += funds
|
||||
detailed_account_view.money = 0
|
||||
|
||||
callHook("revoke_payroll", list(detailed_account_view))
|
||||
detailed_account_view.transaction_log.Add(account_trx)
|
||||
station_account.transaction_log.Add(station_trx)
|
||||
|
||||
if("print")
|
||||
var/text
|
||||
var/obj/item/weapon/paper/P = new(loc)
|
||||
if (detailed_account_view)
|
||||
P.name = "account #[detailed_account_view.account_number] details"
|
||||
var/title = "Account #[detailed_account_view.account_number] Details"
|
||||
text = {"
|
||||
[accounting_letterhead(title)]
|
||||
<u>Holder:</u> [detailed_account_view.owner_name]<br>
|
||||
<u>Balance:</u> $[detailed_account_view.money]<br>
|
||||
<u>Status:</u> [detailed_account_view.suspended ? "Suspended" : "Active"]<br>
|
||||
<u>Transactions:</u> ([detailed_account_view.transaction_log.len])<br>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<td>Timestamp</td>
|
||||
<td>Target</td>
|
||||
<td>Reason</td>
|
||||
<td>Value</td>
|
||||
<td>Terminal</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
"}
|
||||
callHook("revoke_payroll", list(detailed_account_view))
|
||||
|
||||
for (var/datum/transaction/T in detailed_account_view.transaction_log)
|
||||
text += {"
|
||||
<tr>
|
||||
<td>[T.date] [T.time]</td>
|
||||
<td>[T.target_name]</td>
|
||||
<td>[T.purpose]</td>
|
||||
<td>[T.amount]</td>
|
||||
<td>[T.source_terminal]</td>
|
||||
</tr>
|
||||
"}
|
||||
if("print")
|
||||
print()
|
||||
|
||||
text += {"
|
||||
</tbody>
|
||||
</table>
|
||||
"}
|
||||
return TRUE
|
||||
|
||||
else
|
||||
P.name = "financial account list"
|
||||
text = {"
|
||||
[accounting_letterhead("Financial Account List")]
|
||||
/obj/machinery/account_database/proc/print()
|
||||
var/text
|
||||
var/obj/item/weapon/paper/P = new(loc)
|
||||
if(detailed_account_view)
|
||||
P.name = "account #[detailed_account_view.account_number] details"
|
||||
var/title = "Account #[detailed_account_view.account_number] Details"
|
||||
text = {"
|
||||
[accounting_letterhead(title)]
|
||||
<u>Holder:</u> [detailed_account_view.owner_name]<br>
|
||||
<u>Balance:</u> $[detailed_account_view.money]<br>
|
||||
<u>Status:</u> [detailed_account_view.suspended ? "Suspended" : "Active"]<br>
|
||||
<u>Transactions:</u> ([detailed_account_view.transaction_log.len])<br>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<td>Timestamp</td>
|
||||
<td>Target</td>
|
||||
<td>Reason</td>
|
||||
<td>Value</td>
|
||||
<td>Terminal</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
"}
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<td>Account Number</td>
|
||||
<td>Holder</td>
|
||||
<td>Balance</td>
|
||||
<td>Status</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
"}
|
||||
for (var/datum/transaction/T in detailed_account_view.transaction_log)
|
||||
text += {"
|
||||
<tr>
|
||||
<td>[T.date] [T.time]</td>
|
||||
<td>[T.target_name]</td>
|
||||
<td>[T.purpose]</td>
|
||||
<td>[T.amount]</td>
|
||||
<td>[T.source_terminal]</td>
|
||||
</tr>
|
||||
"}
|
||||
|
||||
for(var/i=1, i<=all_money_accounts.len, i++)
|
||||
var/datum/money_account/D = all_money_accounts[i]
|
||||
text += {"
|
||||
<tr>
|
||||
<td>#[D.account_number]</td>
|
||||
<td>[D.owner_name]</td>
|
||||
<td>$[D.money]</td>
|
||||
<td>[D.suspended ? "Suspended" : "Active"]</td>
|
||||
</tr>
|
||||
"}
|
||||
text += {"
|
||||
</tbody>
|
||||
</table>
|
||||
"}
|
||||
|
||||
text += {"
|
||||
</tbody>
|
||||
</table>
|
||||
"}
|
||||
else
|
||||
P.name = "financial account list"
|
||||
text = {"
|
||||
[accounting_letterhead("Financial Account List")]
|
||||
|
||||
P.info = text
|
||||
state("The terminal prints out a report.")
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<td>Account Number</td>
|
||||
<td>Holder</td>
|
||||
<td>Balance</td>
|
||||
<td>Status</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
"}
|
||||
|
||||
return 1
|
||||
for(var/i=1, i<=all_money_accounts.len, i++)
|
||||
var/datum/money_account/D = all_money_accounts[i]
|
||||
text += {"
|
||||
<tr>
|
||||
<td>#[D.account_number]</td>
|
||||
<td>[D.owner_name]</td>
|
||||
<td>$[D.money]</td>
|
||||
<td>[D.suspended ? "Suspended" : "Active"]</td>
|
||||
</tr>
|
||||
"}
|
||||
|
||||
text += {"
|
||||
</tbody>
|
||||
</table>
|
||||
"}
|
||||
|
||||
P.info = text
|
||||
state("The terminal prints out a report.")
|
||||
@@ -36,7 +36,11 @@
|
||||
var/obj/item/device/pda/P
|
||||
var/list/viables = list()
|
||||
for(var/obj/item/device/pda/check_pda in sortAtom(PDAs))
|
||||
if (!check_pda.owner||check_pda.toff||check_pda == src||check_pda.hidden)
|
||||
if (!check_pda.owner || check_pda == src || check_pda.hidden)
|
||||
continue
|
||||
|
||||
var/datum/data/pda/app/messenger/M = check_pda.find_program(/datum/data/pda/app/messenger)
|
||||
if(!M || M.toff)
|
||||
continue
|
||||
viables.Add(check_pda)
|
||||
|
||||
@@ -112,17 +116,5 @@
|
||||
//Commented out because we don't send messages like this anymore. Instead it will just popup in their chat window.
|
||||
//P.tnote += "<i><b>← From [sender] (Unknown / spam?):</b></i><br>[message]<br>"
|
||||
|
||||
if (!P.message_silent)
|
||||
playsound(P, 'sound/machines/twobeep.ogg', 50, 1)
|
||||
for (var/mob/O in hearers(3, P.loc))
|
||||
if(!P.message_silent) O.show_message(text("[bicon(P)] *[P.ttone]*"))
|
||||
//Search for holder of the PDA.
|
||||
var/mob/living/L = null
|
||||
if(P.loc && isliving(P.loc))
|
||||
L = P.loc
|
||||
//Maybe they are a pAI!
|
||||
else
|
||||
L = get(P, /mob/living/silicon)
|
||||
|
||||
if(L)
|
||||
to_chat(L, "[bicon(P)] <b>Message from [sender] (Unknown / spam?), </b>\"[message]\" (Unable to Reply)")
|
||||
var/datum/data/pda/app/messenger/PM = P.find_program(/datum/data/pda/app/messenger)
|
||||
PM.notify("<b>Message from [sender] (Unknown / spam?), </b>\"[message]\" (Unable to Reply)", 0)
|
||||
|
||||
@@ -84,17 +84,9 @@
|
||||
var/datum/supply_demand_order/random = pick(required_items)
|
||||
command_announcement.Announce("What happened? Accounting is here right now and they're already asking where that [random.name] is. Damn, I gotta go", my_department)
|
||||
var/message = "The delivery deadline was reached with the following needs outstanding:<hr>"
|
||||
for (var/datum/supply_demand_order/req in required_items)
|
||||
for(var/datum/supply_demand_order/req in required_items)
|
||||
message += req.describe() + "<br>"
|
||||
for (var/obj/machinery/computer/communications/C in machines)
|
||||
if(C.operable())
|
||||
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( C.loc )
|
||||
P.name = "'[my_department] Mission Summary'"
|
||||
P.info = message
|
||||
P.update_space(P.info)
|
||||
P.update_icon()
|
||||
C.messagetitle.Add("[my_department] Mission Summary")
|
||||
C.messagetext.Add(P.info)
|
||||
post_comm_message("'[my_department] Mission Summary'", message)
|
||||
/**
|
||||
* Event Handler for responding to the supply shuttle arriving at centcom.
|
||||
*/
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
name = "drink"
|
||||
desc = "yummy"
|
||||
icon = 'icons/obj/drinks.dmi'
|
||||
drop_sound = 'sound/items/drop/bottle.ogg'
|
||||
pickup_sound = 'sound/items/pickup/bottle.ogg'
|
||||
drop_sound = 'sound/items/drop/drinkglass.ogg'
|
||||
pickup_sound = 'sound/items/pickup/drinkglass.ogg'
|
||||
icon_state = null
|
||||
flags = OPENCONTAINER
|
||||
amount_per_transfer_from_this = 5
|
||||
@@ -234,6 +234,7 @@
|
||||
trash = /obj/item/trash/coffee
|
||||
center_of_mass = list("x"=15, "y"=13)
|
||||
drop_sound = 'sound/items/drop/papercup.ogg'
|
||||
pickup_sound = 'sound/items/pickup/papercup.ogg'
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/h_chocolate/Initialize()
|
||||
..()
|
||||
@@ -248,6 +249,7 @@
|
||||
trash = /obj/item/trash/coffee
|
||||
center_of_mass = list("x"=16, "y"=14)
|
||||
drop_sound = 'sound/items/drop/papercup.ogg'
|
||||
pickup_sound = 'sound/items/pickup/papercup.ogg'
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/greentea/Initialize()
|
||||
. = ..()
|
||||
@@ -262,6 +264,7 @@
|
||||
trash = /obj/item/trash/coffee
|
||||
center_of_mass = list("x"=16, "y"=14)
|
||||
drop_sound = 'sound/items/drop/papercup.ogg'
|
||||
pickup_sound = 'sound/items/pickup/papercup.ogg'
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/chaitea/Initialize()
|
||||
. = ..()
|
||||
@@ -276,6 +279,7 @@
|
||||
trash = /obj/item/trash/coffee
|
||||
center_of_mass = list("x"=16, "y"=14)
|
||||
drop_sound = 'sound/items/drop/papercup.ogg'
|
||||
pickup_sound = 'sound/items/pickup/papercup.ogg'
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/decaf/Initialize()
|
||||
. = ..()
|
||||
@@ -289,6 +293,7 @@
|
||||
trash = /obj/item/trash/ramen
|
||||
center_of_mass = list("x"=16, "y"=11)
|
||||
drop_sound = 'sound/items/drop/papercup.ogg'
|
||||
pickup_sound = 'sound/items/pickup/papercup.ogg'
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/dry_ramen/Initialize()
|
||||
..()
|
||||
@@ -302,6 +307,7 @@
|
||||
volume = 10
|
||||
center_of_mass = list("x"=16, "y"=12)
|
||||
drop_sound = 'sound/items/drop/papercup.ogg'
|
||||
pickup_sound = 'sound/items/pickup/papercup.ogg'
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/sillycup/Initialize()
|
||||
. = ..()
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
if(isGlass)
|
||||
unacidable = 1
|
||||
drop_sound = 'sound/items/drop/bottle.ogg'
|
||||
pickup_sound = 'sound/items/pickup/bottle.ogg'
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/bottle/Destroy()
|
||||
if(rag)
|
||||
|
||||
@@ -8,8 +8,6 @@
|
||||
volume = 30
|
||||
unacidable = 1 //glass
|
||||
center_of_mass = list("x"=16, "y"=10)
|
||||
drop_sound = 'sound/items/drop/drinkglass.ogg'
|
||||
pickup_sound = 'sound/items/pickup/drinkglass.ogg'
|
||||
matter = list("glass" = 500)
|
||||
|
||||
on_reagent_change()
|
||||
|
||||
@@ -318,6 +318,7 @@
|
||||
nutriment_amt = 1
|
||||
nutriment_desc = list("candy" = 1)
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/candy/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("sugar", 3)
|
||||
@@ -4161,6 +4162,8 @@
|
||||
trash = /obj/item/trash/unajerky
|
||||
filling_color = "#631212"
|
||||
center_of_mass = list("x"=15, "y"=9)
|
||||
drop_sound = 'sound/items/drop/soda.ogg'
|
||||
pickup_sound = 'sound/items/pickup/soda.ogg'
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/unajerky/Initialize()
|
||||
. =..()
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
use_power = USE_POWER_IDLE
|
||||
idle_power_usage = 5 // Power used when turned on, but not processing anything
|
||||
active_power_usage = 1000 // Power used when turned on and actively cooking something
|
||||
|
||||
|
||||
var/cooking_power = 0 // Effectiveness/speed at cooking
|
||||
var/cooking_coeff = 0 // Optimal power * proximity to optimal temp; used to calc. cooking power.
|
||||
var/heating_power = 1000 // Effectiveness at heating up; not used for mixers, should be equal to active_power_usage
|
||||
@@ -44,9 +44,9 @@
|
||||
|
||||
/obj/machinery/appliance/Initialize()
|
||||
. = ..()
|
||||
|
||||
|
||||
default_apply_parts()
|
||||
|
||||
|
||||
if(output_options.len)
|
||||
verbs += /obj/machinery/appliance/proc/choose_output
|
||||
|
||||
@@ -206,7 +206,7 @@
|
||||
|
||||
//Handles all validity checking and error messages for inserting things
|
||||
/obj/machinery/appliance/proc/can_insert(var/obj/item/I, var/mob/user)
|
||||
if (istype(I, /obj/item/weapon/gripper))
|
||||
if(istype(I.loc, /mob/living/silicon))
|
||||
return 0
|
||||
else if (istype(I.loc, /obj/item/rig_module))
|
||||
return 0
|
||||
@@ -266,26 +266,52 @@
|
||||
to_chat(user, "<span class='warning'>\The [src] is not working.</span>")
|
||||
return FALSE
|
||||
|
||||
var/result = can_insert(I, user)
|
||||
if(!result)
|
||||
if(!(default_deconstruction_screwdriver(user, I)))
|
||||
default_part_replacement(user, I)
|
||||
return FALSE
|
||||
var/obj/item/ToCook = I
|
||||
|
||||
if(result == 2)
|
||||
var/obj/item/weapon/grab/G = I
|
||||
if (G && istype(G) && G.affecting)
|
||||
cook_mob(G.affecting, user)
|
||||
return FALSE
|
||||
if(istype(I, /obj/item/weapon/gripper))
|
||||
var/obj/item/weapon/gripper/GR = I
|
||||
var/obj/item/Wrap = GR.wrapped
|
||||
if(Wrap)
|
||||
Wrap.loc = get_turf(src)
|
||||
var/result = can_insert(Wrap, user)
|
||||
if(!result)
|
||||
Wrap.forceMove(GR)
|
||||
if(!(default_deconstruction_screwdriver(user, I)))
|
||||
default_part_replacement(user, I)
|
||||
return
|
||||
|
||||
if(QDELETED(GR.wrapped))
|
||||
GR.wrapped = null
|
||||
|
||||
if(GR?.wrapped.loc != src)
|
||||
GR.drop_item_nm()
|
||||
|
||||
ToCook = Wrap
|
||||
else
|
||||
attack_hand(user)
|
||||
return
|
||||
|
||||
else
|
||||
var/result = can_insert(I, user)
|
||||
if(!result)
|
||||
if(!(default_deconstruction_screwdriver(user, I)))
|
||||
default_part_replacement(user, I)
|
||||
return
|
||||
|
||||
if(result == 2)
|
||||
var/obj/item/weapon/grab/G = I
|
||||
if (G && istype(G) && G.affecting)
|
||||
cook_mob(G.affecting, user)
|
||||
return
|
||||
|
||||
//From here we can start cooking food
|
||||
. = add_content(I, user)
|
||||
add_content(ToCook, user)
|
||||
update_icon()
|
||||
|
||||
//Override for container mechanics
|
||||
/obj/machinery/appliance/proc/add_content(var/obj/item/I, var/mob/user)
|
||||
if(!user.unEquip(I))
|
||||
return FALSE
|
||||
if(!user.unEquip(I) && !isturf(I.loc))
|
||||
return
|
||||
|
||||
var/datum/cooking_item/CI = has_space(I)
|
||||
if (istype(I, /obj/item/weapon/reagent_containers/cooking_container) && CI == 1)
|
||||
@@ -458,7 +484,7 @@
|
||||
//Final step. Cook function just cooks batter for now.
|
||||
for (var/obj/item/weapon/reagent_containers/food/snacks/S in CI.container)
|
||||
S.cook()
|
||||
|
||||
|
||||
|
||||
//Combination cooking involves combining the names and reagents of ingredients into a predefined output object
|
||||
//The ingredients represent flavours or fillings. EG: donut pizza, cheese bread
|
||||
@@ -566,7 +592,7 @@
|
||||
smoke.attach(src)
|
||||
smoke.set_up(10, 0, get_turf(src), 300)
|
||||
smoke.start()
|
||||
|
||||
|
||||
// Set off fire alarms!
|
||||
var/obj/machinery/firealarm/FA = locate() in get_area(src)
|
||||
if(FA)
|
||||
|
||||
@@ -32,13 +32,26 @@
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/cooking_container/attackby(var/obj/item/I as obj, var/mob/user as mob)
|
||||
if(istype(I, /obj/item/weapon/gripper))
|
||||
var/obj/item/weapon/gripper/GR = I
|
||||
if(GR.wrapped)
|
||||
GR.wrapped.forceMove(get_turf(src))
|
||||
attackby(GR.wrapped, user)
|
||||
if(QDELETED(GR.wrapped))
|
||||
GR.wrapped = null
|
||||
|
||||
if(GR?.wrapped.loc != src)
|
||||
GR.wrapped = null
|
||||
|
||||
return
|
||||
|
||||
for (var/possible_type in insertable)
|
||||
if (istype(I, possible_type))
|
||||
if (!can_fit(I))
|
||||
to_chat(user, "<span class='warning'>There's no more space in the [src] for that!</span>")
|
||||
return 0
|
||||
|
||||
if(!user.unEquip(I))
|
||||
if(!user.unEquip(I) && !isturf(I.loc))
|
||||
return
|
||||
I.forceMove(src)
|
||||
to_chat(user, "<span class='notice'>You put the [I] into the [src].</span>")
|
||||
@@ -152,7 +165,7 @@
|
||||
|
||||
/obj/item/weapon/reagent_containers/cooking_container/oven/Initialize()
|
||||
. = ..()
|
||||
|
||||
|
||||
// We add to the insertable list specifically for the oven trays, to allow specialty cakes.
|
||||
insertable += list(
|
||||
/obj/item/clothing/head/cakehat, // This is because we want to allow birthday cakes to be makeable.
|
||||
@@ -164,7 +177,7 @@
|
||||
shortname = "basket"
|
||||
desc = "Put ingredients in this; designed for use with a deep fryer. Warranty void if used incorrectly. Alt click to remove contents."
|
||||
icon_state = "basket"
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/cooking_container/grill
|
||||
name = "grill rack"
|
||||
shortname = "rack"
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough
|
||||
)
|
||||
result = /obj/item/weapon/reagent_containers/food/snacks/flatbread
|
||||
|
||||
|
||||
/datum/recipe/tortilla
|
||||
appliance = OVEN
|
||||
reagents = list("flour" = 5)
|
||||
@@ -408,7 +408,7 @@
|
||||
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge
|
||||
)
|
||||
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesecake
|
||||
|
||||
|
||||
/datum/recipe/cake/peanut
|
||||
fruit = list("peanut" = 3)
|
||||
reagents = list("milk" = 5, "flour" = 10, "sugar" = 5, "egg" = 6, "peanutbutter" = 5)
|
||||
@@ -458,7 +458,7 @@
|
||||
|
||||
/datum/recipe/pancakes
|
||||
appliance = OVEN
|
||||
fruit = list("blueberries" = 2)
|
||||
fruit = list("berries" = 2)
|
||||
items = list(
|
||||
/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough
|
||||
|
||||
@@ -35,7 +35,11 @@
|
||||
var/list/viables = list()
|
||||
|
||||
for(var/obj/item/device/pda/check_pda in sortAtom(PDAs))
|
||||
if(!check_pda.owner || check_pda.toff || check_pda.hidden || check_pda.spam_proof)
|
||||
if (!check_pda.owner || check_pda == src || check_pda.hidden)
|
||||
continue
|
||||
|
||||
var/datum/data/pda/app/messenger/M = check_pda.find_program(/datum/data/pda/app/messenger)
|
||||
if(!M || M.toff)
|
||||
continue
|
||||
viables += check_pda
|
||||
|
||||
@@ -93,7 +97,7 @@
|
||||
message = pick("Luxury watches for Blowout sale prices!",\
|
||||
"Watches, Jewelry & Accessories, Bags & Wallets !",\
|
||||
"Deposit 100$ and get 300$ totally free!",\
|
||||
" 100K NT.|WOWGOLD õnly $89 <HOT>",\
|
||||
" 100K NT.|WOWGOLD �nly $89 <HOT>",\
|
||||
"We have been filed with a complaint from one of your customers in respect of their business relations with you.",\
|
||||
"We kindly ask you to open the COMPLAINT REPORT (attached) to reply on this complaint..")
|
||||
if(4)
|
||||
@@ -127,7 +131,8 @@
|
||||
|
||||
/datum/event2/event/pda_spam/proc/send_spam(obj/item/device/pda/P, sender, message)
|
||||
last_spam_time = world.time
|
||||
P.spam_message(sender, message)
|
||||
var/datum/data/pda/app/messenger/PM = P.find_program(/datum/data/pda/app/messenger)
|
||||
PM.notify("<b>Message from [sender] (Unknown / spam?), </b>\"[message]\" (Unable to Reply)", 0)
|
||||
if(spam_debug)
|
||||
log_debug("PDA Spam event sent spam to \the [P].")
|
||||
|
||||
|
||||
@@ -218,7 +218,7 @@
|
||||
/datum/event2/event/prison_break/start()
|
||||
for(var/area/A in areas_to_break)
|
||||
spawn(0) // So we don't block the ticker.
|
||||
A.prison_break(open_blast_doors = !ignore_blast_doors)
|
||||
A.prison_break(TRUE, TRUE, !ignore_blast_doors) // Naming `open_blast_doors` causes mysterious runtimes.
|
||||
|
||||
// There's between 40 seconds and one minute before the whole station knows.
|
||||
// If there's a baddie engineer, they can choose to keep their early announcement to themselves and get a minute to exploit it.
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -337,3 +337,6 @@ GLOBAL_LIST_BOILERPLATE(all_seed_packs, /obj/item/seeds)
|
||||
|
||||
/obj/item/seeds/sifbulb
|
||||
seed_type = "sifbulb"
|
||||
|
||||
/obj/item/seeds/wurmwoad
|
||||
seed_type = "wurmwoad"
|
||||
|
||||
@@ -138,7 +138,8 @@
|
||||
/obj/item/seeds/wabback = 2,
|
||||
/obj/item/seeds/watermelonseed = 3,
|
||||
/obj/item/seeds/wheatseed = 3,
|
||||
/obj/item/seeds/whitebeetseed = 3
|
||||
/obj/item/seeds/whitebeetseed = 3,
|
||||
/obj/item/seeds/wurmwoad = 3
|
||||
)
|
||||
|
||||
/obj/machinery/seed_storage/xenobotany
|
||||
@@ -195,7 +196,8 @@
|
||||
/obj/item/seeds/wabback = 2,
|
||||
/obj/item/seeds/watermelonseed = 3,
|
||||
/obj/item/seeds/wheatseed = 3,
|
||||
/obj/item/seeds/whitebeetseed = 3
|
||||
/obj/item/seeds/whitebeetseed = 3,
|
||||
/obj/item/seeds/wurmwoad = 3
|
||||
)
|
||||
|
||||
/obj/machinery/seed_storage/attack_hand(mob/user as mob)
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
/datum/seed/amauri
|
||||
name = "amauri"
|
||||
seed_name = "amauri"
|
||||
display_name = "amauri plant"
|
||||
kitchen_tag = "amauri"
|
||||
chems = list("zombiepowder" = list(1,10),"condensedcapsaicin" = list(1,5),"nutriment" = list(1,5))
|
||||
|
||||
/datum/seed/amauri/New()
|
||||
..()
|
||||
set_trait(TRAIT_PLANT_ICON,"bush4")
|
||||
set_trait(TRAIT_ENDURANCE,10)
|
||||
set_trait(TRAIT_MATURATION,8)
|
||||
set_trait(TRAIT_PRODUCTION,9)
|
||||
set_trait(TRAIT_YIELD,4)
|
||||
set_trait(TRAIT_POTENCY,10)
|
||||
@@ -0,0 +1,46 @@
|
||||
//Ambrosia/varieties.
|
||||
/datum/seed/ambrosia
|
||||
name = "ambrosia"
|
||||
seed_name = "ambrosia vulgaris"
|
||||
display_name = "ambrosia vulgaris"
|
||||
kitchen_tag = "ambrosia"
|
||||
mutants = list("ambrosiadeus")
|
||||
chems = list("nutriment" = list(1), "space_drugs" = list(1,8), "kelotane" = list(1,8,1), "bicaridine" = list(1,10,1), "toxin" = list(1,10))
|
||||
|
||||
/datum/seed/ambrosia/New()
|
||||
..()
|
||||
set_trait(TRAIT_HARVEST_REPEAT,1)
|
||||
set_trait(TRAIT_MATURATION,6)
|
||||
set_trait(TRAIT_PRODUCTION,6)
|
||||
set_trait(TRAIT_YIELD,6)
|
||||
set_trait(TRAIT_POTENCY,5)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"ambrosia")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#9FAD55")
|
||||
set_trait(TRAIT_PLANT_ICON,"ambrosia")
|
||||
set_trait(TRAIT_IDEAL_LIGHT, 6)
|
||||
|
||||
/datum/seed/ambrosia/deus
|
||||
name = "ambrosiadeus"
|
||||
seed_name = "ambrosia deus"
|
||||
display_name = "ambrosia deus"
|
||||
kitchen_tag = "ambrosiadeus"
|
||||
mutants = list("ambrosiainfernus")
|
||||
chems = list("nutriment" = list(1), "bicaridine" = list(1,8), "synaptizine" = list(1,8,1), "hyperzine" = list(1,10,1), "space_drugs" = list(1,10))
|
||||
|
||||
/datum/seed/ambrosia/deus/New()
|
||||
..()
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#A3F0AD")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#2A9C61")
|
||||
|
||||
/datum/seed/ambrosia/infernus
|
||||
name = "ambrosiainfernus"
|
||||
seed_name = "ambrosia infernus"
|
||||
display_name = "ambrosia infernus"
|
||||
kitchen_tag = "ambrosiainfernus"
|
||||
mutants = null
|
||||
chems = list("nutriment" = list(1,3), "oxycodone" = list(1,8), "impedrezene" = list(1,10), "mindbreaker" = list(1,10))
|
||||
|
||||
/datum/seed/ambrosia/infernus/New()
|
||||
..()
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#dc143c")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#b22222")
|
||||
@@ -0,0 +1,62 @@
|
||||
//Apples/varieties.
|
||||
/datum/seed/apple
|
||||
name = "apple"
|
||||
seed_name = "apple"
|
||||
display_name = "apple tree"
|
||||
kitchen_tag = "apple"
|
||||
mutants = list("poisonapple","goldapple")
|
||||
chems = list("nutriment" = list(1,10),"applejuice" = list(10,20))
|
||||
|
||||
/datum/seed/apple/New()
|
||||
..()
|
||||
set_trait(TRAIT_HARVEST_REPEAT,1)
|
||||
set_trait(TRAIT_MATURATION,6)
|
||||
set_trait(TRAIT_PRODUCTION,6)
|
||||
set_trait(TRAIT_YIELD,5)
|
||||
set_trait(TRAIT_POTENCY,10)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"apple")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#FF540A")
|
||||
set_trait(TRAIT_PLANT_ICON,"tree2")
|
||||
set_trait(TRAIT_FLESH_COLOUR,"#E8E39B")
|
||||
set_trait(TRAIT_IDEAL_LIGHT, 4)
|
||||
|
||||
/datum/seed/apple/poison
|
||||
name = "poisonapple"
|
||||
mutants = null
|
||||
chems = list("cyanide" = list(1,5))
|
||||
|
||||
/datum/seed/apple/gold
|
||||
name = "goldapple"
|
||||
seed_name = "golden apple"
|
||||
display_name = "gold apple tree"
|
||||
kitchen_tag = "goldapple"
|
||||
mutants = null
|
||||
chems = list("nutriment" = list(1,10), "gold" = list(1,5))
|
||||
|
||||
/datum/seed/apple/gold/New()
|
||||
..()
|
||||
set_trait(TRAIT_MATURATION,10)
|
||||
set_trait(TRAIT_PRODUCTION,10)
|
||||
set_trait(TRAIT_YIELD,3)
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#FFDD00")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#D6B44D")
|
||||
|
||||
/datum/seed/apple/sif
|
||||
name = "sifbulb"
|
||||
seed_name = "sivian tree"
|
||||
display_name = "sivian pod"
|
||||
kitchen_tag = "apple"
|
||||
chems = list("nutriment" = list(1,5),"sifsap" = list(10,20))
|
||||
|
||||
/datum/seed/apple/sif/New()
|
||||
..()
|
||||
set_trait(TRAIT_HARVEST_REPEAT,1)
|
||||
set_trait(TRAIT_MATURATION,3)
|
||||
set_trait(TRAIT_PRODUCTION,10)
|
||||
set_trait(TRAIT_YIELD,3)
|
||||
set_trait(TRAIT_POTENCY,12)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"alien3")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#0720c3")
|
||||
set_trait(TRAIT_PLANT_ICON,"tree5")
|
||||
set_trait(TRAIT_FLESH_COLOUR,"#05157d")
|
||||
set_trait(TRAIT_IDEAL_LIGHT, 1)
|
||||
@@ -0,0 +1,21 @@
|
||||
/datum/seed/banana
|
||||
name = "banana"
|
||||
seed_name = "banana"
|
||||
display_name = "banana tree"
|
||||
kitchen_tag = "banana"
|
||||
chems = list("banana" = list(10,10))
|
||||
trash_type = /obj/item/weapon/bananapeel
|
||||
|
||||
/datum/seed/banana/New()
|
||||
..()
|
||||
set_trait(TRAIT_HARVEST_REPEAT,1)
|
||||
set_trait(TRAIT_MATURATION,6)
|
||||
set_trait(TRAIT_PRODUCTION,6)
|
||||
set_trait(TRAIT_YIELD,3)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"bananas")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#FFEC1F")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#69AD50")
|
||||
set_trait(TRAIT_PLANT_ICON,"tree4")
|
||||
set_trait(TRAIT_IDEAL_HEAT, 298)
|
||||
set_trait(TRAIT_IDEAL_LIGHT, 7)
|
||||
set_trait(TRAIT_WATER_CONSUMPTION, 6)
|
||||
@@ -0,0 +1,70 @@
|
||||
// Berry plants/variants.
|
||||
/datum/seed/berry
|
||||
name = "berries"
|
||||
seed_name = "berry"
|
||||
display_name = "berry bush"
|
||||
kitchen_tag = "berries"
|
||||
mutants = list("glowberries","poisonberries")
|
||||
chems = list("nutriment" = list(1,10), "berryjuice" = list(10,10))
|
||||
|
||||
/datum/seed/berry/New()
|
||||
..()
|
||||
set_trait(TRAIT_HARVEST_REPEAT,1)
|
||||
set_trait(TRAIT_JUICY,1)
|
||||
set_trait(TRAIT_MATURATION,5)
|
||||
set_trait(TRAIT_PRODUCTION,5)
|
||||
set_trait(TRAIT_YIELD,2)
|
||||
set_trait(TRAIT_POTENCY,10)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"berry")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#FA1616")
|
||||
set_trait(TRAIT_PLANT_ICON,"bush")
|
||||
set_trait(TRAIT_WATER_CONSUMPTION, 6)
|
||||
set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.15)
|
||||
|
||||
/datum/seed/berry/glow
|
||||
name = "glowberries"
|
||||
seed_name = "glowberry"
|
||||
display_name = "glowberry bush"
|
||||
mutants = null
|
||||
chems = list("nutriment" = list(1,10), "uranium" = list(3,5))
|
||||
|
||||
/datum/seed/berry/glow/New()
|
||||
..()
|
||||
set_trait(TRAIT_SPREAD,1)
|
||||
set_trait(TRAIT_BIOLUM,1)
|
||||
set_trait(TRAIT_BIOLUM_COLOUR,"#006622")
|
||||
set_trait(TRAIT_MATURATION,5)
|
||||
set_trait(TRAIT_PRODUCTION,5)
|
||||
set_trait(TRAIT_YIELD,2)
|
||||
set_trait(TRAIT_POTENCY,10)
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#c9fa16")
|
||||
set_trait(TRAIT_WATER_CONSUMPTION, 3)
|
||||
set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.25)
|
||||
|
||||
/datum/seed/berry/poison
|
||||
name = "poisonberries"
|
||||
seed_name = "poison berry"
|
||||
kitchen_tag = "poisonberries"
|
||||
display_name = "poison berry bush"
|
||||
mutants = list("deathberries")
|
||||
chems = list("nutriment" = list(1), "toxin" = list(3,5), "poisonberryjuice" = list(10,5))
|
||||
|
||||
/datum/seed/berry/poison/New()
|
||||
..()
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#6DC961")
|
||||
set_trait(TRAIT_WATER_CONSUMPTION, 3)
|
||||
set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.25)
|
||||
|
||||
/datum/seed/berry/poison/death
|
||||
name = "deathberries"
|
||||
seed_name = "death berry"
|
||||
display_name = "death berry bush"
|
||||
mutants = null
|
||||
chems = list("nutriment" = list(1), "toxin" = list(3,3), "lexorin" = list(1,5))
|
||||
|
||||
/datum/seed/berry/poison/death/New()
|
||||
..()
|
||||
set_trait(TRAIT_YIELD,3)
|
||||
set_trait(TRAIT_POTENCY,50)
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#7A5454")
|
||||
set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.35)
|
||||
@@ -0,0 +1,21 @@
|
||||
/datum/seed/cabbage
|
||||
name = "cabbage"
|
||||
seed_name = "cabbage"
|
||||
display_name = "cabbages"
|
||||
kitchen_tag = "cabbage"
|
||||
chems = list("nutriment" = list(1,10))
|
||||
|
||||
/datum/seed/cabbage/New()
|
||||
..()
|
||||
set_trait(TRAIT_HARVEST_REPEAT,1)
|
||||
set_trait(TRAIT_MATURATION,3)
|
||||
set_trait(TRAIT_PRODUCTION,5)
|
||||
set_trait(TRAIT_YIELD,4)
|
||||
set_trait(TRAIT_POTENCY,10)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"cabbage")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#84BD82")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#6D9C6B")
|
||||
set_trait(TRAIT_PLANT_ICON,"vine2")
|
||||
set_trait(TRAIT_IDEAL_LIGHT, 6)
|
||||
set_trait(TRAIT_WATER_CONSUMPTION, 6)
|
||||
set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.15)
|
||||
@@ -0,0 +1,17 @@
|
||||
/datum/seed/carrots
|
||||
name = "carrot"
|
||||
seed_name = "carrot"
|
||||
display_name = "carrots"
|
||||
kitchen_tag = "carrot"
|
||||
chems = list("nutriment" = list(1,20), "imidazoline" = list(3,5), "carrotjuice" = list(10,20))
|
||||
|
||||
/datum/seed/carrots/New()
|
||||
..()
|
||||
set_trait(TRAIT_MATURATION,10)
|
||||
set_trait(TRAIT_PRODUCTION,1)
|
||||
set_trait(TRAIT_YIELD,5)
|
||||
set_trait(TRAIT_POTENCY,10)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"carrot")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#FFDB4A")
|
||||
set_trait(TRAIT_PLANT_ICON,"carrot")
|
||||
set_trait(TRAIT_WATER_CONSUMPTION, 6)
|
||||
@@ -0,0 +1,17 @@
|
||||
/datum/seed/celery
|
||||
name = "celery"
|
||||
seed_name = "celery"
|
||||
display_name = "celery"
|
||||
kitchen_tag = "celery"
|
||||
chems = list("nutriment" = list(5,20))
|
||||
|
||||
/datum/seed/celery/New()
|
||||
..()
|
||||
set_trait(TRAIT_HARVEST_REPEAT,1)
|
||||
set_trait(TRAIT_MATURATION,6)
|
||||
set_trait(TRAIT_PRODUCTION,4)
|
||||
set_trait(TRAIT_YIELD,3)
|
||||
set_trait(TRAIT_POTENCY,8)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"stalk")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#56FD56")
|
||||
set_trait(TRAIT_PLANT_ICON,"stalk3")
|
||||
@@ -0,0 +1,20 @@
|
||||
/datum/seed/cherries
|
||||
name = "cherry"
|
||||
seed_name = "cherry"
|
||||
seed_noun = "pits"
|
||||
display_name = "cherry tree"
|
||||
kitchen_tag = "cherries"
|
||||
chems = list("nutriment" = list(1,15), "sugar" = list(1,15), "cherryjelly" = list(10,15))
|
||||
|
||||
/datum/seed/cherries/New()
|
||||
..()
|
||||
set_trait(TRAIT_HARVEST_REPEAT,1)
|
||||
set_trait(TRAIT_JUICY,1)
|
||||
set_trait(TRAIT_MATURATION,5)
|
||||
set_trait(TRAIT_PRODUCTION,5)
|
||||
set_trait(TRAIT_YIELD,3)
|
||||
set_trait(TRAIT_POTENCY,10)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"cherry")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#A80000")
|
||||
set_trait(TRAIT_PLANT_ICON,"tree2")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#2F7D2D")
|
||||
@@ -0,0 +1,35 @@
|
||||
// Chili plants/variants.
|
||||
/datum/seed/chili
|
||||
name = "chili"
|
||||
seed_name = "chili"
|
||||
display_name = "chili plants"
|
||||
kitchen_tag = "chili"
|
||||
chems = list("capsaicin" = list(3,5), "nutriment" = list(1,25))
|
||||
mutants = list("icechili")
|
||||
|
||||
/datum/seed/chili/New()
|
||||
..()
|
||||
set_trait(TRAIT_HARVEST_REPEAT,1)
|
||||
set_trait(TRAIT_MATURATION,5)
|
||||
set_trait(TRAIT_PRODUCTION,5)
|
||||
set_trait(TRAIT_YIELD,4)
|
||||
set_trait(TRAIT_POTENCY,20)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"chili")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#ED3300")
|
||||
set_trait(TRAIT_PLANT_ICON,"bush2")
|
||||
set_trait(TRAIT_IDEAL_HEAT, 298)
|
||||
set_trait(TRAIT_IDEAL_LIGHT, 7)
|
||||
|
||||
/datum/seed/chili/ice
|
||||
name = "icechili"
|
||||
seed_name = "ice pepper"
|
||||
display_name = "ice-pepper plants"
|
||||
kitchen_tag = "icechili"
|
||||
mutants = null
|
||||
chems = list("frostoil" = list(3,5), "nutriment" = list(1,50))
|
||||
|
||||
/datum/seed/chili/ice/New()
|
||||
..()
|
||||
set_trait(TRAIT_MATURATION,4)
|
||||
set_trait(TRAIT_PRODUCTION,4)
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#00EDC6")
|
||||
@@ -0,0 +1,46 @@
|
||||
/datum/seed/citrus
|
||||
name = "lime"
|
||||
seed_name = "lime"
|
||||
display_name = "lime trees"
|
||||
kitchen_tag = "lime"
|
||||
chems = list("nutriment" = list(1,20), "limejuice" = list(10,20))
|
||||
|
||||
/datum/seed/citrus/New()
|
||||
..()
|
||||
set_trait(TRAIT_HARVEST_REPEAT,1)
|
||||
set_trait(TRAIT_JUICY,1)
|
||||
set_trait(TRAIT_MATURATION,6)
|
||||
set_trait(TRAIT_PRODUCTION,6)
|
||||
set_trait(TRAIT_YIELD,4)
|
||||
set_trait(TRAIT_POTENCY,15)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"treefruit")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#3AF026")
|
||||
set_trait(TRAIT_PLANT_ICON,"tree")
|
||||
set_trait(TRAIT_FLESH_COLOUR,"#3AF026")
|
||||
|
||||
/datum/seed/citrus/lemon
|
||||
name = "lemon"
|
||||
seed_name = "lemon"
|
||||
display_name = "lemon trees"
|
||||
kitchen_tag = "lemon"
|
||||
chems = list("nutriment" = list(1,20), "lemonjuice" = list(10,20))
|
||||
|
||||
/datum/seed/citrus/lemon/New()
|
||||
..()
|
||||
set_trait(TRAIT_PRODUCES_POWER,1)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"lemon")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#F0E226")
|
||||
set_trait(TRAIT_FLESH_COLOUR,"#F0E226")
|
||||
set_trait(TRAIT_IDEAL_LIGHT, 6)
|
||||
|
||||
/datum/seed/citrus/orange
|
||||
name = "orange"
|
||||
seed_name = "orange"
|
||||
display_name = "orange trees"
|
||||
kitchen_tag = "orange"
|
||||
chems = list("nutriment" = list(1,20), "orangejuice" = list(10,20))
|
||||
|
||||
/datum/seed/citrus/orange/New()
|
||||
..()
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#FFC20A")
|
||||
set_trait(TRAIT_FLESH_COLOUR,"#FFC20A")
|
||||
@@ -0,0 +1,19 @@
|
||||
/datum/seed/cocoa
|
||||
name = "cocoa"
|
||||
seed_name = "cacao"
|
||||
display_name = "cacao tree"
|
||||
kitchen_tag = "cocoa"
|
||||
chems = list("nutriment" = list(1,10), "coco" = list(4,5))
|
||||
|
||||
/datum/seed/cocoa/New()
|
||||
..()
|
||||
set_trait(TRAIT_HARVEST_REPEAT,1)
|
||||
set_trait(TRAIT_MATURATION,5)
|
||||
set_trait(TRAIT_PRODUCTION,5)
|
||||
set_trait(TRAIT_YIELD,2)
|
||||
set_trait(TRAIT_POTENCY,10)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"treefruit")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#CCA935")
|
||||
set_trait(TRAIT_PLANT_ICON,"tree2")
|
||||
set_trait(TRAIT_IDEAL_HEAT, 298)
|
||||
set_trait(TRAIT_WATER_CONSUMPTION, 6)
|
||||
@@ -0,0 +1,21 @@
|
||||
/datum/seed/corn
|
||||
name = "corn"
|
||||
seed_name = "corn"
|
||||
display_name = "ears of corn"
|
||||
kitchen_tag = "corn"
|
||||
chems = list("nutriment" = list(1,10), "cornoil" = list(3,15))
|
||||
trash_type = /obj/item/weapon/corncob
|
||||
|
||||
/datum/seed/corn/New()
|
||||
..()
|
||||
set_trait(TRAIT_MATURATION,8)
|
||||
set_trait(TRAIT_PRODUCTION,6)
|
||||
set_trait(TRAIT_YIELD,3)
|
||||
set_trait(TRAIT_POTENCY,20)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"corn")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#FFF23B")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#87C969")
|
||||
set_trait(TRAIT_PLANT_ICON,"corn")
|
||||
set_trait(TRAIT_IDEAL_HEAT, 298)
|
||||
set_trait(TRAIT_IDEAL_LIGHT, 6)
|
||||
set_trait(TRAIT_WATER_CONSUMPTION, 6)
|
||||
@@ -0,0 +1,21 @@
|
||||
/datum/seed/diona
|
||||
name = "diona"
|
||||
seed_name = "diona"
|
||||
seed_noun = "nodes"
|
||||
display_name = "replicant pods"
|
||||
can_self_harvest = 1
|
||||
apply_color_to_mob = FALSE
|
||||
has_mob_product = /mob/living/carbon/alien/diona
|
||||
|
||||
/datum/seed/diona/New()
|
||||
..()
|
||||
set_trait(TRAIT_IMMUTABLE,1)
|
||||
set_trait(TRAIT_ENDURANCE,8)
|
||||
set_trait(TRAIT_MATURATION,5)
|
||||
set_trait(TRAIT_PRODUCTION,10)
|
||||
set_trait(TRAIT_YIELD,1)
|
||||
set_trait(TRAIT_POTENCY,30)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"diona")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#799957")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#66804B")
|
||||
set_trait(TRAIT_PLANT_ICON,"alien4")
|
||||
@@ -0,0 +1,21 @@
|
||||
/datum/seed/durian
|
||||
name = "durian"
|
||||
seed_name = "durian"
|
||||
seed_noun = "pits"
|
||||
display_name = "durian"
|
||||
kitchen_tag = "durian"
|
||||
chems = list("nutriment" = list(1,5), "durianpaste" = list(1, 20))
|
||||
|
||||
/datum/seed/durian/New()
|
||||
..()
|
||||
set_trait(TRAIT_HARVEST_REPEAT,1)
|
||||
set_trait(TRAIT_MATURATION,6)
|
||||
set_trait(TRAIT_PRODUCTION,5)
|
||||
set_trait(TRAIT_YIELD,3)
|
||||
set_trait(TRAIT_POTENCY,10)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"spinefruit")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#757631")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#87C969")
|
||||
set_trait(TRAIT_PLANT_ICON,"tree")
|
||||
set_trait(TRAIT_IDEAL_LIGHT, 8)
|
||||
set_trait(TRAIT_WATER_CONSUMPTION, 8)
|
||||
@@ -0,0 +1,31 @@
|
||||
//Eggplants/varieties.
|
||||
/datum/seed/eggplant
|
||||
name = "eggplant"
|
||||
seed_name = "eggplant"
|
||||
display_name = "eggplants"
|
||||
kitchen_tag = "eggplant"
|
||||
mutants = list("egg-plant")
|
||||
chems = list("nutriment" = list(1,10))
|
||||
|
||||
/datum/seed/eggplant/New()
|
||||
..()
|
||||
set_trait(TRAIT_HARVEST_REPEAT,1)
|
||||
set_trait(TRAIT_MATURATION,6)
|
||||
set_trait(TRAIT_PRODUCTION,6)
|
||||
set_trait(TRAIT_YIELD,2)
|
||||
set_trait(TRAIT_POTENCY,20)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"eggplant")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#892694")
|
||||
set_trait(TRAIT_PLANT_ICON,"bush4")
|
||||
set_trait(TRAIT_IDEAL_HEAT, 298)
|
||||
set_trait(TRAIT_IDEAL_LIGHT, 7)
|
||||
|
||||
// Return of Eggy. Just makes purple eggs. If the reagents are separated from the egg production by xenobotany or RNG, it's still an Egg plant.
|
||||
/datum/seed/eggplant/egg
|
||||
name = "egg-plant"
|
||||
seed_name = "egg-plant"
|
||||
display_name = "egg-plants"
|
||||
kitchen_tag = "egg-plant"
|
||||
mutants = null
|
||||
chems = list("nutriment" = list(1,5), "egg" = list(3,12))
|
||||
has_item_product = /obj/item/weapon/reagent_containers/food/snacks/egg/purple
|
||||
@@ -0,0 +1,108 @@
|
||||
//Flowers/varieties
|
||||
/datum/seed/flower
|
||||
name = "harebells"
|
||||
seed_name = "harebell"
|
||||
display_name = "harebells"
|
||||
kitchen_tag = "harebell"
|
||||
chems = list("nutriment" = list(1,20))
|
||||
|
||||
/datum/seed/flower/New()
|
||||
..()
|
||||
set_trait(TRAIT_MATURATION,7)
|
||||
set_trait(TRAIT_PRODUCTION,1)
|
||||
set_trait(TRAIT_YIELD,2)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"flower5")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#C492D6")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#6B8C5E")
|
||||
set_trait(TRAIT_PLANT_ICON,"flower")
|
||||
set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.15)
|
||||
|
||||
/datum/seed/flower/poppy
|
||||
name = "poppies"
|
||||
seed_name = "poppy"
|
||||
display_name = "poppies"
|
||||
kitchen_tag = "poppy"
|
||||
chems = list("nutriment" = list(1,20), "bicaridine" = list(1,10))
|
||||
|
||||
/datum/seed/flower/poppy/New()
|
||||
..()
|
||||
set_trait(TRAIT_POTENCY,20)
|
||||
set_trait(TRAIT_MATURATION,8)
|
||||
set_trait(TRAIT_PRODUCTION,6)
|
||||
set_trait(TRAIT_YIELD,6)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"flower3")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#B33715")
|
||||
set_trait(TRAIT_PLANT_ICON,"flower3")
|
||||
set_trait(TRAIT_IDEAL_LIGHT, 6)
|
||||
set_trait(TRAIT_WATER_CONSUMPTION, 0.5)
|
||||
set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.15)
|
||||
|
||||
/datum/seed/flower/sunflower
|
||||
name = "sunflowers"
|
||||
seed_name = "sunflower"
|
||||
display_name = "sunflowers"
|
||||
kitchen_tag = "sunflower"
|
||||
|
||||
/datum/seed/flower/sunflower/New()
|
||||
..()
|
||||
set_trait(TRAIT_MATURATION,6)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"flower2")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#FFF700")
|
||||
set_trait(TRAIT_PLANT_ICON,"flower2")
|
||||
set_trait(TRAIT_IDEAL_LIGHT, 7)
|
||||
set_trait(TRAIT_WATER_CONSUMPTION, 6)
|
||||
set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.15)
|
||||
|
||||
/datum/seed/flower/lavender
|
||||
name = "lavender"
|
||||
seed_name = "lavender"
|
||||
display_name = "lavender"
|
||||
kitchen_tag = "lavender"
|
||||
chems = list("nutriment" = list(1,20), "bicaridine" = list(1,10))
|
||||
|
||||
/datum/seed/flower/lavender/New()
|
||||
..()
|
||||
set_trait(TRAIT_MATURATION,7)
|
||||
set_trait(TRAIT_PRODUCTION,5)
|
||||
set_trait(TRAIT_YIELD,5)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"flower6")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#B57EDC")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#6B8C5E")
|
||||
set_trait(TRAIT_PLANT_ICON,"flower4")
|
||||
set_trait(TRAIT_IDEAL_LIGHT, 7)
|
||||
set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.05)
|
||||
set_trait(TRAIT_WATER_CONSUMPTION, 0.5)
|
||||
|
||||
/datum/seed/flower/rose
|
||||
name = "rose"
|
||||
seed_name = "rose"
|
||||
display_name = "rose"
|
||||
kitchen_tag = "rose"
|
||||
mutants = list("bloodrose")
|
||||
chems = list("nutriment" = list(1,5), "stoxin" = list(0,2))
|
||||
|
||||
/datum/seed/flower/rose/New()
|
||||
..()
|
||||
set_trait(TRAIT_MATURATION,7)
|
||||
set_trait(TRAIT_PRODUCTION,5)
|
||||
set_trait(TRAIT_YIELD,3)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"flowers")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#ce0e0e")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#6B8C5E")
|
||||
set_trait(TRAIT_PLANT_ICON,"bush5")
|
||||
set_trait(TRAIT_IDEAL_LIGHT, 7)
|
||||
set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.1)
|
||||
set_trait(TRAIT_WATER_CONSUMPTION, 0.5)
|
||||
set_trait(TRAIT_STINGS,1)
|
||||
|
||||
/datum/seed/flower/rose/blood
|
||||
name = "bloodrose"
|
||||
display_name = "bleeding rose"
|
||||
mutants = null
|
||||
chems = list("nutriment" = list(1,5), "stoxin" = list(1,5), "blood" = list(0,2))
|
||||
|
||||
/datum/seed/flower/rose/blood/New()
|
||||
..()
|
||||
set_trait(TRAIT_IDEAL_LIGHT, 1)
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#5e0303")
|
||||
set_trait(TRAIT_CARNIVOROUS,1)
|
||||
@@ -0,0 +1,15 @@
|
||||
/datum/seed/gelthi
|
||||
name = "gelthi"
|
||||
seed_name = "gelthi"
|
||||
display_name = "gelthi plant"
|
||||
kitchen_tag = "gelthi"
|
||||
chems = list("stoxin" = list(1,5),"capsaicin" = list(1,5),"nutriment" = list(1,5))
|
||||
|
||||
/datum/seed/gelthi/New()
|
||||
..()
|
||||
set_trait(TRAIT_PLANT_ICON,"mushroom3")
|
||||
set_trait(TRAIT_ENDURANCE,15)
|
||||
set_trait(TRAIT_MATURATION,6)
|
||||
set_trait(TRAIT_PRODUCTION,6)
|
||||
set_trait(TRAIT_YIELD,2)
|
||||
set_trait(TRAIT_POTENCY,1)
|
||||
@@ -0,0 +1,25 @@
|
||||
// Gnomes
|
||||
/datum/seed/gnomes
|
||||
name = "gnomes"
|
||||
seed_name = "gnomes"
|
||||
display_name = "gnomes"
|
||||
force_layer = 3
|
||||
chems = list("magicdust" = list(5,20))
|
||||
|
||||
/datum/seed/gnomes/New()
|
||||
..()
|
||||
set_trait(TRAIT_HARVEST_REPEAT,1)
|
||||
set_trait(TRAIT_PLANT_ICON,"gnomes")
|
||||
set_trait(TRAIT_PRODUCT_ICON,"gnomes")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"")
|
||||
set_trait(TRAIT_FLESH_COLOUR,"")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"")
|
||||
set_trait(TRAIT_BIOLUM_COLOUR,"#fff200")
|
||||
set_trait(TRAIT_MATURATION,8)
|
||||
set_trait(TRAIT_PRODUCTION,6)
|
||||
set_trait(TRAIT_BIOLUM,1)
|
||||
set_trait(TRAIT_YIELD,2)
|
||||
set_trait(TRAIT_SPREAD,1)
|
||||
set_trait(TRAIT_POTENCY,10)
|
||||
set_trait(TRAIT_REQUIRES_NUTRIENTS,0)
|
||||
set_trait(TRAIT_REQUIRES_WATER,0)
|
||||
@@ -0,0 +1,33 @@
|
||||
//Grapes/varieties
|
||||
/datum/seed/grapes
|
||||
name = "grapes"
|
||||
seed_name = "grape"
|
||||
display_name = "grapevines"
|
||||
kitchen_tag = "grapes"
|
||||
mutants = list("greengrapes")
|
||||
chems = list("nutriment" = list(1,10), "sugar" = list(1,5), "grapejuice" = list(10,10))
|
||||
|
||||
/datum/seed/grapes/New()
|
||||
..()
|
||||
set_trait(TRAIT_HARVEST_REPEAT,1)
|
||||
set_trait(TRAIT_MATURATION,3)
|
||||
set_trait(TRAIT_PRODUCTION,5)
|
||||
set_trait(TRAIT_YIELD,4)
|
||||
set_trait(TRAIT_POTENCY,10)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"grapes")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#BB6AC4")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#378F2E")
|
||||
set_trait(TRAIT_PLANT_ICON,"vine")
|
||||
set_trait(TRAIT_IDEAL_LIGHT, 6)
|
||||
set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.15)
|
||||
|
||||
/datum/seed/grapes/green
|
||||
name = "greengrapes"
|
||||
seed_name = "green grape"
|
||||
display_name = "green grapevines"
|
||||
mutants = null
|
||||
chems = list("nutriment" = list(1,10), "kelotane" = list(3,5), "grapejuice" = list(10,10))
|
||||
|
||||
/datum/seed/grapes/green/New()
|
||||
..()
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"42ed2f")
|
||||
@@ -0,0 +1,19 @@
|
||||
/datum/seed/grass
|
||||
name = "grass"
|
||||
seed_name = "grass"
|
||||
display_name = "grass"
|
||||
kitchen_tag = "grass"
|
||||
chems = list("nutriment" = list(1,20))
|
||||
|
||||
/datum/seed/grass/New()
|
||||
..()
|
||||
set_trait(TRAIT_HARVEST_REPEAT,1)
|
||||
set_trait(TRAIT_MATURATION,2)
|
||||
set_trait(TRAIT_PRODUCTION,5)
|
||||
set_trait(TRAIT_YIELD,5)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"grass")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#09FF00")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#07D900")
|
||||
set_trait(TRAIT_PLANT_ICON,"grass")
|
||||
set_trait(TRAIT_WATER_CONSUMPTION, 0.5)
|
||||
set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.15)
|
||||
@@ -0,0 +1,15 @@
|
||||
/datum/seed/jurlmah
|
||||
name = "jurlmah"
|
||||
seed_name = "jurl'mah"
|
||||
display_name = "jurl'mah reeds"
|
||||
kitchen_tag = "jurlmah"
|
||||
chems = list("serotrotium" = list(1,5),"nutriment" = list(1,5))
|
||||
|
||||
/datum/seed/jurlmah/New()
|
||||
..()
|
||||
set_trait(TRAIT_PLANT_ICON,"mushroom9")
|
||||
set_trait(TRAIT_ENDURANCE,12)
|
||||
set_trait(TRAIT_MATURATION,8)
|
||||
set_trait(TRAIT_PRODUCTION,9)
|
||||
set_trait(TRAIT_YIELD,3)
|
||||
set_trait(TRAIT_POTENCY,10)
|
||||
@@ -0,0 +1,19 @@
|
||||
/datum/seed/kudzu
|
||||
name = "kudzu"
|
||||
seed_name = "kudzu"
|
||||
display_name = "kudzu vines"
|
||||
kitchen_tag = "kudzu"
|
||||
chems = list("nutriment" = list(1,50), "anti_toxin" = list(1,25))
|
||||
|
||||
/datum/seed/kudzu/New()
|
||||
..()
|
||||
set_trait(TRAIT_MATURATION,6)
|
||||
set_trait(TRAIT_PRODUCTION,6)
|
||||
set_trait(TRAIT_YIELD,4)
|
||||
set_trait(TRAIT_POTENCY,10)
|
||||
set_trait(TRAIT_SPREAD,2)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"treefruit")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#96D278")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#6F7A63")
|
||||
set_trait(TRAIT_PLANT_ICON,"vine2")
|
||||
set_trait(TRAIT_WATER_CONSUMPTION, 0.5)
|
||||
@@ -0,0 +1,34 @@
|
||||
// Lettuce/varieties.
|
||||
/datum/seed/lettuce
|
||||
name = "lettuce"
|
||||
seed_name = "lettuce"
|
||||
display_name = "lettuce"
|
||||
kitchen_tag = "cabbage"
|
||||
chems = list("nutriment" = list(1,15))
|
||||
|
||||
/datum/seed/lettuce/New()
|
||||
..()
|
||||
set_trait(TRAIT_HARVEST_REPEAT,1)
|
||||
set_trait(TRAIT_MATURATION,4)
|
||||
set_trait(TRAIT_PRODUCTION,5)
|
||||
set_trait(TRAIT_YIELD,6)
|
||||
set_trait(TRAIT_POTENCY,8)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"lettuce")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#A8D0A7")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#6D9C6B")
|
||||
set_trait(TRAIT_PLANT_ICON,"vine2")
|
||||
set_trait(TRAIT_IDEAL_LIGHT, 6)
|
||||
set_trait(TRAIT_WATER_CONSUMPTION, 8)
|
||||
set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.13)
|
||||
|
||||
/datum/seed/lettuce/ice
|
||||
name = "siflettuce"
|
||||
seed_name = "glacial lettuce"
|
||||
display_name = "glacial lettuce"
|
||||
kitchen_tag = "icelettuce"
|
||||
chems = list("nutriment" = list(1,5), "paracetamol" = list(0,2))
|
||||
|
||||
/datum/seed/lettuce/ice/New()
|
||||
..()
|
||||
set_trait(TRAIT_ALTER_TEMP, -5)
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#9ABCC9")
|
||||
@@ -0,0 +1,19 @@
|
||||
/datum/seed/mtear
|
||||
name = "mtear"
|
||||
seed_name = "Malani's tear"
|
||||
display_name = "Malani's tear leaves"
|
||||
kitchen_tag = "mtear"
|
||||
chems = list("honey" = list(1,10), "kelotane" = list(3,5))
|
||||
|
||||
/datum/seed/mtear/New()
|
||||
..()
|
||||
set_trait(TRAIT_MATURATION,3)
|
||||
set_trait(TRAIT_PRODUCTION,5)
|
||||
set_trait(TRAIT_YIELD,4)
|
||||
set_trait(TRAIT_POTENCY,10)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"alien4")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#4CC5C7")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#4CC789")
|
||||
set_trait(TRAIT_PLANT_ICON,"bush7")
|
||||
set_trait(TRAIT_IDEAL_HEAT, 283)
|
||||
set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.15)
|
||||
@@ -0,0 +1,200 @@
|
||||
//Mushrooms/varieties.
|
||||
/datum/seed/mushroom
|
||||
name = "mushrooms"
|
||||
seed_name = "chanterelle"
|
||||
seed_noun = "spores"
|
||||
display_name = "chanterelle mushrooms"
|
||||
mutants = list("reishi","amanita","plumphelmet")
|
||||
chems = list("nutriment" = list(1,25))
|
||||
splat_type = /obj/effect/plant
|
||||
kitchen_tag = "mushroom"
|
||||
|
||||
/datum/seed/mushroom/New()
|
||||
..()
|
||||
set_trait(TRAIT_MATURATION,7)
|
||||
set_trait(TRAIT_PRODUCTION,1)
|
||||
set_trait(TRAIT_YIELD,5)
|
||||
set_trait(TRAIT_POTENCY,1)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"mushroom4")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#DBDA72")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#D9C94E")
|
||||
set_trait(TRAIT_PLANT_ICON,"mushroom")
|
||||
set_trait(TRAIT_WATER_CONSUMPTION, 6)
|
||||
set_trait(TRAIT_IDEAL_HEAT, 288)
|
||||
set_trait(TRAIT_LIGHT_TOLERANCE, 6)
|
||||
|
||||
/datum/seed/mushroom/mold
|
||||
name = "mold"
|
||||
seed_name = "brown mold"
|
||||
display_name = "brown mold"
|
||||
mutants = null
|
||||
|
||||
/datum/seed/mushroom/mold/New()
|
||||
..()
|
||||
set_trait(TRAIT_SPREAD,1)
|
||||
set_trait(TRAIT_MATURATION,10)
|
||||
set_trait(TRAIT_YIELD,-1)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"mushroom5")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#7A5F20")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#7A5F20")
|
||||
set_trait(TRAIT_PLANT_ICON,"mushroom9")
|
||||
|
||||
/datum/seed/mushroom/plump
|
||||
name = "plumphelmet"
|
||||
seed_name = "plump helmet"
|
||||
display_name = "plump helmet mushrooms"
|
||||
mutants = list("walkingmushroom","towercap")
|
||||
chems = list("nutriment" = list(2,10))
|
||||
kitchen_tag = "plumphelmet"
|
||||
|
||||
/datum/seed/mushroom/plump/New()
|
||||
..()
|
||||
set_trait(TRAIT_MATURATION,8)
|
||||
set_trait(TRAIT_YIELD,4)
|
||||
set_trait(TRAIT_POTENCY,0)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"mushroom10")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#B57BB0")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#9E4F9D")
|
||||
set_trait(TRAIT_PLANT_ICON,"mushroom2")
|
||||
|
||||
/datum/seed/mushroom/hallucinogenic
|
||||
name = "reishi"
|
||||
seed_name = "reishi"
|
||||
display_name = "reishi"
|
||||
mutants = list("libertycap","glowshroom")
|
||||
chems = list("nutriment" = list(1,50), "psilocybin" = list(3,5))
|
||||
|
||||
/datum/seed/mushroom/hallucinogenic/New()
|
||||
..()
|
||||
set_trait(TRAIT_MATURATION,10)
|
||||
set_trait(TRAIT_PRODUCTION,5)
|
||||
set_trait(TRAIT_YIELD,4)
|
||||
set_trait(TRAIT_POTENCY,15)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"mushroom11")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#FFB70F")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#F58A18")
|
||||
set_trait(TRAIT_PLANT_ICON,"mushroom6")
|
||||
|
||||
/datum/seed/mushroom/hallucinogenic/strong
|
||||
name = "libertycap"
|
||||
seed_name = "liberty cap"
|
||||
display_name = "liberty cap mushrooms"
|
||||
mutants = null
|
||||
chems = list("nutriment" = list(1), "stoxin" = list(3,3), "space_drugs" = list(1,25))
|
||||
|
||||
/datum/seed/mushroom/hallucinogenic/strong/New()
|
||||
..()
|
||||
set_trait(TRAIT_PRODUCTION,1)
|
||||
set_trait(TRAIT_POTENCY,15)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"mushroom8")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#F2E550")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#D1CA82")
|
||||
set_trait(TRAIT_PLANT_ICON,"mushroom3")
|
||||
|
||||
/datum/seed/mushroom/poison
|
||||
name = "amanita"
|
||||
seed_name = "fly amanita"
|
||||
display_name = "fly amanita mushrooms"
|
||||
mutants = list("destroyingangel","plastic")
|
||||
chems = list("nutriment" = list(1), "amatoxin" = list(3,3), "psilocybin" = list(1,25))
|
||||
|
||||
/datum/seed/mushroom/poison/New()
|
||||
..()
|
||||
set_trait(TRAIT_MATURATION,10)
|
||||
set_trait(TRAIT_PRODUCTION,5)
|
||||
set_trait(TRAIT_YIELD,4)
|
||||
set_trait(TRAIT_POTENCY,10)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"mushroom")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#FF4545")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#E0DDBA")
|
||||
set_trait(TRAIT_PLANT_ICON,"mushroom4")
|
||||
|
||||
/datum/seed/mushroom/poison/death
|
||||
name = "destroyingangel"
|
||||
seed_name = "destroying angel"
|
||||
display_name = "destroying angel mushrooms"
|
||||
mutants = null
|
||||
chems = list("nutriment" = list(1,50), "amatoxin" = list(13,3), "psilocybin" = list(1,25))
|
||||
|
||||
/datum/seed/mushroom/poison/death/New()
|
||||
..()
|
||||
set_trait(TRAIT_MATURATION,12)
|
||||
set_trait(TRAIT_YIELD,2)
|
||||
set_trait(TRAIT_POTENCY,35)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"mushroom3")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#EDE8EA")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#E6D8DD")
|
||||
set_trait(TRAIT_PLANT_ICON,"mushroom5")
|
||||
|
||||
/datum/seed/mushroom/towercap
|
||||
name = "towercap"
|
||||
seed_name = "tower cap"
|
||||
display_name = "tower caps"
|
||||
chems = list("woodpulp" = list(10,1))
|
||||
mutants = null
|
||||
has_item_product = /obj/item/stack/material/log
|
||||
|
||||
/datum/seed/mushroom/towercap/New()
|
||||
..()
|
||||
set_trait(TRAIT_MATURATION,15)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"mushroom7")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#79A36D")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#857F41")
|
||||
set_trait(TRAIT_PLANT_ICON,"mushroom8")
|
||||
|
||||
/datum/seed/mushroom/glowshroom
|
||||
name = "glowshroom"
|
||||
seed_name = "glowshroom"
|
||||
display_name = "glowshrooms"
|
||||
mutants = null
|
||||
chems = list("radium" = list(1,20))
|
||||
|
||||
/datum/seed/mushroom/glowshroom/New()
|
||||
..()
|
||||
set_trait(TRAIT_SPREAD,1)
|
||||
set_trait(TRAIT_MATURATION,15)
|
||||
set_trait(TRAIT_YIELD,3)
|
||||
set_trait(TRAIT_POTENCY,30)
|
||||
set_trait(TRAIT_BIOLUM,1)
|
||||
set_trait(TRAIT_BIOLUM_COLOUR,"#006622")
|
||||
set_trait(TRAIT_PRODUCT_ICON,"mushroom2")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#DDFAB6")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#EFFF8A")
|
||||
set_trait(TRAIT_PLANT_ICON,"mushroom7")
|
||||
|
||||
/datum/seed/mushroom/plastic
|
||||
name = "plastic"
|
||||
seed_name = "plastellium"
|
||||
display_name = "plastellium"
|
||||
mutants = null
|
||||
chems = list("plasticide" = list(1,10))
|
||||
|
||||
/datum/seed/mushroom/plastic/New()
|
||||
..()
|
||||
set_trait(TRAIT_MATURATION,5)
|
||||
set_trait(TRAIT_PRODUCTION,6)
|
||||
set_trait(TRAIT_YIELD,6)
|
||||
set_trait(TRAIT_POTENCY,20)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"mushroom6")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#E6E6E6")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#E6E6E6")
|
||||
set_trait(TRAIT_PLANT_ICON,"mushroom10")
|
||||
|
||||
/datum/seed/mushroom/spore
|
||||
name = "sporeshroom"
|
||||
seed_name = "corpellian"
|
||||
display_name = "corpellian"
|
||||
mutants = null
|
||||
chems = list("serotrotium" = list(5,10), "mold" = list(1,10))
|
||||
|
||||
/datum/seed/mushroom/spore/New()
|
||||
..()
|
||||
set_trait(TRAIT_MATURATION,15)
|
||||
set_trait(TRAIT_PRODUCTION,5)
|
||||
set_trait(TRAIT_YIELD,4)
|
||||
set_trait(TRAIT_POTENCY,20)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"mushroom5")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#e29cd2")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#f8e6f4")
|
||||
set_trait(TRAIT_PLANT_ICON,"mushroom9")
|
||||
set_trait(TRAIT_SPORING, TRUE)
|
||||
@@ -0,0 +1,35 @@
|
||||
// Nettles/variants.
|
||||
/datum/seed/nettle
|
||||
name = "nettle"
|
||||
seed_name = "nettle"
|
||||
display_name = "nettles"
|
||||
mutants = list("deathnettle")
|
||||
chems = list("nutriment" = list(1,50), "sacid" = list(0,1))
|
||||
kitchen_tag = "nettle"
|
||||
|
||||
/datum/seed/nettle/New()
|
||||
..()
|
||||
set_trait(TRAIT_HARVEST_REPEAT,1)
|
||||
set_trait(TRAIT_MATURATION,6)
|
||||
set_trait(TRAIT_PRODUCTION,6)
|
||||
set_trait(TRAIT_YIELD,4)
|
||||
set_trait(TRAIT_POTENCY,10)
|
||||
set_trait(TRAIT_STINGS,1)
|
||||
set_trait(TRAIT_PLANT_ICON,"bush5")
|
||||
set_trait(TRAIT_PRODUCT_ICON,"nettles")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#728A54")
|
||||
|
||||
/datum/seed/nettle/death
|
||||
name = "deathnettle"
|
||||
seed_name = "death nettle"
|
||||
display_name = "death nettles"
|
||||
kitchen_tag = "deathnettle"
|
||||
mutants = null
|
||||
chems = list("nutriment" = list(1,50), "pacid" = list(0,1))
|
||||
|
||||
/datum/seed/nettle/death/New()
|
||||
..()
|
||||
set_trait(TRAIT_MATURATION,8)
|
||||
set_trait(TRAIT_YIELD,2)
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#8C5030")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#634941")
|
||||
@@ -0,0 +1,17 @@
|
||||
/datum/seed/onion
|
||||
name = "onion"
|
||||
seed_name = "onion"
|
||||
display_name = "onions"
|
||||
kitchen_tag = "onion"
|
||||
chems = list("nutriment" = list(1,10))
|
||||
|
||||
/datum/seed/onion/New()
|
||||
..()
|
||||
set_trait(TRAIT_MATURATION,10)
|
||||
set_trait(TRAIT_PRODUCTION,1)
|
||||
set_trait(TRAIT_YIELD,4)
|
||||
set_trait(TRAIT_POTENCY,10)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"onion")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#E0C367")
|
||||
set_trait(TRAIT_PLANT_ICON,"carrot")
|
||||
set_trait(TRAIT_WATER_CONSUMPTION, 6)
|
||||
@@ -0,0 +1,19 @@
|
||||
//Everything else
|
||||
/datum/seed/peanuts
|
||||
name = "peanut"
|
||||
seed_name = "peanut"
|
||||
display_name = "peanut vines"
|
||||
kitchen_tag = "peanut"
|
||||
chems = list("nutriment" = list(1,10), "peanutoil" = list(3,10))
|
||||
|
||||
/datum/seed/peanuts/New()
|
||||
..()
|
||||
set_trait(TRAIT_HARVEST_REPEAT,1)
|
||||
set_trait(TRAIT_MATURATION,6)
|
||||
set_trait(TRAIT_PRODUCTION,6)
|
||||
set_trait(TRAIT_YIELD,6)
|
||||
set_trait(TRAIT_POTENCY,10)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"nuts")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#C4AE7A")
|
||||
set_trait(TRAIT_PLANT_ICON,"bush2")
|
||||
set_trait(TRAIT_IDEAL_LIGHT, 6)
|
||||
@@ -0,0 +1,18 @@
|
||||
/datum/seed/potato
|
||||
name = "potato"
|
||||
seed_name = "potato"
|
||||
display_name = "potatoes"
|
||||
kitchen_tag = "potato"
|
||||
chems = list("nutriment" = list(1,10), "potatojuice" = list(10,10))
|
||||
|
||||
/datum/seed/potato/New()
|
||||
..()
|
||||
set_trait(TRAIT_PRODUCES_POWER,1)
|
||||
set_trait(TRAIT_MATURATION,10)
|
||||
set_trait(TRAIT_PRODUCTION,1)
|
||||
set_trait(TRAIT_YIELD,4)
|
||||
set_trait(TRAIT_POTENCY,10)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"potato")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#D4CAB4")
|
||||
set_trait(TRAIT_PLANT_ICON,"bush2")
|
||||
set_trait(TRAIT_WATER_CONSUMPTION, 6)
|
||||
@@ -0,0 +1,19 @@
|
||||
/datum/seed/pumpkin
|
||||
name = "pumpkin"
|
||||
seed_name = "pumpkin"
|
||||
display_name = "pumpkin vine"
|
||||
kitchen_tag = "pumpkin"
|
||||
chems = list("nutriment" = list(1,6))
|
||||
|
||||
/datum/seed/pumpkin/New()
|
||||
..()
|
||||
set_trait(TRAIT_HARVEST_REPEAT,1)
|
||||
set_trait(TRAIT_MATURATION,6)
|
||||
set_trait(TRAIT_PRODUCTION,6)
|
||||
set_trait(TRAIT_YIELD,3)
|
||||
set_trait(TRAIT_POTENCY,10)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"vine2")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#DBAC02")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#21661E")
|
||||
set_trait(TRAIT_PLANT_ICON,"vine2")
|
||||
set_trait(TRAIT_WATER_CONSUMPTION, 6)
|
||||
@@ -0,0 +1,17 @@
|
||||
/datum/seed/rhubarb
|
||||
name = "rhubarb"
|
||||
seed_name = "rhubarb"
|
||||
display_name = "rhubarb"
|
||||
kitchen_tag = "rhubarb"
|
||||
chems = list("nutriment" = list(1,15))
|
||||
|
||||
/datum/seed/rhubarb/New()
|
||||
..()
|
||||
set_trait(TRAIT_HARVEST_REPEAT,1)
|
||||
set_trait(TRAIT_MATURATION,3)
|
||||
set_trait(TRAIT_PRODUCTION,5)
|
||||
set_trait(TRAIT_YIELD,5)
|
||||
set_trait(TRAIT_POTENCY,6)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"stalk")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#FD5656")
|
||||
set_trait(TRAIT_PLANT_ICON,"stalk3")
|
||||
@@ -0,0 +1,19 @@
|
||||
/datum/seed/rice
|
||||
name = "rice"
|
||||
seed_name = "rice"
|
||||
display_name = "rice stalks"
|
||||
kitchen_tag = "rice"
|
||||
chems = list("nutriment" = list(1,25), "rice" = list(10,15))
|
||||
|
||||
/datum/seed/rice/New()
|
||||
..()
|
||||
set_trait(TRAIT_MATURATION,6)
|
||||
set_trait(TRAIT_PRODUCTION,1)
|
||||
set_trait(TRAIT_YIELD,4)
|
||||
set_trait(TRAIT_POTENCY,5)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"rice")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#D5E6D1")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#8ED17D")
|
||||
set_trait(TRAIT_PLANT_ICON,"stalk2")
|
||||
set_trait(TRAIT_WATER_CONSUMPTION, 6)
|
||||
set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.15)
|
||||
@@ -0,0 +1,19 @@
|
||||
/datum/seed/shand
|
||||
name = "shand"
|
||||
seed_name = "Selem's hand"
|
||||
display_name = "Selem's hand leaves"
|
||||
kitchen_tag = "shand"
|
||||
chems = list("bicaridine" = list(0,10))
|
||||
|
||||
/datum/seed/shand/New()
|
||||
..()
|
||||
set_trait(TRAIT_MATURATION,3)
|
||||
set_trait(TRAIT_PRODUCTION,5)
|
||||
set_trait(TRAIT_YIELD,4)
|
||||
set_trait(TRAIT_POTENCY,10)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"alien3")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#378C61")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#378C61")
|
||||
set_trait(TRAIT_PLANT_ICON,"tree5")
|
||||
set_trait(TRAIT_IDEAL_HEAT, 283)
|
||||
set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.15)
|
||||
@@ -0,0 +1,17 @@
|
||||
/datum/seed/soybean
|
||||
name = "soybean"
|
||||
seed_name = "soybean"
|
||||
display_name = "soybeans"
|
||||
kitchen_tag = "soybeans"
|
||||
chems = list("nutriment" = list(1,20), "soymilk" = list(10,20))
|
||||
|
||||
/datum/seed/soybean/New()
|
||||
..()
|
||||
set_trait(TRAIT_HARVEST_REPEAT,1)
|
||||
set_trait(TRAIT_MATURATION,4)
|
||||
set_trait(TRAIT_PRODUCTION,4)
|
||||
set_trait(TRAIT_YIELD,3)
|
||||
set_trait(TRAIT_POTENCY,5)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"bean")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#EBE7C0")
|
||||
set_trait(TRAIT_PLANT_ICON,"stalk")
|
||||
@@ -0,0 +1,22 @@
|
||||
/datum/seed/spineapple
|
||||
name = "spineapple"
|
||||
seed_name = "spineapple"
|
||||
display_name = "spineapple"
|
||||
kitchen_tag = "pineapple"
|
||||
chems = list("nutriment" = list(1,5), "enzyme" = list(1,5), "pineapplejuice" = list(1, 20))
|
||||
|
||||
/datum/seed/spineapple/New()
|
||||
..()
|
||||
set_trait(TRAIT_HARVEST_REPEAT,1)
|
||||
set_trait(TRAIT_MATURATION,10)
|
||||
set_trait(TRAIT_PRODUCTION,6)
|
||||
set_trait(TRAIT_YIELD,1)
|
||||
set_trait(TRAIT_POTENCY,13)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"pineapple")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#FFF23B")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#87C969")
|
||||
set_trait(TRAIT_PLANT_ICON,"corn")
|
||||
set_trait(TRAIT_IDEAL_HEAT, 298)
|
||||
set_trait(TRAIT_IDEAL_LIGHT, 4)
|
||||
set_trait(TRAIT_WATER_CONSUMPTION, 8)
|
||||
set_trait(TRAIT_STINGS,1)
|
||||
@@ -0,0 +1,19 @@
|
||||
/datum/seed/sugarcane
|
||||
name = "sugarcane"
|
||||
seed_name = "sugarcane"
|
||||
display_name = "sugarcanes"
|
||||
kitchen_tag = "sugarcanes"
|
||||
chems = list("sugar" = list(4,5))
|
||||
|
||||
/datum/seed/sugarcane/New()
|
||||
..()
|
||||
set_trait(TRAIT_HARVEST_REPEAT,1)
|
||||
set_trait(TRAIT_MATURATION,3)
|
||||
set_trait(TRAIT_PRODUCTION,6)
|
||||
set_trait(TRAIT_YIELD,4)
|
||||
set_trait(TRAIT_POTENCY,10)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"stalk")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#B4D6BD")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#6BBD68")
|
||||
set_trait(TRAIT_PLANT_ICON,"stalk3")
|
||||
set_trait(TRAIT_IDEAL_HEAT, 298)
|
||||
@@ -0,0 +1,15 @@
|
||||
/datum/seed/surik
|
||||
name = "surik"
|
||||
seed_name = "surik"
|
||||
display_name = "surik vine"
|
||||
kitchen_tag = "surik"
|
||||
chems = list("impedrezene" = list(1,3),"synaptizine" = list(1,2),"nutriment" = list(1,5))
|
||||
|
||||
/datum/seed/surik/New()
|
||||
..()
|
||||
set_trait(TRAIT_PLANT_ICON,"bush6")
|
||||
set_trait(TRAIT_ENDURANCE,18)
|
||||
set_trait(TRAIT_MATURATION,7)
|
||||
set_trait(TRAIT_PRODUCTION,7)
|
||||
set_trait(TRAIT_YIELD,3)
|
||||
set_trait(TRAIT_POTENCY,3)
|
||||
@@ -0,0 +1,16 @@
|
||||
/datum/seed/telriis
|
||||
name = "telriis"
|
||||
seed_name = "telriis"
|
||||
display_name = "telriis grass"
|
||||
kitchen_tag = "telriis"
|
||||
chems = list("pwine" = list(1,5), "nutriment" = list(1,6))
|
||||
|
||||
/datum/seed/telriis/New()
|
||||
..()
|
||||
set_trait(TRAIT_PLANT_ICON,"ambrosia")
|
||||
set_trait(TRAIT_PRODUCT_ICON,"ambrosia")
|
||||
set_trait(TRAIT_ENDURANCE,50)
|
||||
set_trait(TRAIT_MATURATION,5)
|
||||
set_trait(TRAIT_PRODUCTION,5)
|
||||
set_trait(TRAIT_YIELD,4)
|
||||
set_trait(TRAIT_POTENCY,5)
|
||||
@@ -0,0 +1,16 @@
|
||||
/datum/seed/thaadra
|
||||
name = "thaadra"
|
||||
seed_name = "thaa'dra"
|
||||
display_name = "thaa'dra lichen"
|
||||
kitchen_tag = "thaadra"
|
||||
chems = list("frostoil" = list(1,5),"nutriment" = list(1,5))
|
||||
|
||||
/datum/seed/thaadra/New()
|
||||
..()
|
||||
set_trait(TRAIT_PLANT_ICON,"grass")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#ABC7D2")
|
||||
set_trait(TRAIT_ENDURANCE,10)
|
||||
set_trait(TRAIT_MATURATION,5)
|
||||
set_trait(TRAIT_PRODUCTION,9)
|
||||
set_trait(TRAIT_YIELD,2)
|
||||
set_trait(TRAIT_POTENCY,5)
|
||||
@@ -0,0 +1,75 @@
|
||||
//Tomatoes/variants.
|
||||
/datum/seed/tomato
|
||||
name = "tomato"
|
||||
seed_name = "tomato"
|
||||
display_name = "tomato plant"
|
||||
mutants = list("bluetomato","bloodtomato")
|
||||
chems = list("nutriment" = list(1,10), "tomatojuice" = list(10,10))
|
||||
kitchen_tag = "tomato"
|
||||
|
||||
/datum/seed/tomato/New()
|
||||
..()
|
||||
set_trait(TRAIT_HARVEST_REPEAT,1)
|
||||
set_trait(TRAIT_JUICY,1)
|
||||
set_trait(TRAIT_MATURATION,8)
|
||||
set_trait(TRAIT_PRODUCTION,6)
|
||||
set_trait(TRAIT_YIELD,2)
|
||||
set_trait(TRAIT_POTENCY,10)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"tomato")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#D10000")
|
||||
set_trait(TRAIT_PLANT_ICON,"bush3")
|
||||
set_trait(TRAIT_IDEAL_LIGHT, 6)
|
||||
set_trait(TRAIT_WATER_CONSUMPTION, 6)
|
||||
set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.25)
|
||||
|
||||
/datum/seed/tomato/blood
|
||||
name = "bloodtomato"
|
||||
seed_name = "blood tomato"
|
||||
display_name = "blood tomato plant"
|
||||
mutants = list("killertomato")
|
||||
chems = list("nutriment" = list(1,10), "blood" = list(1,5))
|
||||
splat_type = /obj/effect/decal/cleanable/blood/splatter
|
||||
|
||||
/datum/seed/tomato/blood/New()
|
||||
..()
|
||||
set_trait(TRAIT_YIELD,3)
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#FF0000")
|
||||
|
||||
/datum/seed/tomato/killer
|
||||
name = "killertomato"
|
||||
seed_name = "killer tomato"
|
||||
display_name = "killer tomato plant"
|
||||
mutants = null
|
||||
can_self_harvest = 1
|
||||
has_mob_product = /mob/living/simple_mob/tomato
|
||||
|
||||
/datum/seed/tomato/killer/New()
|
||||
..()
|
||||
set_trait(TRAIT_YIELD,2)
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#A86747")
|
||||
|
||||
/datum/seed/tomato/blue
|
||||
name = "bluetomato"
|
||||
seed_name = "blue tomato"
|
||||
display_name = "blue tomato plant"
|
||||
mutants = list("bluespacetomato")
|
||||
chems = list("nutriment" = list(1,20), "lube" = list(1,5))
|
||||
|
||||
/datum/seed/tomato/blue/New()
|
||||
..()
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#4D86E8")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#070AAD")
|
||||
|
||||
/datum/seed/tomato/blue/teleport
|
||||
name = "bluespacetomato"
|
||||
seed_name = "bluespace tomato"
|
||||
display_name = "bluespace tomato plant"
|
||||
mutants = null
|
||||
chems = list("nutriment" = list(1,20), "singulo" = list(10,5))
|
||||
|
||||
/datum/seed/tomato/blue/teleport/New()
|
||||
..()
|
||||
set_trait(TRAIT_TELEPORTING,1)
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#00E5FF")
|
||||
set_trait(TRAIT_BIOLUM,1)
|
||||
set_trait(TRAIT_BIOLUM_COLOUR,"#4DA4A8")
|
||||
@@ -0,0 +1,15 @@
|
||||
/datum/seed/vale
|
||||
name = "vale"
|
||||
seed_name = "vale"
|
||||
display_name = "vale bush"
|
||||
kitchen_tag = "vale"
|
||||
chems = list("paracetamol" = list(1,5),"dexalin" = list(1,2),"nutriment"= list(1,5))
|
||||
|
||||
/datum/seed/vale/New()
|
||||
..()
|
||||
set_trait(TRAIT_PLANT_ICON,"flower4")
|
||||
set_trait(TRAIT_ENDURANCE,15)
|
||||
set_trait(TRAIT_MATURATION,8)
|
||||
set_trait(TRAIT_PRODUCTION,10)
|
||||
set_trait(TRAIT_YIELD,3)
|
||||
set_trait(TRAIT_POTENCY,3)
|
||||
@@ -0,0 +1,19 @@
|
||||
/datum/seed/vanilla
|
||||
name = "vanilla"
|
||||
seed_name = "vanilla"
|
||||
display_name = "vanilla"
|
||||
kitchen_tag = "vanilla"
|
||||
chems = list("nutriment" = list(1,10), "vanilla" = list(2,8), "sugar" = list(1, 4))
|
||||
|
||||
/datum/seed/vanilla/New()
|
||||
..()
|
||||
set_trait(TRAIT_MATURATION,7)
|
||||
set_trait(TRAIT_PRODUCTION,5)
|
||||
set_trait(TRAIT_YIELD,3)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"chili")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#B57EDC")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#6B8C5E")
|
||||
set_trait(TRAIT_PLANT_ICON,"bush5")
|
||||
set_trait(TRAIT_IDEAL_LIGHT, 8)
|
||||
set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.3)
|
||||
set_trait(TRAIT_WATER_CONSUMPTION, 0.5)
|
||||
@@ -0,0 +1,54 @@
|
||||
//Wabback / varieties.
|
||||
/datum/seed/wabback
|
||||
name = "whitewabback"
|
||||
seed_name = "white wabback"
|
||||
seed_noun = "nodes"
|
||||
display_name = "white wabback"
|
||||
chems = list("nutriment" = list(1,10), "protein" = list(1,5), "enzyme" = list(0,3))
|
||||
kitchen_tag = "wabback"
|
||||
mutants = list("blackwabback","wildwabback")
|
||||
has_item_product = /obj/item/stack/material/cloth
|
||||
|
||||
/datum/seed/wabback/New()
|
||||
..()
|
||||
set_trait(TRAIT_IDEAL_LIGHT, 5)
|
||||
set_trait(TRAIT_MATURATION,8)
|
||||
set_trait(TRAIT_PRODUCTION,3)
|
||||
set_trait(TRAIT_YIELD,2)
|
||||
set_trait(TRAIT_POTENCY,5)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"carrot2")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#E6EDFA")
|
||||
set_trait(TRAIT_PLANT_ICON,"chute")
|
||||
set_trait(TRAIT_PLANT_COLOUR, "#0650ce")
|
||||
set_trait(TRAIT_WATER_CONSUMPTION, 10)
|
||||
set_trait(TRAIT_ALTER_TEMP, -1)
|
||||
set_trait(TRAIT_CARNIVOROUS,1)
|
||||
set_trait(TRAIT_HARVEST_REPEAT,1)
|
||||
set_trait(TRAIT_SPREAD,1)
|
||||
|
||||
/datum/seed/wabback/vine
|
||||
name = "blackwabback"
|
||||
seed_name = "black wabback"
|
||||
display_name = "black wabback"
|
||||
mutants = null
|
||||
chems = list("nutriment" = list(1,3), "protein" = list(1,10), "serotrotium_v" = list(0,1))
|
||||
|
||||
/datum/seed/wabback/vine/New()
|
||||
..()
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#2E2F32")
|
||||
set_trait(TRAIT_CARNIVOROUS,2)
|
||||
|
||||
/datum/seed/wabback/wild
|
||||
name = "wildwabback"
|
||||
seed_name = "wild wabback"
|
||||
display_name = "wild wabback"
|
||||
mutants = list("whitewabback")
|
||||
has_item_product = null
|
||||
chems = list("nutriment" = list(1,15), "protein" = list(0,2), "enzyme" = list(0,1))
|
||||
|
||||
/datum/seed/wabback/wild/New()
|
||||
..()
|
||||
set_trait(TRAIT_IDEAL_LIGHT, 3)
|
||||
set_trait(TRAIT_WATER_CONSUMPTION, 7)
|
||||
set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.1)
|
||||
set_trait(TRAIT_YIELD,5)
|
||||
@@ -0,0 +1,23 @@
|
||||
/datum/seed/watermelon
|
||||
name = "watermelon"
|
||||
seed_name = "watermelon"
|
||||
display_name = "watermelon vine"
|
||||
kitchen_tag = "watermelon"
|
||||
chems = list("nutriment" = list(1,6), "watermelonjuice" = list(10,6))
|
||||
|
||||
/datum/seed/watermelon/New()
|
||||
..()
|
||||
set_trait(TRAIT_HARVEST_REPEAT,1)
|
||||
set_trait(TRAIT_JUICY,1)
|
||||
set_trait(TRAIT_MATURATION,6)
|
||||
set_trait(TRAIT_PRODUCTION,6)
|
||||
set_trait(TRAIT_YIELD,3)
|
||||
set_trait(TRAIT_POTENCY,1)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"vine")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#3D8C3A")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#257522")
|
||||
set_trait(TRAIT_PLANT_ICON,"vine2")
|
||||
set_trait(TRAIT_FLESH_COLOUR,"#F22C2C")
|
||||
set_trait(TRAIT_IDEAL_HEAT, 298)
|
||||
set_trait(TRAIT_IDEAL_LIGHT, 6)
|
||||
set_trait(TRAIT_WATER_CONSUMPTION, 6)
|
||||
@@ -0,0 +1,16 @@
|
||||
/datum/seed/weeds
|
||||
name = "weeds"
|
||||
seed_name = "weed"
|
||||
display_name = "weeds"
|
||||
|
||||
/datum/seed/weeds/New()
|
||||
..()
|
||||
set_trait(TRAIT_MATURATION,5)
|
||||
set_trait(TRAIT_PRODUCTION,1)
|
||||
set_trait(TRAIT_YIELD,-1)
|
||||
set_trait(TRAIT_POTENCY,-1)
|
||||
set_trait(TRAIT_IMMUTABLE,-1)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"flower4")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#FCEB2B")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#59945A")
|
||||
set_trait(TRAIT_PLANT_ICON,"bush6")
|
||||
@@ -0,0 +1,19 @@
|
||||
/datum/seed/wheat
|
||||
name = "wheat"
|
||||
seed_name = "wheat"
|
||||
display_name = "wheat stalks"
|
||||
kitchen_tag = "wheat"
|
||||
chems = list("nutriment" = list(1,25), "flour" = list(10,30))
|
||||
|
||||
/datum/seed/wheat/New()
|
||||
..()
|
||||
set_trait(TRAIT_MATURATION,6)
|
||||
set_trait(TRAIT_PRODUCTION,1)
|
||||
set_trait(TRAIT_YIELD,4)
|
||||
set_trait(TRAIT_POTENCY,5)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"wheat")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#DBD37D")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#BFAF82")
|
||||
set_trait(TRAIT_PLANT_ICON,"stalk2")
|
||||
set_trait(TRAIT_IDEAL_LIGHT, 6)
|
||||
set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.15)
|
||||
@@ -0,0 +1,18 @@
|
||||
/datum/seed/whitebeets
|
||||
name = "whitebeet"
|
||||
seed_name = "white-beet"
|
||||
display_name = "white-beets"
|
||||
kitchen_tag = "whitebeet"
|
||||
chems = list("nutriment" = list(0,20), "sugar" = list(1,5))
|
||||
|
||||
/datum/seed/whitebeets/New()
|
||||
..()
|
||||
set_trait(TRAIT_MATURATION,6)
|
||||
set_trait(TRAIT_PRODUCTION,6)
|
||||
set_trait(TRAIT_YIELD,6)
|
||||
set_trait(TRAIT_POTENCY,10)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"carrot2")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#EEF5B0")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#4D8F53")
|
||||
set_trait(TRAIT_PLANT_ICON,"carrot2")
|
||||
set_trait(TRAIT_WATER_CONSUMPTION, 6)
|
||||
@@ -0,0 +1,23 @@
|
||||
// Wurmwoad, the Space Spice maker. Totally is actually, 100% literal worms.
|
||||
|
||||
/datum/seed/wurmwoad
|
||||
name = "wurmwoad"
|
||||
seed_name = "wurmwoad"
|
||||
display_name = "wurmwoad growth"
|
||||
chems = list("nutriment" = list(1,10), "spacespice" = list(5,15))
|
||||
kitchen_tag = "wurmwoad"
|
||||
|
||||
/datum/seed/wurmwoad/New()
|
||||
..()
|
||||
set_trait(TRAIT_HARVEST_REPEAT,1)
|
||||
set_trait(TRAIT_MATURATION,7)
|
||||
set_trait(TRAIT_PRODUCTION,6)
|
||||
set_trait(TRAIT_YIELD,2)
|
||||
set_trait(TRAIT_POTENCY,8)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"eyepod")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#e08702")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#f1d1d2")
|
||||
set_trait(TRAIT_PLANT_ICON,"worm")
|
||||
set_trait(TRAIT_IDEAL_LIGHT, 1)
|
||||
set_trait(TRAIT_WATER_CONSUMPTION, 8)
|
||||
set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.25)
|
||||
@@ -0,0 +1,19 @@
|
||||
// Alien weeds.
|
||||
/datum/seed/xenomorph
|
||||
name = "xenomorph"
|
||||
seed_name = "alien weed"
|
||||
display_name = "alien weeds"
|
||||
force_layer = 3
|
||||
chems = list("phoron" = list(1,3))
|
||||
|
||||
/datum/seed/xenomorph/New()
|
||||
..()
|
||||
set_trait(TRAIT_PLANT_ICON,"vine2")
|
||||
set_trait(TRAIT_IMMUTABLE,1)
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#3D1934")
|
||||
set_trait(TRAIT_FLESH_COLOUR,"#3D1934")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#3D1934")
|
||||
set_trait(TRAIT_PRODUCTION,1)
|
||||
set_trait(TRAIT_YIELD,-1)
|
||||
set_trait(TRAIT_SPREAD,2)
|
||||
set_trait(TRAIT_POTENCY,50)
|
||||
@@ -19,6 +19,10 @@
|
||||
var/datum/seed/last_seed
|
||||
var/list/last_reagents
|
||||
|
||||
/obj/item/device/analyzer/plant_analyzer/Destroy()
|
||||
. = ..()
|
||||
QDEL_NULL(last_seed)
|
||||
|
||||
/obj/item/device/analyzer/plant_analyzer/attack_self(mob/user)
|
||||
tgui_interact(user)
|
||||
|
||||
@@ -34,7 +38,7 @@
|
||||
/obj/item/device/analyzer/plant_analyzer/tgui_data(mob/user, datum/tgui/ui, datum/tgui_state/state)
|
||||
var/list/data = ..()
|
||||
|
||||
var/datum/seed/grown_seed = locate(last_seed)
|
||||
var/datum/seed/grown_seed = last_seed
|
||||
if(!istype(grown_seed))
|
||||
return list("no_seed" = TRUE)
|
||||
|
||||
@@ -95,7 +99,9 @@
|
||||
to_chat(user, "<span class='danger'>[src] can tell you nothing about \the [target].</span>")
|
||||
return
|
||||
|
||||
last_seed = REF(grown_seed)
|
||||
last_seed = grown_seed.diverge()
|
||||
if(!istype(last_seed))
|
||||
last_seed = grown_seed // TRAIT_IMMUTABLE makes diverge() return null
|
||||
|
||||
user.visible_message("<span class='notice'>[user] runs the scanner over \the [target].</span>")
|
||||
|
||||
@@ -119,7 +125,7 @@
|
||||
print_report(usr)
|
||||
|
||||
/obj/item/device/analyzer/plant_analyzer/proc/print_report(var/mob/living/user)
|
||||
var/datum/seed/grown_seed = locate(last_seed)
|
||||
var/datum/seed/grown_seed = last_seed
|
||||
if(!istype(grown_seed))
|
||||
to_chat(user, "<span class='warning'>There is no scan data to print.</span>")
|
||||
return
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
output.assembly = src
|
||||
|
||||
/obj/item/device/electronic_assembly/device/check_interactivity(mob/user)
|
||||
if(!CanInteract(user, state = deep_inventory_state))
|
||||
if(!CanInteract(user, state = GLOB.tgui_deep_inventory_state))
|
||||
return 0
|
||||
return 1
|
||||
|
||||
|
||||
@@ -40,8 +40,8 @@ D [1]/ ||
|
||||
holder = null
|
||||
. = ..()
|
||||
|
||||
/datum/integrated_io/nano_host()
|
||||
return holder.nano_host()
|
||||
/datum/integrated_io/tgui_host()
|
||||
return holder.tgui_host()
|
||||
|
||||
|
||||
/datum/integrated_io/proc/data_as_type(var/as_type)
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
/datum/integrated_io/list/display_pin_type()
|
||||
return IC_FORMAT_LIST
|
||||
|
||||
/datum/integrated_io/list/Topic(href, href_list, state = interactive_state)
|
||||
/datum/integrated_io/list/Topic(href, href_list, state = GLOB.tgui_always_state)
|
||||
if(!holder.check_interactivity(usr))
|
||||
return
|
||||
if(..())
|
||||
|
||||
@@ -115,7 +115,7 @@
|
||||
|
||||
/obj/item/device/integrated_electronics/debugger/attack_self(mob/user)
|
||||
var/type_to_use = input("Please choose a type to use.","[src] type setting") as null|anything in list("string","number","ref", "null")
|
||||
if(!CanInteract(user, physical_state))
|
||||
if(!CanInteract(user, GLOB.tgui_physical_state))
|
||||
return
|
||||
|
||||
var/new_data = null
|
||||
@@ -124,13 +124,13 @@
|
||||
accepting_refs = 0
|
||||
new_data = input("Now type in a string.","[src] string writing") as null|text
|
||||
new_data = sanitizeSafe(new_data, MAX_MESSAGE_LEN, 0, 0)
|
||||
if(istext(new_data) && CanInteract(user, physical_state))
|
||||
if(istext(new_data) && CanInteract(user, GLOB.tgui_physical_state))
|
||||
data_to_write = new_data
|
||||
to_chat(user, "<span class='notice'>You set \the [src]'s memory to \"[new_data]\".</span>")
|
||||
if("number")
|
||||
accepting_refs = 0
|
||||
new_data = input("Now type in a number.","[src] number writing") as null|num
|
||||
if(isnum(new_data) && CanInteract(user, physical_state))
|
||||
if(isnum(new_data) && CanInteract(user, GLOB.tgui_physical_state))
|
||||
data_to_write = new_data
|
||||
to_chat(user, "<span class='notice'>You set \the [src]'s memory to [new_data].</span>")
|
||||
if("ref")
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
|
||||
/obj/item/integrated_circuit/input/numberpad/ask_for_input(mob/user)
|
||||
var/new_input = input(user, "Enter a number, please.","Number pad", get_pin_data(IC_OUTPUT, 1)) as null|num
|
||||
if(isnum(new_input) && CanInteract(user, physical_state))
|
||||
if(isnum(new_input) && CanInteract(user, GLOB.tgui_physical_state))
|
||||
set_pin_data(IC_OUTPUT, 1, new_input)
|
||||
push_data()
|
||||
activate_pin(1)
|
||||
@@ -73,7 +73,7 @@
|
||||
|
||||
/obj/item/integrated_circuit/input/textpad/ask_for_input(mob/user)
|
||||
var/new_input = input(user, "Enter some words, please.","Number pad", get_pin_data(IC_OUTPUT, 1)) as null|text
|
||||
if(istext(new_input) && CanInteract(user, physical_state))
|
||||
if(istext(new_input) && CanInteract(user, GLOB.tgui_physical_state))
|
||||
set_pin_data(IC_OUTPUT, 1, new_input)
|
||||
push_data()
|
||||
activate_pin(1)
|
||||
@@ -92,7 +92,7 @@
|
||||
|
||||
/obj/item/integrated_circuit/input/colorpad/ask_for_input(mob/user)
|
||||
var/new_color = input(user, "Enter a color, please.", "Color pad", get_pin_data(IC_OUTPUT, 1)) as color|null
|
||||
if(new_color && CanInteract(user, physical_state))
|
||||
if(new_color && CanInteract(user, GLOB.tgui_physical_state))
|
||||
set_pin_data(IC_OUTPUT, 1, new_color)
|
||||
push_data()
|
||||
activate_pin(1)
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
/obj/item/integrated_circuit/memory/constant/attack_self(mob/user)
|
||||
var/datum/integrated_io/O = outputs[1]
|
||||
var/type_to_use = input("Please choose a type to use.","[src] type setting") as null|anything in list("string","number","ref", "null")
|
||||
if(!CanInteract(user, physical_state))
|
||||
if(!CanInteract(user, GLOB.tgui_physical_state))
|
||||
return
|
||||
|
||||
var/new_data = null
|
||||
@@ -97,13 +97,13 @@
|
||||
if("string")
|
||||
accepting_refs = 0
|
||||
new_data = input("Now type in a string.","[src] string writing") as null|text
|
||||
if(istext(new_data) && CanInteract(user, physical_state))
|
||||
if(istext(new_data) && CanInteract(user, GLOB.tgui_physical_state))
|
||||
O.data = new_data
|
||||
to_chat(user, "<span class='notice'>You set \the [src]'s memory to [O.display_data(O.data)].</span>")
|
||||
if("number")
|
||||
accepting_refs = 0
|
||||
new_data = input("Now type in a number.","[src] number writing") as null|num
|
||||
if(isnum(new_data) && CanInteract(user, physical_state))
|
||||
if(isnum(new_data) && CanInteract(user, GLOB.tgui_physical_state))
|
||||
O.data = new_data
|
||||
to_chat(user, "<span class='notice'>You set \the [src]'s memory to [O.display_data(O.data)].</span>")
|
||||
if("ref")
|
||||
|
||||
@@ -403,8 +403,8 @@
|
||||
no_variants = FALSE
|
||||
pass_color = TRUE
|
||||
strict_color_stacking = TRUE
|
||||
drop_sound = 'sound/items/drop/cloth.ogg'
|
||||
pickup_sound = 'sound/items/pickup/cloth.ogg'
|
||||
drop_sound = 'sound/items/drop/clothing.ogg'
|
||||
pickup_sound = 'sound/items/pickup/clothing.ogg'
|
||||
|
||||
/obj/item/stack/material/cloth/diyaab
|
||||
color = "#c6ccf0"
|
||||
|
||||
@@ -220,6 +220,7 @@
|
||||
target_types += /obj/effect/decal/cleanable/liquid_fuel
|
||||
target_types += /obj/effect/decal/cleanable/mucus
|
||||
target_types += /obj/effect/decal/cleanable/dirt
|
||||
target_types += /obj/effect/decal/cleanable/filth
|
||||
|
||||
if(blood)
|
||||
target_types += /obj/effect/decal/cleanable/blood
|
||||
|
||||
@@ -210,7 +210,7 @@
|
||||
return
|
||||
|
||||
spread_fire(AM)
|
||||
|
||||
|
||||
..() // call parent because we moved behavior to parent
|
||||
|
||||
// Get rank from ID, ID inside PDA, PDA, ID in wallet, etc.
|
||||
@@ -220,7 +220,7 @@
|
||||
if (pda.id)
|
||||
return pda.id.rank ? pda.id.rank : if_no_job
|
||||
else
|
||||
return pda.ownrank
|
||||
return pda.ownrank ? pda.ownrank : if_no_job
|
||||
else
|
||||
var/obj/item/weapon/card/id/id = get_idcard()
|
||||
if(id)
|
||||
@@ -236,7 +236,7 @@
|
||||
if (pda.id)
|
||||
return pda.id.assignment
|
||||
else
|
||||
return pda.ownjob
|
||||
return pda.ownjob ? pda.ownjob : if_no_job
|
||||
else
|
||||
var/obj/item/weapon/card/id/id = get_idcard()
|
||||
if(id)
|
||||
@@ -252,7 +252,7 @@
|
||||
if (pda.id)
|
||||
return pda.id.registered_name
|
||||
else
|
||||
return pda.owner
|
||||
return pda.owner ? pda.owner : if_no_id
|
||||
else
|
||||
var/obj/item/weapon/card/id/id = get_idcard()
|
||||
if(id)
|
||||
@@ -285,7 +285,7 @@
|
||||
. = if_no_id
|
||||
if(istype(wear_id,/obj/item/device/pda))
|
||||
var/obj/item/device/pda/P = wear_id
|
||||
return P.owner
|
||||
return P.owner ? P.owner : if_no_id
|
||||
if(wear_id)
|
||||
var/obj/item/weapon/card/id/I = wear_id.GetID()
|
||||
if(I)
|
||||
|
||||
@@ -1290,13 +1290,19 @@
|
||||
clear_fullscreen("blind")
|
||||
clear_alert("blind")
|
||||
|
||||
if(disabilities & NEARSIGHTED) //this looks meh but saves a lot of memory by not requiring to add var/prescription
|
||||
if(glasses) //to every /obj/item
|
||||
var/apply_nearsighted_overlay = FALSE
|
||||
if(disabilities & NEARSIGHTED)
|
||||
apply_nearsighted_overlay = TRUE
|
||||
|
||||
if(glasses)
|
||||
var/obj/item/clothing/glasses/G = glasses
|
||||
if(!G.prescription)
|
||||
set_fullscreen(disabilities & NEARSIGHTED, "impaired", /obj/screen/fullscreen/impaired, 1)
|
||||
else if (!nif || !nif.flag_check(NIF_V_CORRECTIVE,NIF_FLAGS_VISION)) //VOREStation Edit - NIF
|
||||
set_fullscreen(disabilities & NEARSIGHTED, "impaired", /obj/screen/fullscreen/impaired, 1)
|
||||
if(G.prescription)
|
||||
apply_nearsighted_overlay = FALSE
|
||||
|
||||
if(nif && nif.flag_check(NIF_V_CORRECTIVE, NIF_FLAGS_VISION)) // VOREStation Edit - NIF
|
||||
apply_nearsighted_overlay = FALSE
|
||||
|
||||
set_fullscreen(apply_nearsighted_overlay, "nearsighted", /obj/screen/fullscreen/impaired, 1)
|
||||
|
||||
set_fullscreen(eye_blurry, "blurry", /obj/screen/fullscreen/blurry)
|
||||
set_fullscreen(druggy, "high", /obj/screen/fullscreen/high)
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
var/list/potentials = living_mobs(0)
|
||||
if(potentials.len)
|
||||
var/mob/living/target = pick(potentials)
|
||||
if(istype(target) && vore_selected)
|
||||
if(istype(target) && target.devourable && target.can_be_drop_prey && vore_selected)
|
||||
target.forceMove(vore_selected)
|
||||
to_chat(target,"<span class='warning'>\The [src] phases in around you, [vore_selected.vore_verb]ing you into their [vore_selected.name]!</span>")
|
||||
|
||||
|
||||
@@ -257,7 +257,7 @@
|
||||
var/list/potentials = living_mobs(0)
|
||||
if(potentials.len)
|
||||
var/mob/living/target = pick(potentials)
|
||||
if(istype(target) && vore_selected)
|
||||
if(istype(target) && target.devourable && target.can_be_drop_prey && vore_selected)
|
||||
if(target.buckled)
|
||||
target.buckled.unbuckle_mob(target, force = TRUE)
|
||||
target.forceMove(vore_selected)
|
||||
|
||||
@@ -58,14 +58,22 @@
|
||||
var/stripping
|
||||
var/obj/item/held = user.get_active_hand()
|
||||
if(!istype(held) || is_robot_module(held))
|
||||
stripping = TRUE
|
||||
else
|
||||
var/obj/item/weapon/holder/holder = held
|
||||
if(istype(holder) && src == holder.held_mob)
|
||||
stripping = TRUE
|
||||
else
|
||||
var/obj/item/weapon/grab/grab = held
|
||||
if(istype(grab) && grab.affecting == src)
|
||||
stripping = TRUE
|
||||
|
||||
if(stripping)
|
||||
if(!istype(target_slot)) // They aren't holding anything valid and there's nothing to remove, why are we even here?
|
||||
return
|
||||
if(!target_slot.canremove)
|
||||
to_chat(user, "<span class='warning'>You cannot remove \the [src]'s [target_slot.name].</span>")
|
||||
return
|
||||
stripping = 1
|
||||
|
||||
if(stripping)
|
||||
visible_message("<span class='danger'>\The [user] is trying to remove \the [src]'s [target_slot.name]!</span>")
|
||||
else
|
||||
if(slot_to_strip == slot_wear_mask && istype(held, /obj/item/weapon/grenade))
|
||||
@@ -76,8 +84,14 @@
|
||||
if(!do_after(user,HUMAN_STRIP_DELAY,src))
|
||||
return
|
||||
|
||||
if(!stripping && user.get_active_hand() != held)
|
||||
return
|
||||
if(!stripping)
|
||||
if(user.get_active_hand() != held)
|
||||
return
|
||||
var/obj/item/weapon/holder/mobheld = held
|
||||
if(istype(mobheld)&&mobheld.held_mob==src)
|
||||
to_chat(user, "<span class='warning'>You can't put someone on themselves! Stop trying to break reality!</span>")
|
||||
return
|
||||
|
||||
|
||||
if(stripping)
|
||||
add_attack_logs(user,src,"Removed equipment from slot [target_slot]")
|
||||
|
||||
@@ -10,9 +10,6 @@
|
||||
if(!loc)
|
||||
return
|
||||
|
||||
if(machine && !CanMouseDrop(machine, src))
|
||||
machine = null
|
||||
|
||||
var/datum/gas_mixture/environment = loc.return_air()
|
||||
|
||||
//handle_modifiers() // Do this early since it might affect other things later. //VOREStation Edit
|
||||
|
||||
@@ -20,7 +20,6 @@ var/list/ai_verbs_default = list(
|
||||
/mob/living/silicon/ai/proc/ai_call_shuttle,
|
||||
/mob/living/silicon/ai/proc/ai_camera_track,
|
||||
/mob/living/silicon/ai/proc/ai_camera_list,
|
||||
/mob/living/silicon/ai/proc/ai_roster,
|
||||
/mob/living/silicon/ai/proc/ai_checklaws,
|
||||
/mob/living/silicon/ai/proc/toggle_camera_light,
|
||||
/mob/living/silicon/ai/proc/take_image,
|
||||
@@ -48,7 +47,7 @@ var/list/ai_verbs_default = list(
|
||||
anchored = 1 // -- TLE
|
||||
density = 1
|
||||
status_flags = CANSTUN|CANPARALYSE|CANPUSH
|
||||
shouldnt_see = list(/obj/effect/rune)
|
||||
shouldnt_see = list(/mob/observer/eye, /obj/effect/rune)
|
||||
var/list/network = list(NETWORK_DEFAULT)
|
||||
var/obj/machinery/camera/camera = null
|
||||
var/aiRestorePowerRoutine = 0
|
||||
@@ -355,12 +354,6 @@ var/list/ai_verbs_default = list(
|
||||
if(new_sprite) selected_sprite = new_sprite
|
||||
updateicon()
|
||||
|
||||
// this verb lets the ai see the stations manifest
|
||||
/mob/living/silicon/ai/proc/ai_roster()
|
||||
set category = "AI Commands"
|
||||
set name = "Show Crew Manifest"
|
||||
show_station_manifest()
|
||||
|
||||
/mob/living/silicon/ai/var/message_cooldown = 0
|
||||
/mob/living/silicon/ai/proc/ai_announcement()
|
||||
set category = "AI Commands"
|
||||
@@ -399,9 +392,7 @@ var/list/ai_verbs_default = list(
|
||||
|
||||
// hack to display shuttle timer
|
||||
if(emergency_shuttle.online())
|
||||
var/obj/machinery/computer/communications/C = locate() in machines
|
||||
if(C)
|
||||
C.post_status("shuttle")
|
||||
post_status(src, "shuttle", user = src)
|
||||
|
||||
/mob/living/silicon/ai/proc/ai_recall_shuttle()
|
||||
set category = "AI Commands"
|
||||
|
||||
@@ -122,7 +122,10 @@
|
||||
pda.ownjob = "Personal Assistant"
|
||||
pda.owner = text("[]", src)
|
||||
pda.name = pda.owner + " (" + pda.ownjob + ")"
|
||||
pda.toff = 1
|
||||
|
||||
var/datum/data/pda/app/messenger/M = pda.find_program(/datum/data/pda/app/messenger)
|
||||
if(M)
|
||||
M.toff = TRUE
|
||||
..()
|
||||
|
||||
/mob/living/silicon/pai/Login()
|
||||
@@ -210,7 +213,7 @@
|
||||
medicalActive1 = null
|
||||
medicalActive2 = null
|
||||
medical_cannotfind = 0
|
||||
SSnanoui.update_uis(src)
|
||||
SStgui.update_uis(src)
|
||||
to_chat(usr, "<span class='notice'>You reset your record-viewing software.</span>")
|
||||
|
||||
/mob/living/silicon/pai/cancel_camera()
|
||||
|
||||
@@ -41,27 +41,24 @@ var/global/list/default_pai_software = list()
|
||||
set category = "pAI Commands"
|
||||
set name = "Software Interface"
|
||||
|
||||
ui_interact(src)
|
||||
tgui_interact(src)
|
||||
|
||||
/mob/living/silicon/pai/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1)
|
||||
if(user != src)
|
||||
if(ui) ui.set_status(STATUS_CLOSE, 0)
|
||||
return
|
||||
/mob/living/silicon/pai/tgui_state(mob/user)
|
||||
return GLOB.tgui_self_state
|
||||
|
||||
if(ui_key != "main")
|
||||
var/datum/pai_software/S = software[ui_key]
|
||||
if(S && !S.toggle)
|
||||
S.on_ui_interact(src, ui, force_open)
|
||||
else
|
||||
if(ui) ui.set_status(STATUS_CLOSE, 0)
|
||||
return
|
||||
|
||||
var/data[0]
|
||||
/mob/living/silicon/pai/tgui_interact(mob/user, datum/tgui/ui, datum/tgui/parent_ui)
|
||||
ui = SStgui.try_update_ui(user, src, ui)
|
||||
if(!ui)
|
||||
ui = new(user, src, "pAIInterface", "pAI Software Interface")
|
||||
ui.open()
|
||||
|
||||
/mob/living/silicon/pai/tgui_data(mob/user, datum/tgui/ui, datum/tgui_state/state)
|
||||
var/list/data = ..()
|
||||
|
||||
// Software we have bought
|
||||
var/bought_software[0]
|
||||
var/list/bought_software = list()
|
||||
// Software we have not bought
|
||||
var/not_bought_software[0]
|
||||
var/list/not_bought_software = list()
|
||||
|
||||
for(var/key in pai_software_by_key)
|
||||
var/datum/pai_software/S = pai_software_by_key[key]
|
||||
@@ -70,62 +67,52 @@ var/global/list/default_pai_software = list()
|
||||
software_data["id"] = S.id
|
||||
if(key in software)
|
||||
software_data["on"] = S.is_active(src)
|
||||
bought_software[++bought_software.len] = software_data
|
||||
bought_software.Add(list(software_data))
|
||||
else
|
||||
software_data["ram"] = S.ram_cost
|
||||
not_bought_software[++not_bought_software.len] = software_data
|
||||
not_bought_software.Add(list(software_data))
|
||||
|
||||
data["bought"] = bought_software
|
||||
data["not_bought"] = not_bought_software
|
||||
data["available_ram"] = ram
|
||||
|
||||
// Emotions
|
||||
var/emotions[0]
|
||||
var/list/emotions = list()
|
||||
for(var/name in pai_emotions)
|
||||
var/emote[0]
|
||||
var/list/emote = list()
|
||||
emote["name"] = name
|
||||
emote["id"] = pai_emotions[name]
|
||||
emotions[++emotions.len] = emote
|
||||
emotions.Add(list(emote))
|
||||
|
||||
data["emotions"] = emotions
|
||||
data["current_emotion"] = card.current_emotion
|
||||
|
||||
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open)
|
||||
if (!ui)
|
||||
ui = new(user, src, ui_key, "pai_interface.tmpl", "pAI Software Interface", 450, 600)
|
||||
ui.set_initial_data(data)
|
||||
ui.open()
|
||||
ui.set_auto_update(1)
|
||||
return data
|
||||
|
||||
/mob/living/silicon/pai/Topic(href, href_list)
|
||||
. = ..()
|
||||
if(.) return
|
||||
/mob/living/silicon/pai/tgui_act(action, list/params, datum/tgui/ui, datum/tgui_state/state)
|
||||
if(..())
|
||||
return TRUE
|
||||
|
||||
if(href_list["software"])
|
||||
var/soft = href_list["software"]
|
||||
var/datum/pai_software/S = software[soft]
|
||||
if(S.toggle)
|
||||
S.toggle(src)
|
||||
else
|
||||
ui_interact(src, ui_key = soft)
|
||||
return 1
|
||||
switch(action)
|
||||
if("software")
|
||||
var/soft = params["software"]
|
||||
var/datum/pai_software/S = software[soft]
|
||||
if(S.toggle)
|
||||
S.toggle(src)
|
||||
else
|
||||
S.tgui_interact(src, parent_ui = ui)
|
||||
return TRUE
|
||||
|
||||
else if(href_list["stopic"])
|
||||
var/soft = href_list["stopic"]
|
||||
var/datum/pai_software/S = software[soft]
|
||||
if(S)
|
||||
return S.Topic(href, href_list)
|
||||
if("purchase")
|
||||
var/soft = params["purchase"]
|
||||
var/datum/pai_software/S = pai_software_by_key[soft]
|
||||
if(S && (ram >= S.ram_cost))
|
||||
ram -= S.ram_cost
|
||||
software[S.id] = S
|
||||
return TRUE
|
||||
|
||||
else if(href_list["purchase"])
|
||||
var/soft = href_list["purchase"]
|
||||
var/datum/pai_software/S = pai_software_by_key[soft]
|
||||
if(S && (ram >= S.ram_cost))
|
||||
ram -= S.ram_cost
|
||||
software[S.id] = S
|
||||
return 1
|
||||
|
||||
else if(href_list["image"])
|
||||
var/img = text2num(href_list["image"])
|
||||
if(1 <= img && img <= (pai_emotions.len))
|
||||
card.setEmotion(img)
|
||||
return 1
|
||||
if("image")
|
||||
var/img = text2num(params["image"])
|
||||
if(1 <= img && img <= (pai_emotions.len))
|
||||
card.setEmotion(img)
|
||||
return TRUE
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user