mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-27 22:17:32 +01:00
Merge remote-tracking branch 'upstream/master' into terifluff
This commit is contained in:
@@ -79,3 +79,54 @@
|
||||
display_name = "Nano-Mob Hunter GO! Cartridge"
|
||||
path = /obj/item/weapon/cartridge/mob_hunt_game
|
||||
cost = 2
|
||||
|
||||
//////////////////////
|
||||
// Mugs //
|
||||
//////////////////////
|
||||
|
||||
/datum/gear/mug
|
||||
display_name = "random coffee mug"
|
||||
description = "A randomly colored coffee mug. You'll need to supply your own beverage though."
|
||||
path = /obj/item/weapon/reagent_containers/food/drinks/mug
|
||||
sort_category = "Mugs"
|
||||
|
||||
/datum/gear/novelty_mug
|
||||
display_name = "novelty coffee mug"
|
||||
description = "A random novelty coffee mug. You'll need to supply your own beverage though."
|
||||
path = /obj/item/weapon/reagent_containers/food/drinks/mug/novelty
|
||||
cost = 2
|
||||
sort_category = "Mugs"
|
||||
|
||||
/datum/gear/mug/department
|
||||
subtype_path = /datum/gear/mug/department
|
||||
sort_category = "Mugs"
|
||||
subtype_cost_overlap = FALSE
|
||||
|
||||
/datum/gear/mug/department/eng
|
||||
display_name = "engineer coffee mug"
|
||||
description = "An engineer's coffee mug, emblazoned in the colors of the Engineering department."
|
||||
allowed_roles = list("Chief Engineer", "Station Engineer", "Mechanic", "Life Support Specialist")
|
||||
path = /obj/item/weapon/reagent_containers/food/drinks/mug/eng
|
||||
|
||||
/datum/gear/mug/department/med
|
||||
display_name = "doctor coffee mug"
|
||||
description = "A doctor's coffee mug, emblazoned in the colors of the Medical department."
|
||||
allowed_roles = list("Chief Medical Officer", "Medical Doctor", "Chemist", "Psychiatrist", "Paramedic", "Virologist", "Coroner")
|
||||
path = /obj/item/weapon/reagent_containers/food/drinks/mug/med
|
||||
|
||||
/datum/gear/mug/department/sci
|
||||
display_name = "scientist coffee mug"
|
||||
description = "A scientist's coffee mug, emblazoned in the colors of the Science department."
|
||||
allowed_roles = list("Research Director", "Scientist", "Roboticist")
|
||||
path = /obj/item/weapon/reagent_containers/food/drinks/mug/sci
|
||||
|
||||
/datum/gear/mug/department/sec
|
||||
display_name = "officer coffee mug"
|
||||
description = "An officer's coffee mug, emblazoned in the colors of the Security department."
|
||||
allowed_roles = list("Head of Security", "Warden", "Detective", "Security Officer", "Security Pod Pilot", "Brig Physician", "Internal Affairs Agent")
|
||||
path = /obj/item/weapon/reagent_containers/food/drinks/mug/sec
|
||||
|
||||
/datum/gear/mug/department/serv
|
||||
display_name = "crewmember coffee mug"
|
||||
description = "A crewmember's coffee mug, emblazoned in the colors of the Service department."
|
||||
path = /obj/item/weapon/reagent_containers/food/drinks/mug/serv
|
||||
|
||||
@@ -152,7 +152,3 @@
|
||||
/datum/gear/hat/flowerpin
|
||||
display_name = "hair flower"
|
||||
path = /obj/item/clothing/head/hairflower
|
||||
|
||||
/datum/gear/hat/flowerpinpurp
|
||||
display_name = "hair flower, purple"
|
||||
path = /obj/item/clothing/head/hairflower/purple
|
||||
@@ -14,11 +14,6 @@
|
||||
desc = "Smells nice."
|
||||
item_state = "hairflower"
|
||||
|
||||
/obj/item/clothing/head/hairflower/purple
|
||||
icon_state = "hairflowerp"
|
||||
item_state = "hairflowerp"
|
||||
item_state = "that"
|
||||
|
||||
/obj/item/clothing/head/powdered_wig
|
||||
name = "powdered wig"
|
||||
desc = "A powdered wig."
|
||||
|
||||
@@ -99,8 +99,6 @@
|
||||
/obj/item/rig_module/self_destruct
|
||||
)
|
||||
|
||||
..()
|
||||
|
||||
/obj/item/clothing/gloves/rig/light/ninja
|
||||
name = "insulated gloves"
|
||||
siemens_coefficient = 0
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
/datum/crafting_recipe/IED
|
||||
name = "IED"
|
||||
result = /obj/item/weapon/grenade/iedcasing/filled
|
||||
result = /obj/item/weapon/grenade/iedcasing
|
||||
reqs = list(/datum/reagent/fuel = 50,
|
||||
/obj/item/stack/cable_coil = 1,
|
||||
/obj/item/device/assembly/igniter = 1,
|
||||
|
||||
@@ -1295,4 +1295,4 @@
|
||||
righthand_file = 'icons/mob/inhands/fluff_righthand.dmi'
|
||||
icon_state = "teri_horn"
|
||||
item_state = "teri_horn"
|
||||
honk_sound = 'sound/items/teri_horn.ogg'
|
||||
honk_sound = 'sound/items/teri_horn.ogg'
|
||||
@@ -353,3 +353,16 @@
|
||||
icon = 'icons/obj/lavaland/ash_flora.dmi'
|
||||
icon_state = "mushroom_bowl"
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/bag
|
||||
name = "Drink bag"
|
||||
desc = "Normally put in wine boxes, or down pants at stadium events."
|
||||
icon_state = "goonbag"
|
||||
volume = 70
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/bag/goonbag
|
||||
name = "Goon from a Blue Toolbox special edition"
|
||||
desc = "Wine from the land down under, where the dingos roam and the roos do wander."
|
||||
icon_state = "goonbag"
|
||||
list_reagents = list("wine" = 70)
|
||||
@@ -0,0 +1,166 @@
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/mug
|
||||
name = "coffee mug"
|
||||
desc = "A mug for sipping hot beverages out of."
|
||||
icon = 'icons/obj/mugs.dmi'
|
||||
icon_state = "mug"
|
||||
var/novelty = FALSE
|
||||
var/preset = FALSE
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/mug/novelty
|
||||
name = "novelty coffee mug"
|
||||
desc = "A fun mug for your coffee or other hot beverage!"
|
||||
novelty = TRUE
|
||||
|
||||
/datum/novelty_mug
|
||||
var/name = "novelty coffee mug"
|
||||
var/description = "A fun mug for your coffee or other hot beverage!"
|
||||
var/state = "mug"
|
||||
|
||||
/datum/novelty_mug/peace
|
||||
name = "peaceful mug"
|
||||
description = "It's like... so peaceful, man."
|
||||
state = "mug_peace"
|
||||
|
||||
/datum/novelty_mug/fire
|
||||
name = "fire mug"
|
||||
description = "Caution: contents and design may be incredibly hot."
|
||||
state = "mug_fire"
|
||||
|
||||
/datum/novelty_mug/best
|
||||
name = "best mug"
|
||||
description = "By decree of this mug, you are the best!"
|
||||
state = "mug_best"
|
||||
|
||||
/datum/novelty_mug/best/New()
|
||||
var/locale = pick("Room's", "Department's", "Station's", "World's", "Sector's", "System's", "Galaxy's", "Universe's", "Multi-verse's", "Nanotrasen's", "Syndicate's")
|
||||
var/what = pick("Crewmember", "Spessman", "Employee", "Coffee", "Coffee-drinker", "Survivor", "Personality", "Lifeform", "Doctor", "Scientist", "Engineer", "Officer", "Civillian", "Captain", "Agent")
|
||||
name = "\"[locale] Best [what]\" mug"
|
||||
|
||||
/datum/novelty_mug/worst
|
||||
name = "worst mug"
|
||||
description = "By decree of this mug, you are the worst!"
|
||||
state = "mug_worst"
|
||||
|
||||
/datum/novelty_mug/worst/New()
|
||||
var/locale = pick("Room's", "Department's", "Station's", "World's", "Sector's", "System's", "Galaxy's", "Universe's", "Multi-verse's", "Nanotrasen's", "Syndicate's")
|
||||
var/what = pick("Crewmember", "Spessman", "Employee", "Coffee", "Coffee-drinker", "Survivor", "Personality", "Lifeform", "Doctor", "Scientist", "Engineer", "Officer", "Civillian", "Captain", "Agent")
|
||||
name = "\"[locale] Worst [what]\" mug"
|
||||
|
||||
/datum/novelty_mug/insult
|
||||
name = "insulting coffee mug"
|
||||
description = "How rude!"
|
||||
state = "mug_insult"
|
||||
|
||||
/datum/novelty_mug/insult/New()
|
||||
var/insult = pick("There isn't enough coffee to make you tolerable.", "I drink coffee so I can pretend to like people.", "I haven't had my coffee yet... What's your excuse?", "This coffee is more robust than you.", "Decaf is for weaklings like you.")
|
||||
description = "This one says:\"[insult]\""
|
||||
|
||||
/datum/novelty_mug/pda
|
||||
name = "PDA mug"
|
||||
description = "Finally, a use for one of these!"
|
||||
state = "mug_pda"
|
||||
|
||||
/datum/novelty_mug/rad
|
||||
name = "radioactive mug"
|
||||
description = "Is coffee supposed to be green... and glowing?"
|
||||
state = "mug_rad"
|
||||
|
||||
/datum/novelty_mug/tide
|
||||
name = "greytide mug"
|
||||
description = "This coffee packs almost as much of a punch as a toolbox to the face!"
|
||||
state = "mug_tide"
|
||||
|
||||
/datum/novelty_mug/happy
|
||||
name = "happy mug"
|
||||
description = "Even when you aren't, this mug helps you look happy around coworkers."
|
||||
state = "mug_happy"
|
||||
|
||||
/datum/novelty_mug/pills
|
||||
name = "prescription mug"
|
||||
description = "Prescription: caffeine. Dosage: As much as it takes."
|
||||
state = "mug_pills"
|
||||
|
||||
/datum/novelty_mug/rainbow
|
||||
name = "rainbow mug"
|
||||
description = "So mesmerizing!"
|
||||
state = "mug_rainbow"
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/mug/New()
|
||||
..()
|
||||
if(preset)
|
||||
return
|
||||
if(novelty)
|
||||
var/novelty_type = pick(subtypesof(/datum/novelty_mug))
|
||||
var/datum/novelty_mug/selected = new novelty_type
|
||||
name = selected.name
|
||||
desc = selected.description
|
||||
icon_state = selected.state
|
||||
else
|
||||
icon_state = pick("mug_black", "mug_white", "mug_red", "mug_blue", "mug_green", "mug_pink")
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/mug/eng
|
||||
name = "engineer's mug"
|
||||
desc = "A mug engineered to hold your beverage... IN SPACE!"
|
||||
icon_state = "mug_eng"
|
||||
preset = TRUE
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/mug/med
|
||||
name = "doctor's mug"
|
||||
desc = "A mug that can hold the cure for what ails you!"
|
||||
icon_state = "mug_med"
|
||||
preset = TRUE
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/mug/sci
|
||||
name = "scientist's mug"
|
||||
desc = "Nothing fuels research like a coffee mug... or grant money!"
|
||||
icon_state = "mug_sci"
|
||||
preset = TRUE
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/mug/sec
|
||||
name = "officer's mug"
|
||||
desc = "The perfect partner for a sprinkled donut or stunbaton!"
|
||||
icon_state = "mug_sec"
|
||||
preset = TRUE
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/mug/serv
|
||||
name = "crewmember's mug"
|
||||
desc = "Serve your thirst better than you serve the rest of the crew!"
|
||||
icon_state = "mug_serv"
|
||||
preset = TRUE
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/mug/ce
|
||||
name = "chief engineer's mug"
|
||||
desc = "Broken and welded back together countless times, just like the station! Probably microwave safe."
|
||||
icon_state = "mug_ce"
|
||||
preset = TRUE
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/mug/hos
|
||||
name = "head of security's mug"
|
||||
desc = "If only your officers were as robust as this coffee's flavor!"
|
||||
icon_state = "mug_hos"
|
||||
preset = TRUE
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/mug/rd
|
||||
name = "research director's mug"
|
||||
desc = "Energy tech level: 99"
|
||||
icon_state = "mug_rd"
|
||||
preset = TRUE
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/mug/cmo
|
||||
name = "chief medical officer's mug"
|
||||
desc = "Fill it with something to keep you awake while you try to keep the crew alive."
|
||||
icon_state = "mug_cmo"
|
||||
preset = TRUE
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/mug/hop
|
||||
name = "head of personnel's mug"
|
||||
desc = "Are the stains on the bottom coffee or ink?"
|
||||
icon_state = "mug_hop"
|
||||
preset = TRUE
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/mug/cap
|
||||
name = "captain's mug"
|
||||
desc = "An inscription on the side reads \"Best Captain 2559\"... The last time the station had a worthy captain."
|
||||
icon_state = "mug_cap"
|
||||
preset = TRUE
|
||||
@@ -1,3 +1,4 @@
|
||||
#define MAX_WEIGHT_CLASS WEIGHT_CLASS_SMALL * 2
|
||||
//Food items that are eaten normally and don't leave anything behind.
|
||||
/obj/item/weapon/reagent_containers/food/snacks
|
||||
name = "snack"
|
||||
@@ -14,6 +15,7 @@
|
||||
var/dry = 0
|
||||
var/cooktype[0]
|
||||
var/cooked_type = null //for microwave cooking. path of the resulting item after microwaving
|
||||
var/total_w_class = 0 //for the total weight an item of food can carry
|
||||
|
||||
|
||||
//Placeholder for effect that trigger on eating that aren't tied to reagents.
|
||||
@@ -131,6 +133,10 @@
|
||||
)
|
||||
inaccurate = 1
|
||||
else if(W.w_class <= WEIGHT_CLASS_SMALL && istype(src,/obj/item/weapon/reagent_containers/food/snacks/sliceable))
|
||||
if(total_w_class > MAX_WEIGHT_CLASS)
|
||||
// Nope, no bluespace slice food
|
||||
to_chat(user, "<span class='warning'>Something is already in [src]!</span>")
|
||||
return 1
|
||||
if(!iscarbon(user))
|
||||
return 1
|
||||
to_chat(user, "<span class='warning'>You slip [W] inside [src].</span>")
|
||||
@@ -138,6 +144,7 @@
|
||||
if((user.client && user.s_active != src))
|
||||
user.client.screen -= W
|
||||
W.dropped(user)
|
||||
total_w_class += W.w_class
|
||||
add_fingerprint(user)
|
||||
contents += W
|
||||
return
|
||||
@@ -2521,4 +2528,5 @@
|
||||
icon_state = "onionrings"
|
||||
list_reagents = list("nutriment" = 3)
|
||||
filling_color = "#C0C9A0"
|
||||
gender = PLURAL
|
||||
gender = PLURAL
|
||||
#undef MAX_WEIGHT_CLASS
|
||||
@@ -19,7 +19,7 @@
|
||||
var/ore_pickup_rate = 15
|
||||
var/sheet_per_ore = 1
|
||||
var/point_upgrade = 1
|
||||
var/list/ore_values = list(("sand" = 1), ("iron" = 1), ("plasma" = 15), ("silver" = 16), ("gold" = 18), ("uranium" = 30), ("diamond" = 50), ("bluespace crystal" = 50), ("bananium" = 60), ("tranquillite" = 60))
|
||||
var/list/ore_values = list(("sand" = 1), ("iron" = 1), ("plasma" = 15), ("silver" = 16), ("gold" = 18), ("titanium" = 30), ("uranium" = 30), ("diamond" = 50), ("bluespace crystal" = 50), ("bananium" = 60), ("tranquillite" = 60))
|
||||
var/list/supply_consoles = list("Science", "Robotics", "Research Director's Desk", "Mechanic", "Engineering" = list("metal", "glass", "plasma"), "Chief Engineer's Desk" = list("metal", "glass", "plasma"), "Atmospherics" = list("metal", "glass", "plasma"), "Bar" = list("uranium", "plasma"), "Virology" = list("plasma", "uranium", "gold"))
|
||||
speed_process = 1
|
||||
|
||||
@@ -175,17 +175,28 @@
|
||||
dat += "<br>" //just looks nicer
|
||||
dat += text("[capitalize(s.name)]: [s.amount] <A href='?src=[UID()];release=[s.type]'>Release</A><br>")
|
||||
|
||||
if((/obj/item/stack/sheet/metal in stack_list) && (/obj/item/stack/sheet/mineral/plasma in stack_list))
|
||||
var/obj/item/stack/sheet/metalstack = stack_list[/obj/item/stack/sheet/metal]
|
||||
var/obj/item/stack/sheet/plasmastack = stack_list[/obj/item/stack/sheet/mineral/plasma]
|
||||
if(min(metalstack.amount, plasmastack.amount))
|
||||
dat += text("Plasteel Alloy (Metal + Plasma): <A href='?src=[UID()];plasteel=1'>Smelt</A><BR>")
|
||||
if((/obj/item/stack/sheet/glass in stack_list) && (/obj/item/stack/sheet/mineral/plasma in stack_list))
|
||||
var/obj/item/stack/sheet/glassstack = stack_list[/obj/item/stack/sheet/glass]
|
||||
var/obj/item/stack/sheet/plasmastack = stack_list[/obj/item/stack/sheet/mineral/plasma]
|
||||
if(min(glassstack.amount, plasmastack.amount))
|
||||
dat += "Plasma Glass (Glass + Plasma): <A href='?src=[UID()];plasglass=1'>Smelt</A><BR>"
|
||||
var/obj/item/stack/sheet/metalstack
|
||||
if(/obj/item/stack/sheet/metal in stack_list)
|
||||
metalstack = stack_list[/obj/item/stack/sheet/metal]
|
||||
|
||||
var/obj/item/stack/sheet/glass/glassstack
|
||||
if(/obj/item/stack/sheet/glass in stack_list)
|
||||
glassstack = stack_list[/obj/item/stack/sheet/glass]
|
||||
|
||||
var/obj/item/stack/sheet/plasmastack
|
||||
if((/obj/item/stack/sheet/mineral/plasma in stack_list))
|
||||
plasmastack = stack_list[/obj/item/stack/sheet/mineral/plasma]
|
||||
|
||||
var/obj/item/stack/sheet/mineral/titaniumstack
|
||||
if((/obj/item/stack/sheet/mineral/titanium in stack_list))
|
||||
titaniumstack = stack_list[/obj/item/stack/sheet/mineral/titanium]
|
||||
|
||||
if(metalstack && plasmastack && min(metalstack.amount, plasmastack.amount))
|
||||
dat += text("Plasteel Alloy (Metal + Plasma): <A href='?src=[UID()];alloytype1=/obj/item/stack/sheet/metal;alloytype2=/obj/item/stack/sheet/mineral/plasma;alloytypeout=/obj/item/stack/sheet/plasteel'>Smelt</A><BR>")
|
||||
if(titaniumstack && plasmastack && min(titaniumstack.amount, plasmastack.amount))
|
||||
dat += text("Plastitanium Alloy (Titanium + Plasma): <A href='?src=[UID()];alloytype1=/obj/item/stack/sheet/mineral/titanium;alloytype2=/obj/item/stack/sheet/mineral/plasma;alloytypeout=/obj/item/stack/sheet/mineral/plastitanium'>Smelt</A><BR>")
|
||||
if(glassstack && plasmastack && min(glassstack.amount, plasmastack.amount))
|
||||
dat += text("Plasma Glass (Glass + Plasma): <A href='?src=[UID()];alloytype1=/obj/item/stack/sheet/glass;alloytype2=/obj/item/stack/sheet/mineral/plasma;alloytypeout=/obj/item/stack/sheet/plasmaglass'>Smelt</A><BR>")
|
||||
dat += text("<br><div class='statusDisplay'><b>Mineral Value List:</b><BR>[get_ore_values()]</div>")
|
||||
|
||||
var/datum/browser/popup = new(user, "console_stacking_machine", "Ore Redemption Machine", 400, 500)
|
||||
@@ -242,37 +253,24 @@
|
||||
else
|
||||
to_chat(usr, "<span class='warning'>Required access not found.</span>")
|
||||
|
||||
if(href_list["plasteel"])
|
||||
if(href_list["alloytype1"] && href_list["alloytype2"] && href_list["alloytypeout"])
|
||||
var/alloytype1 = text2path(href_list["alloytype1"])
|
||||
var/alloytype2 = text2path(href_list["alloytype2"])
|
||||
var/alloytypeout = text2path(href_list["alloytypeout"])
|
||||
if(check_access(inserted_id) || allowed(usr))
|
||||
if(!(/obj/item/stack/sheet/metal in stack_list)) return
|
||||
if(!(/obj/item/stack/sheet/mineral/plasma in stack_list)) return
|
||||
var/obj/item/stack/sheet/metalstack = stack_list[/obj/item/stack/sheet/metal]
|
||||
var/obj/item/stack/sheet/plasmastack = stack_list[/obj/item/stack/sheet/mineral/plasma]
|
||||
|
||||
if(!(alloytype1 in stack_list))
|
||||
return
|
||||
if(!(alloytype2 in stack_list))
|
||||
return
|
||||
var/obj/item/stack/sheet/stack1 = stack_list[alloytype1]
|
||||
var/obj/item/stack/sheet/stack2 = stack_list[alloytype2]
|
||||
var/desired = input("How much?", "How much would you like to smelt?", 1) as num
|
||||
var/obj/item/stack/sheet/plasteel/plasteelout = new
|
||||
plasteelout.amount = round(min(desired,50,metalstack.amount,plasmastack.amount))
|
||||
if(plasteelout.amount >= 1)
|
||||
metalstack.amount -= plasteelout.amount
|
||||
plasmastack.amount -= plasteelout.amount
|
||||
unload_mineral(plasteelout)
|
||||
else
|
||||
to_chat(usr, "<span class='warning'>Required access not found.</span>")
|
||||
|
||||
if(href_list["plasglass"])
|
||||
if(check_access(inserted_id) || allowed(usr))
|
||||
if(!(/obj/item/stack/sheet/glass in stack_list)) return
|
||||
if(!(/obj/item/stack/sheet/mineral/plasma in stack_list)) return
|
||||
var/obj/item/stack/sheet/glassstack = stack_list[/obj/item/stack/sheet/glass]
|
||||
var/obj/item/stack/sheet/plasmastack = stack_list[/obj/item/stack/sheet/mineral/plasma]
|
||||
|
||||
var/desired = input("How much?", "How much would you like to smelt?", 1) as num
|
||||
var/obj/item/stack/sheet/plasmaglass/plasglassout = new
|
||||
plasglassout.amount = round(min(desired, 50, glassstack.amount, plasmastack.amount))
|
||||
if(plasglassout.amount >= 1)
|
||||
glassstack.amount -= plasglassout.amount
|
||||
plasmastack.amount -= plasglassout.amount
|
||||
unload_mineral(plasglassout)
|
||||
var/obj/item/stack/sheet/alloyout = new alloytypeout
|
||||
alloyout.amount = round(min(desired,50,stack1.amount,stack2.amount))
|
||||
if(alloyout.amount >= 1)
|
||||
stack1.amount -= alloyout.amount
|
||||
stack2.amount -= alloyout.amount
|
||||
unload_mineral(alloyout)
|
||||
else
|
||||
to_chat(usr, "<span class='warning'>Required access not found.</span>")
|
||||
updateUsrDialog()
|
||||
|
||||
@@ -25,93 +25,102 @@
|
||||
if(machine.ore_iron || machine.ore_glass || machine.ore_plasma || machine.ore_uranium || machine.ore_gold || machine.ore_silver || machine.ore_diamond || machine.ore_clown || machine.ore_mime || machine.ore_adamantine)
|
||||
if(machine.ore_iron)
|
||||
if(machine.selected_iron==1)
|
||||
dat += text("<A href='?src=[UID()];sel_iron=no'><font color='green'>Smelting</font></A> ")
|
||||
dat += "<A href='?src=[UID()];sel_iron=no'><font color='green'>Smelting</font></A> "
|
||||
else
|
||||
dat += text("<A href='?src=[UID()];sel_iron=yes'><font color='red'>Not smelting</font></A> ")
|
||||
dat += text("Iron: [machine.ore_iron]<br>")
|
||||
dat += "<A href='?src=[UID()];sel_iron=yes'><font color='red'>Not smelting</font></A> "
|
||||
dat += "Iron: [machine.ore_iron]<br>"
|
||||
else
|
||||
machine.selected_iron = 0
|
||||
|
||||
//sand - glass
|
||||
if(machine.ore_glass)
|
||||
if(machine.selected_glass==1)
|
||||
dat += text("<A href='?src=[UID()];sel_glass=no'><font color='green'>Smelting</font></A> ")
|
||||
dat += "<A href='?src=[UID()];sel_glass=no'><font color='green'>Smelting</font></A> "
|
||||
else
|
||||
dat += text("<A href='?src=[UID()];sel_glass=yes'><font color='red'>Not smelting</font></A> ")
|
||||
dat += text("Sand: [machine.ore_glass]<br>")
|
||||
dat += "<A href='?src=[UID()];sel_glass=yes'><font color='red'>Not smelting</font></A> "
|
||||
dat += "Sand: [machine.ore_glass]<br>"
|
||||
else
|
||||
machine.selected_glass = 0
|
||||
|
||||
//plasma
|
||||
if(machine.ore_plasma)
|
||||
if(machine.selected_plasma==1)
|
||||
dat += text("<A href='?src=[UID()];sel_plasma=no'><font color='green'>Smelting</font></A> ")
|
||||
dat += "<A href='?src=[UID()];sel_plasma=no'><font color='green'>Smelting</font></A> "
|
||||
else
|
||||
dat += text("<A href='?src=[UID()];sel_plasma=yes'><font color='red'>Not smelting</font></A> ")
|
||||
dat += text("Plasma: [machine.ore_plasma]<br>")
|
||||
dat += "<A href='?src=[UID()];sel_plasma=yes'><font color='red'>Not smelting</font></A> "
|
||||
dat += "Plasma: [machine.ore_plasma]<br>"
|
||||
else
|
||||
machine.selected_plasma = 0
|
||||
|
||||
//uranium
|
||||
if(machine.ore_uranium)
|
||||
if(machine.selected_uranium==1)
|
||||
dat += text("<A href='?src=[UID()];sel_uranium=no'><font color='green'>Smelting</font></A> ")
|
||||
dat += "<A href='?src=[UID()];sel_uranium=no'><font color='green'>Smelting</font></A> "
|
||||
else
|
||||
dat += text("<A href='?src=[UID()];sel_uranium=yes'><font color='red'>Not smelting</font></A> ")
|
||||
dat += text("Uranium: [machine.ore_uranium]<br>")
|
||||
dat += "<A href='?src=[UID()];sel_uranium=yes'><font color='red'>Not smelting</font></A> "
|
||||
dat += "Uranium: [machine.ore_uranium]<br>"
|
||||
else
|
||||
machine.selected_uranium = 0
|
||||
|
||||
//gold
|
||||
if(machine.ore_gold)
|
||||
if(machine.selected_gold==1)
|
||||
dat += text("<A href='?src=[UID()];sel_gold=no'><font color='green'>Smelting</font></A> ")
|
||||
dat += "<A href='?src=[UID()];sel_gold=no'><font color='green'>Smelting</font></A> "
|
||||
else
|
||||
dat += text("<A href='?src=[UID()];sel_gold=yes'><font color='red'>Not smelting</font></A> ")
|
||||
dat += text("Gold: [machine.ore_gold]<br>")
|
||||
dat += "<A href='?src=[UID()];sel_gold=yes'><font color='red'>Not smelting</font></A> "
|
||||
dat += "Gold: [machine.ore_gold]<br>"
|
||||
else
|
||||
machine.selected_gold = 0
|
||||
|
||||
//silver
|
||||
if(machine.ore_silver)
|
||||
if(machine.selected_silver==1)
|
||||
dat += text("<A href='?src=[UID()];sel_silver=no'><font color='green'>Smelting</font></A> ")
|
||||
dat += "<A href='?src=[UID()];sel_silver=no'><font color='green'>Smelting</font></A> "
|
||||
else
|
||||
dat += text("<A href='?src=[UID()];sel_silver=yes'><font color='red'>Not smelting</font></A> ")
|
||||
dat += text("Silver: [machine.ore_silver]<br>")
|
||||
dat += "<A href='?src=[UID()];sel_silver=yes'><font color='red'>Not smelting</font></A> "
|
||||
dat += "Silver: [machine.ore_silver]<br>"
|
||||
else
|
||||
machine.selected_silver = 0
|
||||
|
||||
//diamond
|
||||
if(machine.ore_diamond)
|
||||
if(machine.selected_diamond==1)
|
||||
dat += text("<A href='?src=[UID()];sel_diamond=no'><font color='green'>Smelting</font></A> ")
|
||||
dat += "<A href='?src=[UID()];sel_diamond=no'><font color='green'>Smelting</font></A> "
|
||||
else
|
||||
dat += text("<A href='?src=[UID()];sel_diamond=yes'><font color='red'>Not smelting</font></A> ")
|
||||
dat += text("Diamond: [machine.ore_diamond]<br>")
|
||||
dat += "<A href='?src=[UID()];sel_diamond=yes'><font color='red'>Not smelting</font></A> "
|
||||
dat += "Diamond: [machine.ore_diamond]<br>"
|
||||
else
|
||||
machine.selected_diamond = 0
|
||||
|
||||
//bananium
|
||||
if(machine.ore_clown)
|
||||
if(machine.selected_clown==1)
|
||||
dat += text("<A href='?src=[UID()];sel_clown=no'><font color='green'>Smelting</font></A> ")
|
||||
dat += "<A href='?src=[UID()];sel_clown=no'><font color='green'>Smelting</font></A> "
|
||||
else
|
||||
dat += text("<A href='?src=[UID()];sel_clown=yes'><font color='red'>Not smelting</font></A> ")
|
||||
dat += text("Bananium: [machine.ore_clown]<br>")
|
||||
dat += "<A href='?src=[UID()];sel_clown=yes'><font color='red'>Not smelting</font></A> "
|
||||
dat += "Bananium: [machine.ore_clown]<br>"
|
||||
else
|
||||
machine.selected_clown = 0
|
||||
|
||||
//tranquillite
|
||||
if(machine.ore_mime)
|
||||
if(machine.selected_mime==1)
|
||||
dat += text("<A href='?src=[UID()];sel_mime=no'><font color='green'>Smelting</font></A> ")
|
||||
dat += "<A href='?src=[UID()];sel_mime=no'><font color='green'>Smelting</font></A> "
|
||||
else
|
||||
dat += text("<A href='?src=[UID()];sel_mime=yes'><font color='red'>Not smelting</font></A> ")
|
||||
dat += text("Tranquillite: [machine.ore_mime]<br>")
|
||||
dat += "<A href='?src=[UID()];sel_mime=yes'><font color='red'>Not smelting</font></A> "
|
||||
dat += "Tranquillite: [machine.ore_mime]<br>"
|
||||
else
|
||||
machine.selected_mime = 0
|
||||
|
||||
//titanium
|
||||
if(machine.ore_titanium)
|
||||
if (machine.selected_titanium==1)
|
||||
dat += "<A href='?src=\ref[src];sel_titanium=no'><font color='green'>Smelting</font></A> "
|
||||
else
|
||||
dat += "<A href='?src=\ref[src];sel_titanium=yes'><font color='red'>Not smelting</font></A> "
|
||||
dat += "Titanium: [machine.ore_titanium]<br>"
|
||||
else
|
||||
machine.selected_titanium = 0
|
||||
|
||||
//On or off
|
||||
dat += text("Machine is currently ")
|
||||
@@ -175,6 +184,11 @@
|
||||
machine.selected_mime = 1
|
||||
else
|
||||
machine.selected_mime = 0
|
||||
if(href_list["sel_titanium"])
|
||||
if (href_list["sel_titanium"] == "yes")
|
||||
machine.selected_titanium = 1
|
||||
else
|
||||
machine.selected_titanium = 0
|
||||
if(href_list["set_on"])
|
||||
if(href_list["set_on"] == "on")
|
||||
machine.on = 1
|
||||
@@ -203,6 +217,7 @@
|
||||
var/ore_clown = 0
|
||||
var/ore_mime = 0
|
||||
var/ore_adamantine = 0
|
||||
var/ore_titanium = 0
|
||||
var/selected_gold = 0
|
||||
var/selected_silver = 0
|
||||
var/selected_diamond = 0
|
||||
@@ -212,92 +227,106 @@
|
||||
var/selected_iron = 0
|
||||
var/selected_clown = 0
|
||||
var/selected_mime = 0
|
||||
var/selected_titanium = 0
|
||||
var/on = 0 //0 = off, 1 =... oh you know!
|
||||
|
||||
/obj/machinery/mineral/processing_unit/process()
|
||||
var/i
|
||||
for(i = 0; i < 10; i++)
|
||||
for(var/i in 1 to 10)
|
||||
if(on)
|
||||
if(selected_glass == 1 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0 && selected_mime == 0)
|
||||
if(selected_glass && !selected_gold && !selected_silver && !selected_diamond && !selected_plasma && !selected_uranium && !selected_iron && !selected_clown && !selected_mime)
|
||||
if(ore_glass > 0)
|
||||
ore_glass--;
|
||||
ore_glass--
|
||||
generate_mineral(/obj/item/stack/sheet/glass)
|
||||
else
|
||||
on = 0
|
||||
continue
|
||||
if(selected_glass == 1 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 1 && selected_clown == 0 && selected_mime == 0)
|
||||
if(selected_glass && !selected_gold && !selected_silver && !selected_diamond && !selected_plasma && !selected_uranium && selected_iron && !selected_clown && !selected_mime)
|
||||
if(ore_glass > 0 && ore_iron > 0)
|
||||
ore_glass--;
|
||||
ore_iron--;
|
||||
ore_glass--
|
||||
ore_iron--
|
||||
generate_mineral(/obj/item/stack/sheet/rglass)
|
||||
else
|
||||
on = 0
|
||||
continue
|
||||
if(selected_glass == 0 && selected_gold == 1 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0 && selected_mime == 0)
|
||||
if(!selected_glass && selected_gold && !selected_silver && !selected_diamond && !selected_plasma && !selected_uranium && !selected_iron && !selected_clown && !selected_mime)
|
||||
if(ore_gold > 0)
|
||||
ore_gold--;
|
||||
ore_gold--
|
||||
generate_mineral(/obj/item/stack/sheet/mineral/gold)
|
||||
else
|
||||
on = 0
|
||||
continue
|
||||
if(selected_glass == 0 && selected_gold == 0 && selected_silver == 1 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0 && selected_mime == 0)
|
||||
if(!selected_glass && !selected_gold && selected_silver && !selected_diamond && !selected_plasma && !selected_uranium && !selected_iron && !selected_clown && !selected_mime)
|
||||
if(ore_silver > 0)
|
||||
ore_silver--;
|
||||
ore_silver--
|
||||
generate_mineral(/obj/item/stack/sheet/mineral/silver)
|
||||
else
|
||||
on = 0
|
||||
continue
|
||||
if(selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 1 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0 && selected_mime == 0)
|
||||
if(!selected_glass && !selected_gold && !selected_silver && selected_diamond && !selected_plasma && !selected_uranium && !selected_iron && !selected_clown && !selected_mime)
|
||||
if(ore_diamond > 0)
|
||||
ore_diamond--;
|
||||
ore_diamond--
|
||||
generate_mineral(/obj/item/stack/sheet/mineral/diamond)
|
||||
else
|
||||
on = 0
|
||||
continue
|
||||
if(selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 1 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0 && selected_mime == 0)
|
||||
if(!selected_glass && !selected_gold && !selected_silver && !selected_diamond && selected_plasma && !selected_uranium && !selected_iron && !selected_clown && !selected_mime)
|
||||
if(ore_plasma > 0)
|
||||
ore_plasma--;
|
||||
ore_plasma--
|
||||
generate_mineral(/obj/item/stack/sheet/mineral/plasma)
|
||||
else
|
||||
on = 0
|
||||
continue
|
||||
if(selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 1 && selected_iron == 0 && selected_clown == 0 && selected_mime == 0)
|
||||
if(!selected_glass && !selected_gold && !selected_silver && !selected_diamond && !selected_plasma && selected_uranium && !selected_iron && !selected_clown && !selected_mime)
|
||||
if(ore_uranium > 0)
|
||||
ore_uranium--;
|
||||
ore_uranium--
|
||||
generate_mineral(/obj/item/stack/sheet/mineral/uranium)
|
||||
else
|
||||
on = 0
|
||||
continue
|
||||
if(selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 1 && selected_clown == 0 && selected_mime == 0)
|
||||
if(!selected_glass && !selected_gold && !selected_silver && !selected_diamond && !selected_plasma && !selected_uranium && selected_iron && !selected_clown && !selected_mime)
|
||||
if(ore_iron > 0)
|
||||
ore_iron--;
|
||||
ore_iron--
|
||||
generate_mineral(/obj/item/stack/sheet/metal)
|
||||
else
|
||||
on = 0
|
||||
continue
|
||||
if(selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 1 && selected_uranium == 0 && selected_iron == 1 && selected_clown == 0 && selected_mime == 0)
|
||||
if(!selected_glass && !selected_gold && !selected_silver && !selected_diamond && selected_plasma && !selected_uranium && selected_iron && !selected_clown && !selected_mime)
|
||||
if(ore_iron > 0 && ore_plasma > 0)
|
||||
ore_iron--;
|
||||
ore_plasma--;
|
||||
ore_iron--
|
||||
ore_plasma--
|
||||
generate_mineral(/obj/item/stack/sheet/plasteel)
|
||||
else
|
||||
on = 0
|
||||
continue
|
||||
if(selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 1 && selected_mime == 0)
|
||||
if(!selected_glass && !selected_gold && !selected_silver && !selected_diamond && !selected_plasma && !selected_uranium && !selected_iron && selected_clown && !selected_mime)
|
||||
if(ore_clown > 0)
|
||||
ore_clown--;
|
||||
ore_clown--
|
||||
generate_mineral(/obj/item/stack/sheet/mineral/bananium)
|
||||
else
|
||||
on = 0
|
||||
continue
|
||||
if(selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0 && selected_mime == 1)
|
||||
if(!selected_glass && !selected_gold && !selected_silver && !selected_diamond && !selected_plasma && !selected_uranium && !selected_iron && !selected_clown && selected_mime)
|
||||
if(ore_mime > 0)
|
||||
ore_mime--;
|
||||
ore_mime--
|
||||
generate_mineral(/obj/item/stack/sheet/mineral/tranquillite)
|
||||
else
|
||||
on = 0
|
||||
continue
|
||||
|
||||
if (!selected_glass && !selected_gold && !selected_silver && !selected_diamond && !selected_plasma && !selected_uranium && !selected_iron && !selected_clown && !selected_mime && selected_titanium)
|
||||
if (ore_titanium > 0)
|
||||
ore_titanium--
|
||||
generate_mineral(/obj/item/stack/sheet/mineral/titanium)
|
||||
else
|
||||
on = 0
|
||||
continue
|
||||
if (!selected_glass && !selected_gold && !selected_silver && !selected_diamond && selected_plasma && !selected_uranium && !selected_iron && !selected_clown && !selected_mime && selected_titanium)
|
||||
if (ore_titanium > 0)
|
||||
ore_titanium--
|
||||
ore_plasma--
|
||||
generate_mineral(/obj/item/stack/sheet/mineral/plastitanium)
|
||||
else
|
||||
on = 0
|
||||
continue
|
||||
|
||||
//if a non valid combination is selected
|
||||
|
||||
@@ -333,6 +362,9 @@
|
||||
if(selected_mime == 1)
|
||||
if(ore_mime <= 0)
|
||||
b = 0
|
||||
if(selected_titanium == 1)
|
||||
if(ore_titanium <= 0)
|
||||
b = 0
|
||||
|
||||
if(b) //if they are, deduct one from each, produce slag and shut the machine off
|
||||
if(selected_gold == 1)
|
||||
@@ -351,6 +383,8 @@
|
||||
ore_clown--
|
||||
if(selected_mime == 1)
|
||||
ore_mime--
|
||||
if(selected_titanium == 1)
|
||||
ore_titanium--
|
||||
generate_mineral(/obj/item/weapon/ore/slag)
|
||||
on = 0
|
||||
else
|
||||
@@ -402,6 +436,10 @@
|
||||
ore_mime++
|
||||
O.loc = null
|
||||
continue
|
||||
if(istype(O,/obj/item/weapon/ore/titanium))
|
||||
ore_titanium++
|
||||
O.loc = null
|
||||
continue
|
||||
unload_mineral(O)
|
||||
|
||||
/obj/machinery/mineral/processing_unit/proc/generate_mineral(var/P)
|
||||
|
||||
@@ -362,15 +362,6 @@
|
||||
icon_regular_floor = "podfloor"
|
||||
floor_tile = /obj/item/stack/tile/pod
|
||||
|
||||
//Walls
|
||||
/turf/simulated/wall/survival
|
||||
name = "pod wall"
|
||||
desc = "An easily-compressable wall used for temporary shelter."
|
||||
icon = 'icons/turf/walls/survival_pod_walls.dmi'
|
||||
icon_state = "smooth"
|
||||
smooth = SMOOTH_MORE|SMOOTH_DIAGONAL
|
||||
canSmoothWith = list(/turf/simulated/wall/survival, /obj/machinery/door/airlock/survival_pod)
|
||||
|
||||
//Door
|
||||
/obj/machinery/door/airlock/survival_pod
|
||||
icon = 'icons/obj/doors/airlocks/survival/survival.dmi'
|
||||
|
||||
@@ -110,8 +110,7 @@ var/global/list/rockTurfEdgeCache = list(
|
||||
"Uranium" = 5, "Diamond" = 1, "Gold" = 10,
|
||||
"Silver" = 12, "Plasma" = 20, "Iron" = 40,
|
||||
"Gibtonite" = 4, "Cave" = 2, "BScrystal" = 1,
|
||||
/*, "Adamantine" =5*/)
|
||||
//Currently, Adamantine won't spawn as it has no uses. -Durandan
|
||||
"Titanium" = 11)
|
||||
var/mineralChance = 13
|
||||
|
||||
/turf/simulated/mineral/random/New()
|
||||
@@ -142,6 +141,8 @@ var/global/list/rockTurfEdgeCache = list(
|
||||
M = new/turf/simulated/mineral/clown(src)
|
||||
if("Tranquillite")
|
||||
M = new/turf/simulated/mineral/mime(src)
|
||||
if("Titanium")
|
||||
M = new/turf/simulated/mineral/titanium(src)
|
||||
if("BScrystal")
|
||||
M = new/turf/simulated/mineral/bscrystal(src)
|
||||
if(M)
|
||||
@@ -155,9 +156,9 @@ var/global/list/rockTurfEdgeCache = list(
|
||||
icon_state = "rock_highchance"
|
||||
mineralChance = 25
|
||||
mineralSpawnChanceList = list(
|
||||
"Uranium" = 35, "Diamond" = 30,
|
||||
"Gold" = 45, "Silver" = 50, "Plasma" = 50,
|
||||
"BScrystal" = 20)
|
||||
"Uranium" = 35, "Diamond" = 30, "Gold" = 45,
|
||||
"Silver" = 50, "Plasma" = 50, "BScrystal" = 20,
|
||||
"Titanium" = 45)
|
||||
|
||||
|
||||
/turf/simulated/mineral/random/high_chance_clown
|
||||
@@ -177,7 +178,7 @@ var/global/list/rockTurfEdgeCache = list(
|
||||
mineralSpawnChanceList = list(
|
||||
"Uranium" = 2, "Diamond" = 1, "Gold" = 4,
|
||||
"Silver" = 6, "Plasma" = 15, "Iron" = 40,
|
||||
"Gibtonite" = 2, "BScrystal" = 1)
|
||||
"Gibtonite" = 2, "BScrystal" = 1, "Titanium" = 4)
|
||||
|
||||
/turf/simulated/mineral/random/low_chance/New()
|
||||
icon_state = "rock"
|
||||
@@ -228,6 +229,14 @@ var/global/list/rockTurfEdgeCache = list(
|
||||
hidden = 1
|
||||
scan_state = "rock_Silver"
|
||||
|
||||
/turf/simulated/mineral/titanium
|
||||
name = "titanium deposit"
|
||||
mineralType = /obj/item/weapon/ore/titanium
|
||||
spreadChance = 5
|
||||
spread = 1
|
||||
hidden = 1
|
||||
scan_state = "rock_Titanium"
|
||||
|
||||
/turf/simulated/mineral/plasma
|
||||
name = "plasma deposit"
|
||||
icon_state = "rock_Plasma"
|
||||
|
||||
@@ -37,7 +37,8 @@
|
||||
speak_emote = list("states")
|
||||
wanted_objects = list(/obj/item/weapon/ore/diamond, /obj/item/weapon/ore/gold, /obj/item/weapon/ore/silver,
|
||||
/obj/item/weapon/ore/plasma, /obj/item/weapon/ore/uranium, /obj/item/weapon/ore/iron,
|
||||
/obj/item/weapon/ore/bananium, /obj/item/weapon/ore/tranquillite, /obj/item/weapon/ore/glass)
|
||||
/obj/item/weapon/ore/bananium, /obj/item/weapon/ore/tranquillite, /obj/item/weapon/ore/glass,
|
||||
/obj/item/weapon/ore/titanium)
|
||||
healable = 0
|
||||
var/mode = MINEDRONE_COLLECT
|
||||
var/light_on = 0
|
||||
|
||||
@@ -142,6 +142,13 @@
|
||||
refined_type = /obj/item/stack/sheet/mineral/tranquillite
|
||||
materials = list(MAT_TRANQUILLITE=MINERAL_MATERIAL_AMOUNT)
|
||||
|
||||
/obj/item/weapon/ore/titanium
|
||||
name = "titanium ore"
|
||||
icon_state = "Titanium ore"
|
||||
points = 50
|
||||
materials = list(MAT_TITANIUM=MINERAL_MATERIAL_AMOUNT)
|
||||
refined_type = /obj/item/stack/sheet/mineral/titanium
|
||||
|
||||
/obj/item/weapon/ore/slag
|
||||
name = "slag"
|
||||
desc = "Completely useless"
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
var/amt_iron = 0
|
||||
var/amt_plasma = 0
|
||||
var/amt_uranium = 0
|
||||
var/amt_titanium = 0
|
||||
var/amt_clown = 0
|
||||
var/amt_mime = 0
|
||||
var/amt_bluespace = 0
|
||||
@@ -56,6 +57,8 @@
|
||||
amt_clown++
|
||||
if(istype(C,/obj/item/weapon/ore/tranquillite))
|
||||
amt_mime++
|
||||
if(istype(C, /obj/item/weapon/ore/titanium))
|
||||
amt_titanium++
|
||||
if(istype(C,/obj/item/weapon/ore/bluespace_crystal))
|
||||
amt_bluespace++
|
||||
|
||||
@@ -74,6 +77,8 @@
|
||||
dat += text("Plasma ore: [amt_plasma]<br>")
|
||||
if(amt_uranium)
|
||||
dat += text("Uranium ore: [amt_uranium]<br>")
|
||||
if(amt_titanium)
|
||||
dat += text("Titanium ore: [amt_titanium]<br>")
|
||||
if(amt_clown)
|
||||
dat += text("Bananium ore: [amt_clown]<br>")
|
||||
if(amt_mime)
|
||||
|
||||
@@ -618,7 +618,7 @@
|
||||
exclaim_verb = "tones"
|
||||
colour = "say_quote"
|
||||
key = "z"//Zwarmer...Or Zerg!
|
||||
flags = RESTRICTED || HIVEMIND
|
||||
flags = RESTRICTED | HIVEMIND
|
||||
follow = 1
|
||||
|
||||
// Language handling.
|
||||
|
||||
@@ -1668,6 +1668,41 @@
|
||||
G.icon_state = "grabbed1"
|
||||
G.synch()
|
||||
|
||||
/mob/living/carbon/human/proc/get_eyecon()
|
||||
var/obj/item/organ/internal/eyes/eyes = get_int_organ(/obj/item/organ/internal/eyes)
|
||||
var/obj/item/organ/internal/cyberimp/eyes/eye_implant = get_int_organ(/obj/item/organ/internal/cyberimp/eyes)
|
||||
if(istype(species) && species.eyes)
|
||||
var/icon/eyes_icon = new/icon('icons/mob/human_face.dmi', species.eyes)
|
||||
if(eye_implant) //Eye implants override native DNA eye colo(u)r
|
||||
eyes_icon = eye_implant.generate_icon()
|
||||
else if(eyes)
|
||||
eyes_icon = eyes.generate_icon()
|
||||
else
|
||||
eyes_icon.Blend("#800000", ICON_ADD)
|
||||
|
||||
return eyes_icon
|
||||
|
||||
/mob/living/carbon/human/proc/get_eye_shine() //Referenced cult constructs for shining in the dark. Needs to be above lighting effects such as shading.
|
||||
var/obj/item/organ/external/head/head_organ = get_organ("head")
|
||||
var/datum/sprite_accessory/hair/hair_style = hair_styles_full_list[head_organ.h_style]
|
||||
var/icon/hair = new /icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s")
|
||||
|
||||
return image(get_icon_difference(get_eyecon(), hair), layer = LIGHTING_LAYER + 1) //Cut the hair's pixels from the eyes icon so eyes covered by bangs stay hidden even while on a higher layer.
|
||||
|
||||
/*Used to check if eyes should shine in the dark. Returns the image of the eyes on the layer where they will appear to shine.
|
||||
Eyes need to have significantly high darksight to shine unless the mob has the XRAY vision mutation. Eyes will not shine if they are covered in any way.*/
|
||||
/mob/living/carbon/human/proc/eyes_shine()
|
||||
var/obj/item/organ/internal/eyes/eyes = get_int_organ(/obj/item/organ/internal/eyes)
|
||||
var/obj/item/organ/internal/cyberimp/eyes/eye_implant = get_int_organ(/obj/item/organ/internal/cyberimp/eyes)
|
||||
if(!(istype(eyes) || istype(eye_implant)))
|
||||
return FALSE
|
||||
if(!get_location_accessible(src, "eyes"))
|
||||
return FALSE
|
||||
if(!(eyes.shine()) && !istype(eye_implant) && !(XRAY in mutations)) //If their eyes don't shine, they don't have other augs, nor do they have X-RAY vision
|
||||
return FALSE
|
||||
|
||||
return TRUE
|
||||
|
||||
/mob/living/carbon/human/proc/gut()
|
||||
set category = "Abilities"
|
||||
set name = "Gut"
|
||||
|
||||
@@ -170,9 +170,9 @@ I use this to standardize shadowling dethrall code
|
||||
-- Crazylemon
|
||||
*/
|
||||
/mob/living/carbon/human/proc/named_organ_parent(var/organ_name)
|
||||
if(!get_int_organ(organ_name))
|
||||
if(!get_int_organ_tag(organ_name))
|
||||
return null
|
||||
var/obj/item/organ/internal/O = get_int_organ(organ_name)
|
||||
var/obj/item/organ/internal/O = get_int_organ_tag(organ_name)
|
||||
return O.parent_organ
|
||||
|
||||
/mob/living/carbon/human/has_organic_damage()
|
||||
@@ -187,4 +187,4 @@ I use this to standardize shadowling dethrall code
|
||||
splinted_limbs.Cut()
|
||||
for(var/obj/item/organ/external/limb in bodyparts)
|
||||
if(limb.status & ORGAN_SPLINTED)
|
||||
splinted_limbs += limb
|
||||
splinted_limbs += limb
|
||||
|
||||
@@ -287,6 +287,7 @@
|
||||
|
||||
// Do species-specific reagent handling here
|
||||
// Return 1 if it should do normal processing too
|
||||
// Return the parent value if processing does not explicitly stop
|
||||
// Return 0 if it shouldn't deplete and do its normal effect
|
||||
// Other return values will cause weird badness
|
||||
/datum/species/proc/handle_reagents(mob/living/carbon/human/H, datum/reagent/R)
|
||||
|
||||
@@ -744,6 +744,12 @@
|
||||
if(speech_pref)
|
||||
H.mind.speech_span = "wingdings"
|
||||
|
||||
/datum/species/grey/handle_reagents(mob/living/carbon/human/H, datum/reagent/R)
|
||||
if(R.id == "sacid")
|
||||
H.reagents.del_reagent(R.id)
|
||||
return 0
|
||||
return ..()
|
||||
|
||||
/datum/species/diona
|
||||
name = "Diona"
|
||||
name_plural = "Dionaea"
|
||||
@@ -941,6 +947,8 @@
|
||||
|
||||
/datum/species/machine/handle_death(var/mob/living/carbon/human/H)
|
||||
var/obj/item/organ/external/head/head_organ = H.get_organ("head")
|
||||
if(!head_organ)
|
||||
return
|
||||
head_organ.h_style = "Bald"
|
||||
head_organ.f_style = "Shaved"
|
||||
spawn(100)
|
||||
@@ -963,10 +971,10 @@
|
||||
speech_chance = 20
|
||||
male_scream_sound = 'sound/voice/DraskTalk2.ogg'
|
||||
female_scream_sound = 'sound/voice/DraskTalk2.ogg'
|
||||
male_cough_sounds = null //whale cough when
|
||||
female_cough_sounds = null
|
||||
male_sneeze_sound = null
|
||||
female_sneeze_sound = null
|
||||
male_cough_sounds = 'sound/voice/DraskCough.ogg'
|
||||
female_cough_sounds = 'sound/voice/DraskCough.ogg'
|
||||
male_sneeze_sound = 'sound/voice/DraskSneeze.ogg'
|
||||
female_sneeze_sound = 'sound/voice/DraskSneeze.ogg'
|
||||
|
||||
burn_mod = 2
|
||||
//exotic_blood = "cryoxadone"
|
||||
|
||||
@@ -105,6 +105,7 @@ Please contact me on #coderbus IRC. ~Carn x
|
||||
|
||||
/mob/living/carbon/human
|
||||
var/list/overlays_standing[TOTAL_LAYERS]
|
||||
var/list/misc_effect_overlays = list() //Overlays that are applied at a custom layer (defined in each image's .layer property) outside of standard overlay application. Updated in update_misc_effects()
|
||||
var/previous_damage_appearance // store what the body last looked like, so we only have to update it if something changed
|
||||
var/icon/skeleton
|
||||
var/list/cached_standing_overlays = list() // List of everything currently in a human's actual overlays
|
||||
@@ -154,6 +155,10 @@ Please contact me on #coderbus IRC. ~Carn x
|
||||
I.layer = (-2 - (TOTAL_LAYERS - i)) // Highest layer gets -2, each prior layer is 1 lower
|
||||
new_overlays += I
|
||||
|
||||
update_misc_effects()
|
||||
if(misc_effect_overlays)
|
||||
new_overlays += misc_effect_overlays
|
||||
|
||||
if(frozen) // Admin freeze overlay
|
||||
new_overlays += frozen
|
||||
|
||||
@@ -1324,6 +1329,13 @@ var/global/list/damage_icon_parts = list()
|
||||
|
||||
if(update_icons) update_icons()
|
||||
|
||||
/mob/living/carbon/human/proc/update_misc_effects()
|
||||
misc_effect_overlays.Cut()
|
||||
|
||||
//Begin appending miscellaneous effects.
|
||||
if(eyes_shine())
|
||||
misc_effect_overlays += get_eye_shine() //Image layer is specified in get_eye_shine() proc as LIGHTING_LAYER + 1.
|
||||
|
||||
/mob/living/carbon/human/proc/force_update_limbs()
|
||||
for(var/obj/item/organ/external/O in bodyparts)
|
||||
O.sync_colour_to_human(src)
|
||||
|
||||
@@ -226,6 +226,27 @@ var/list/ai_verbs_default = list(
|
||||
|
||||
job = "AI"
|
||||
|
||||
/mob/living/silicon/ai/Stat()
|
||||
..()
|
||||
if(statpanel("Status"))
|
||||
if(stat)
|
||||
stat(null, text("Systems nonfunctional"))
|
||||
return
|
||||
show_borg_info()
|
||||
|
||||
/mob/living/silicon/ai/proc/show_borg_info()
|
||||
stat(null, text("Connected cyborgs: [connected_robots.len]"))
|
||||
for(var/mob/living/silicon/robot/R in connected_robots)
|
||||
var/robot_status = "Nominal"
|
||||
if(R.stat || !R.client)
|
||||
robot_status = "OFFLINE"
|
||||
else if(!R.cell || R.cell.charge <= 0)
|
||||
robot_status = "DEPOWERED"
|
||||
// Name, Health, Battery, Module, Area, and Status! Everything an AI wants to know about its borgies!
|
||||
var/area/A = get_area(R)
|
||||
stat(null, text("[R.name] | S.Integrity: [R.health]% | Cell: [R.cell ? "[R.cell.charge] / [R.cell.maxcharge]" : "Empty"] | \
|
||||
Module: [R.designation] | Loc: [sanitize(A.name)] | Status: [robot_status]"))
|
||||
|
||||
/mob/living/silicon/ai/rename_character(oldname, newname)
|
||||
if(!..(oldname, newname))
|
||||
return FALSE
|
||||
|
||||
@@ -490,6 +490,10 @@ Difficulty: Hard
|
||||
icon_state = "hierophant_telegraph_teleport"
|
||||
duration = 9
|
||||
|
||||
/obj/effect/temp_visual/hierophant/telegraph/edge
|
||||
icon_state = "hierophant_telegraph_edge"
|
||||
duration = 40
|
||||
|
||||
/obj/effect/temp_visual/hierophant/blast
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "hierophant_blast"
|
||||
|
||||
@@ -17,26 +17,29 @@
|
||||
|
||||
//The byond version of these verbs wait for the next tick before acting.
|
||||
// instant verbs however can run mid tick or even during the time between ticks.
|
||||
#define DO_MOVE(this_dir) var/final_dir = turn(this_dir, -dir2angle(dir)); Move(get_step(mob, final_dir), final_dir);
|
||||
|
||||
/client/verb/moveup()
|
||||
set name = ".moveup"
|
||||
set instant = 1
|
||||
Move(get_step(mob, NORTH), NORTH)
|
||||
DO_MOVE(NORTH)
|
||||
|
||||
/client/verb/movedown()
|
||||
set name = ".movedown"
|
||||
set instant = 1
|
||||
Move(get_step(mob, SOUTH), SOUTH)
|
||||
DO_MOVE(SOUTH)
|
||||
|
||||
/client/verb/moveright()
|
||||
set name = ".moveright"
|
||||
set instant = 1
|
||||
Move(get_step(mob, EAST), EAST)
|
||||
DO_MOVE(EAST)
|
||||
|
||||
/client/verb/moveleft()
|
||||
set name = ".moveleft"
|
||||
set instant = 1
|
||||
Move(get_step(mob, WEST), WEST)
|
||||
DO_MOVE(WEST)
|
||||
|
||||
#undef DO_MOVE
|
||||
|
||||
/client/Northeast()
|
||||
swap_hand()
|
||||
|
||||
@@ -982,6 +982,14 @@
|
||||
icon_state = "skrell_hair_f"
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/hair/skrell/skr_tentacleslong
|
||||
name = "Long Skrell Tentacles"
|
||||
icon_state = "skrell_hair_verylong"
|
||||
|
||||
/datum/sprite_accessory/hair/skrell/skr_tentaclesshort
|
||||
name = "Short Skrell Tentacles"
|
||||
icon_state = "skrell_hair_veryshort"
|
||||
|
||||
/datum/sprite_accessory/hair/skrell/skr_gold_m
|
||||
name = "Gold plated Skrell Male Tentacles"
|
||||
icon_state = "skrell_hair_m"
|
||||
@@ -1008,6 +1016,117 @@
|
||||
gender = FEMALE
|
||||
secondary_theme = "cloth"
|
||||
|
||||
/datum/sprite_accessory/hair/skrell/skr_gclothtentacle_m
|
||||
name = "Ombre Dye, Skrell Male Tentacles"
|
||||
icon_state = "skrell_hair_m"
|
||||
gender = MALE
|
||||
secondary_theme = "gradient"
|
||||
|
||||
/datum/sprite_accessory/hair/skrell/skr_gclothtentacle_f
|
||||
name = "Ombre Dye, Skrell Female Tentacles"
|
||||
icon_state = "skrell_hair_f"
|
||||
gender = FEMALE
|
||||
secondary_theme = "gradient"
|
||||
|
||||
/datum/sprite_accessory/hair/skrell/skr_gclothtentacleslong
|
||||
name = "Ombre Dye, Long Skrell Tentacles"
|
||||
icon_state = "skrell_hair_verylong"
|
||||
secondary_theme = "gradient"
|
||||
|
||||
/datum/sprite_accessory/hair/skrell/skr_gclothtentaclesshort
|
||||
name = "Ombre Dye, Short Skrell Tentacles"
|
||||
icon_state = "skrell_hair_veryshort"
|
||||
secondary_theme = "gradient"
|
||||
|
||||
/datum/sprite_accessory/hair/skrell/skr_diablacktentacle_m
|
||||
name = "Black headress Skrell Male Tentacles"
|
||||
icon_state = "skrell_hair_m"
|
||||
gender = MALE
|
||||
secondary_theme = "blackdia"
|
||||
no_sec_colour = 1
|
||||
|
||||
/datum/sprite_accessory/hair/skrell/skr_diablacktentacle_f
|
||||
name = "Black headress Skrell Female Tentacles"
|
||||
icon_state = "skrell_hair_f"
|
||||
gender = FEMALE
|
||||
secondary_theme = "blackdia"
|
||||
no_sec_colour = 1
|
||||
|
||||
/datum/sprite_accessory/hair/skrell/skr_diablacktentacleslong
|
||||
name = "Black headress Long Skrell Tentacles"
|
||||
icon_state = "skrell_hair_verylong"
|
||||
secondary_theme = "blackdia"
|
||||
no_sec_colour = 1
|
||||
|
||||
|
||||
/datum/sprite_accessory/hair/skrell/skr_diagoldtentacle_m
|
||||
name = "Gold headress Skrell Male Tentacles"
|
||||
icon_state = "skrell_hair_m"
|
||||
gender = MALE
|
||||
secondary_theme = "golddia"
|
||||
no_sec_colour = 1
|
||||
|
||||
/datum/sprite_accessory/hair/skrell/skr_diagoldtentacle_f
|
||||
name = "Gold headress Skrell Female Tentacles"
|
||||
icon_state = "skrell_hair_f"
|
||||
gender = FEMALE
|
||||
secondary_theme = "golddia"
|
||||
no_sec_colour = 1
|
||||
|
||||
/datum/sprite_accessory/hair/skrell/skr_diagoldtentacleslong
|
||||
name = "Gold headress Long Skrell Tentacles"
|
||||
icon_state = "skrell_hair_verylong"
|
||||
secondary_theme = "golddia"
|
||||
no_sec_colour = 1
|
||||
|
||||
/datum/sprite_accessory/hair/skrell/skr_diasilvertentacle_m
|
||||
name = "Silver headress Skrell Male Tentacles"
|
||||
icon_state = "skrell_hair_m"
|
||||
gender = MALE
|
||||
secondary_theme = "silvdia"
|
||||
no_sec_colour = 1
|
||||
|
||||
/datum/sprite_accessory/hair/skrell/skr_diasilvertentacle_f
|
||||
name = "Silver headress Skrell Female Tentacles"
|
||||
icon_state = "skrell_hair_f"
|
||||
gender = FEMALE
|
||||
secondary_theme = "silvdia"
|
||||
no_sec_colour = 1
|
||||
|
||||
/datum/sprite_accessory/hair/skrell/skr_diasilvertentacleslong
|
||||
name = "Silver headress Long Skrell Tentacles"
|
||||
icon_state = "skrell_hair_verylong"
|
||||
secondary_theme = "silvdia"
|
||||
no_sec_colour = 1
|
||||
|
||||
/datum/sprite_accessory/hair/skrell/skr_festivetentacle_m
|
||||
name = "Festive headress Skrell Male Tentacles"
|
||||
icon_state = "skrell_hair_m"
|
||||
gender = MALE
|
||||
secondary_theme = "fest"
|
||||
no_sec_colour = 1
|
||||
|
||||
/datum/sprite_accessory/hair/skrell/skr_festivetentacle_f
|
||||
name = "Festive headress Skrell Female Tentacles"
|
||||
icon_state = "skrell_hair_f"
|
||||
gender = FEMALE
|
||||
secondary_theme = "fest"
|
||||
no_sec_colour = 1
|
||||
|
||||
/datum/sprite_accessory/hair/skrell/skr_festivetentacleslong
|
||||
name = "Festive headress Long Skrell Tentacles"
|
||||
icon_state = "skrell_hair_verylong"
|
||||
secondary_theme = "fest"
|
||||
no_sec_colour = 1
|
||||
|
||||
/datum/sprite_accessory/hair/skrell/skr_festivetentaclesshort
|
||||
name = "Festive headress Short Skrell Tentacles"
|
||||
icon_state = "skrell_hair_veryshort"
|
||||
secondary_theme = "fest"
|
||||
no_sec_colour = 1
|
||||
|
||||
//Tajaran styles
|
||||
|
||||
/datum/sprite_accessory/hair/tajara
|
||||
species_allowed = list("Tajaran")
|
||||
glasses_over = 1
|
||||
@@ -1064,6 +1183,11 @@
|
||||
icon_state = "hair_curly"
|
||||
glasses_over = null
|
||||
|
||||
/datum/sprite_accessory/hair/tajara/taj_hair_bedhead
|
||||
name = "Tajara bedhead"
|
||||
icon_state = "hair_tbedhead"
|
||||
glasses_over = null
|
||||
|
||||
/datum/sprite_accessory/hair/tajara/taj_hair_retro
|
||||
name = "Tajaran Ladies' Retro"
|
||||
icon_state = "hair_ladies_retro"
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
name = "paper"
|
||||
icon_state = "paper_stack"
|
||||
item_state = "paper"
|
||||
var copied = 0
|
||||
var iscopy = 0
|
||||
var/copied = 0
|
||||
var/iscopy = 0
|
||||
|
||||
|
||||
/obj/item/weapon/paper/carbon/update_icon()
|
||||
|
||||
@@ -239,6 +239,7 @@
|
||||
\[list\] - \[/list\] : A list.<br>
|
||||
\[*\] : A dot used for lists.<br>
|
||||
\[hr\] : Adds a horizontal rule.
|
||||
\[time\] : Inserts the current station time in HH:MM:SS.<br>
|
||||
</BODY></HTML>"}, "window=paper_help")
|
||||
|
||||
/obj/item/weapon/paper/Topic(href, href_list)
|
||||
|
||||
@@ -0,0 +1,129 @@
|
||||
// Ported from TG
|
||||
/obj/item/weapon/paperplane
|
||||
name = "paper plane"
|
||||
desc = "Paper, folded in the shape of a plane."
|
||||
icon = 'icons/obj/bureaucracy.dmi'
|
||||
icon_state = "paperplane"
|
||||
throw_range = 7
|
||||
throw_speed = 1
|
||||
throwforce = 0
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
burn_state = FLAMMABLE
|
||||
burntime = 5
|
||||
no_spin = TRUE
|
||||
|
||||
var/obj/item/weapon/paper/internal_paper
|
||||
|
||||
/obj/item/weapon/paperplane/New(loc, obj/item/weapon/paper/new_paper)
|
||||
..()
|
||||
pixel_y = rand(-8, 8)
|
||||
pixel_x = rand(-9, 9)
|
||||
if(new_paper)
|
||||
internal_paper = new_paper
|
||||
flags = new_paper.flags
|
||||
color = new_paper.color
|
||||
new_paper.forceMove(src)
|
||||
else
|
||||
internal_paper = new /obj/item/weapon/paper(src)
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/paperplane/Destroy()
|
||||
QDEL_NULL(internal_paper)
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/paperplane/suicide_act(mob/living/user)
|
||||
user.Stun(10)
|
||||
user.visible_message("<span class='suicide'>[user] jams [name] in \his nose. It looks like \he's trying to commit suicide!</span>")
|
||||
user.EyeBlurry(6)
|
||||
var/obj/item/organ/internal/eyes/E = user.get_int_organ(/obj/item/organ/internal/eyes)
|
||||
if(E)
|
||||
E.take_damage(8, 1)
|
||||
sleep(10)
|
||||
return BRUTELOSS
|
||||
|
||||
/obj/item/weapon/paperplane/update_icon()
|
||||
overlays.Cut()
|
||||
var/list/stamped = internal_paper.stamped
|
||||
if(!stamped)
|
||||
stamped = new
|
||||
else if(stamped)
|
||||
for(var/S in stamped)
|
||||
var/obj/item/weapon/stamp = S
|
||||
var/image/stampoverlay = image('icons/obj/bureaucracy.dmi', "paperplane_[initial(stamp.icon_state)]")
|
||||
overlays += stampoverlay
|
||||
|
||||
/obj/item/weapon/paperplane/attack_self(mob/user) // Unfold the paper plane
|
||||
to_chat(user, "<span class='notice'>You unfold [src].</span>")
|
||||
if(internal_paper)
|
||||
internal_paper.forceMove(get_turf(src))
|
||||
user.put_in_hands(internal_paper)
|
||||
internal_paper = null
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/paperplane/attackby(obj/item/P, mob/living/carbon/human/user, params)
|
||||
..()
|
||||
|
||||
if(istype(P, /obj/item/weapon/pen) || istype(P, /obj/item/toy/crayon))
|
||||
to_chat(user, "<span class='notice'>You should unfold [src] before changing it.</span>")
|
||||
return
|
||||
|
||||
else if(istype(P, /obj/item/weapon/stamp)) //we don't randomize stamps on a paperplane
|
||||
internal_paper.attackby(P, user) //spoofed attack to update internal paper.
|
||||
update_icon()
|
||||
|
||||
else if(is_hot(P))
|
||||
if(user.disabilities & CLUMSY && prob(10))
|
||||
user.visible_message("<span class='warning'>[user] accidentally ignites themselves!</span>", \
|
||||
"<span class='userdanger'>You miss [src] and accidentally light yourself on fire!</span>")
|
||||
user.unEquip(P)
|
||||
user.adjust_fire_stacks(1)
|
||||
user.IgniteMob()
|
||||
return
|
||||
|
||||
if(!in_range(user, src)) //to prevent issues as a result of telepathically lighting a paper
|
||||
return
|
||||
user.unEquip(src)
|
||||
user.visible_message("<span class='danger'>[user] lights [src] on fire with [P]!</span>", "<span class='danger'>You lights [src] on fire!</span>")
|
||||
fire_act()
|
||||
|
||||
add_fingerprint(user)
|
||||
|
||||
/obj/item/weapon/paperplane/throw_impact(atom/hit_atom)
|
||||
if(..())
|
||||
return
|
||||
if(!ishuman(hit_atom))
|
||||
return
|
||||
var/mob/living/carbon/human/H = hit_atom
|
||||
if(prob(2))
|
||||
if(H.head && H.head.flags_cover & HEADCOVERSEYES)
|
||||
return
|
||||
if(H.wear_mask && H.wear_mask.flags_cover & MASKCOVERSEYES)
|
||||
return
|
||||
if(H.glasses && H.glasses.flags_cover & GLASSESCOVERSEYES)
|
||||
return
|
||||
visible_message("<span class='danger'>[src] hits [H] in the eye!</span>")
|
||||
H.EyeBlurry(6)
|
||||
H.Weaken(2)
|
||||
var/obj/item/organ/internal/eyes/E = H.get_int_organ(/obj/item/organ/internal/eyes)
|
||||
if(E)
|
||||
E.take_damage(8, 1)
|
||||
H.emote("scream")
|
||||
|
||||
/obj/item/weapon/paper/AltClick(mob/user, obj/item/I)
|
||||
var/mob/living/carbon/human/H = user
|
||||
I = H.is_in_hands(/obj/item/weapon/paper)
|
||||
if(I)
|
||||
ProcFoldPlane(H, I)
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/weapon/paper/proc/ProcFoldPlane(mob/living/carbon/user, obj/item/I)
|
||||
if(istype(user))
|
||||
if((!in_range(src, user)) || user.stat || user.restrained())
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You fold [src] into the shape of a plane!</span>")
|
||||
user.unEquip(src)
|
||||
I = new /obj/item/weapon/paperplane(user, src)
|
||||
user.put_in_hands(I)
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You lack the dexterity to fold [src].</span>")
|
||||
@@ -769,6 +769,7 @@
|
||||
data["totalLoad"] = round(lastused_equip + lastused_light + lastused_environ)
|
||||
data["coverLocked"] = coverlocked
|
||||
data["siliconUser"] = istype(user, /mob/living/silicon)
|
||||
data["siliconLock"] = locked
|
||||
data["malfStatus"] = get_malf_status(user)
|
||||
|
||||
var/powerChannels[0]
|
||||
|
||||
@@ -467,8 +467,6 @@ obj/structure/cable/proc/cableColor(var/colorC)
|
||||
// Definitions
|
||||
////////////////////////////////
|
||||
|
||||
#define MAXCOIL 30
|
||||
|
||||
var/global/list/datum/stack_recipe/cable_coil_recipes = list(
|
||||
new /datum/stack_recipe/cable_restraints("cable restraints", /obj/item/weapon/restraints/handcuffs/cable, 15),
|
||||
)
|
||||
|
||||
@@ -45,7 +45,6 @@ var/global/list/rad_collectors = list()
|
||||
else
|
||||
to_chat(user, "<span class='warning'>The controls are locked!</span>")
|
||||
return
|
||||
..()
|
||||
|
||||
|
||||
/obj/machinery/power/rad_collector/attackby(obj/item/W, mob/user, params)
|
||||
|
||||
@@ -27,7 +27,11 @@
|
||||
/obj/item/projectile/magic/death/on_hit(var/mob/living/carbon/G)
|
||||
. = ..()
|
||||
if(isliving(G))
|
||||
G.adjustFireLoss(3000)
|
||||
if(G.get_species() == "Machine") //speshul snowfleks deserv speshul treetment
|
||||
G.adjustFireLoss(6969) //remember - slimes love fire
|
||||
else
|
||||
G.death()
|
||||
|
||||
visible_message("<span class='danger'>[G] topples backwards as the death bolt impacts them!</span>")
|
||||
|
||||
/obj/item/projectile/magic/fireball/Range()
|
||||
@@ -293,4 +297,4 @@ proc/wabbajack(mob/living/M)
|
||||
damage_type = BURN
|
||||
flag = "magic"
|
||||
dismemberment = 50
|
||||
nodamage = 0
|
||||
nodamage = 0
|
||||
|
||||
@@ -41,7 +41,8 @@
|
||||
/obj/machinery/hydroponics,
|
||||
/obj/machinery/constructable_frame,
|
||||
/obj/machinery/icemachine,
|
||||
/obj/item/weapon/bombcore/chemical)
|
||||
/obj/item/weapon/bombcore/chemical,
|
||||
/obj/machinery/vending)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/New()
|
||||
..()
|
||||
|
||||
@@ -110,3 +110,9 @@
|
||||
desc = "Used to treat respiratory distress."
|
||||
icon_state = "pill8"
|
||||
list_reagents = list("salbutamol" = 20)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/pill/hydrocodone
|
||||
name = "Hydrocodone pill"
|
||||
desc = "Used to treat extreme pain."
|
||||
icon_state = "pill6"
|
||||
list_reagents = list("hydrocodone" = 15)
|
||||
@@ -186,7 +186,7 @@
|
||||
id = "handdrill"
|
||||
req_tech = list("materials" = 4, "engineering" = 6)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 3500, MAT_SILVER = 1500, MAT_GOLD = 1000)
|
||||
materials = list(MAT_METAL = 3500, MAT_SILVER = 1500, MAT_TITANIUM = 2500)
|
||||
build_path = /obj/item/weapon/screwdriver/power
|
||||
category = list("Equipment")
|
||||
|
||||
@@ -197,7 +197,7 @@
|
||||
req_tech = list("materials" = 4, "engineering" = 6, "magnets" = 6) // added one more requirment since the Jaws of Life are a bit OP
|
||||
build_path = /obj/item/weapon/crowbar/power
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 4500, MAT_SILVER = 2500, MAT_DIAMOND = 1000)
|
||||
materials = list(MAT_METAL = 4500, MAT_SILVER = 2500, MAT_TITANIUM = 3500)
|
||||
category = list("Equipment")
|
||||
|
||||
/datum/design/alienwrench
|
||||
@@ -207,7 +207,7 @@
|
||||
req_tech = list("engineering" = 5, "materials" = 5, "abductor" = 4)
|
||||
build_path = /obj/item/weapon/wrench/abductor
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_DIAMOND = 2000)
|
||||
materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000)
|
||||
category = list("Equipment")
|
||||
|
||||
/datum/design/alienwirecutters
|
||||
@@ -217,7 +217,7 @@
|
||||
req_tech = list("engineering" = 5, "materials" = 5, "abductor" = 4)
|
||||
build_path = /obj/item/weapon/wirecutters/abductor
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_DIAMOND = 2000)
|
||||
materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000)
|
||||
category = list("Equipment")
|
||||
|
||||
/datum/design/alienscrewdriver
|
||||
@@ -227,7 +227,7 @@
|
||||
req_tech = list("engineering" = 5, "materials" = 5, "abductor" = 4)
|
||||
build_path = /obj/item/weapon/screwdriver/abductor
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_DIAMOND = 2000)
|
||||
materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000)
|
||||
category = list("Equipment")
|
||||
|
||||
/datum/design/aliencrowbar
|
||||
@@ -237,7 +237,7 @@
|
||||
req_tech = list("engineering" = 5, "materials" = 5, "abductor" = 4)
|
||||
build_path = /obj/item/weapon/crowbar/abductor
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_DIAMOND = 2000)
|
||||
materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000)
|
||||
category = list("Equipment")
|
||||
|
||||
/datum/design/alienwelder
|
||||
@@ -247,7 +247,7 @@
|
||||
req_tech = list("engineering" = 5, "plasmatech" = 5, "abductor" = 4)
|
||||
build_path = /obj/item/weapon/weldingtool/abductor
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 5000, MAT_DIAMOND = 2000)
|
||||
materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 5000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000)
|
||||
category = list("Equipment")
|
||||
|
||||
/datum/design/alienmultitool
|
||||
@@ -257,5 +257,5 @@
|
||||
req_tech = list("engineering" = 5, "programming" = 5, "abductor" = 4)
|
||||
build_path = /obj/item/device/multitool/abductor
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 5000, MAT_DIAMOND = 2000)
|
||||
materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 5000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000)
|
||||
category = list("Equipment")
|
||||
|
||||
@@ -318,7 +318,7 @@
|
||||
id = "gygax_armor"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/part/gygax_armour
|
||||
materials = list(MAT_METAL=25000,MAT_DIAMOND=10000)
|
||||
materials = list(MAT_METAL=15000,MAT_DIAMOND=10000,MAT_TITANIUM=10000)
|
||||
construction_time = 600
|
||||
category = list("Gygax")
|
||||
|
||||
@@ -391,7 +391,7 @@
|
||||
id = "durand_armor"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/part/durand_armor
|
||||
materials = list(MAT_METAL=50000,MAT_URANIUM=30000)
|
||||
materials = list(MAT_METAL=30000,MAT_URANIUM=25000,MAT_TITANIUM=20000)
|
||||
construction_time = 600
|
||||
category = list("Durand")
|
||||
|
||||
@@ -592,7 +592,7 @@
|
||||
id = "phazon_armor"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/part/phazon_armor
|
||||
materials = list(MAT_METAL=45000,MAT_PLASMA=30000)
|
||||
materials = list(MAT_METAL=25000,MAT_PLASMA=20000,MAT_TITANIUM=20000)
|
||||
construction_time = 300
|
||||
category = list("Phazon")
|
||||
|
||||
|
||||
@@ -192,7 +192,7 @@
|
||||
req_tech = list("biotech" = 4, "materials" = 4, "abductor" = 3)
|
||||
build_path = /obj/item/weapon/scalpel/alien
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_GOLD = 500, MAT_PLASMA = 500)
|
||||
materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500)
|
||||
category = list("Medical")
|
||||
|
||||
/datum/design/alienhemostat
|
||||
@@ -202,7 +202,7 @@
|
||||
req_tech = list("biotech" = 4, "materials" = 4, "abductor" = 3)
|
||||
build_path = /obj/item/weapon/hemostat/alien
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_GOLD = 500, MAT_PLASMA = 500)
|
||||
materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500)
|
||||
category = list("Medical")
|
||||
|
||||
/datum/design/alienretractor
|
||||
@@ -212,7 +212,7 @@
|
||||
req_tech = list("biotech" = 4, "materials" = 4, "abductor" = 3)
|
||||
build_path = /obj/item/weapon/retractor/alien
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_GOLD = 500, MAT_PLASMA = 500)
|
||||
materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500)
|
||||
category = list("Medical")
|
||||
|
||||
/datum/design/aliensaw
|
||||
@@ -222,7 +222,7 @@
|
||||
req_tech = list("biotech" = 4, "materials" = 4, "abductor" = 3)
|
||||
build_path = /obj/item/weapon/circular_saw/alien
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 10000, MAT_SILVER = 2500, MAT_GOLD = 1000, MAT_PLASMA = 1000)
|
||||
materials = list(MAT_METAL = 10000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 1500)
|
||||
category = list("Medical")
|
||||
|
||||
/datum/design/aliendrill
|
||||
@@ -232,7 +232,7 @@
|
||||
req_tech = list("biotech" = 4, "materials" = 4, "abductor" = 3)
|
||||
build_path = /obj/item/weapon/surgicaldrill/alien
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 10000, MAT_SILVER = 2500, MAT_GOLD = 1000, MAT_PLASMA = 1000)
|
||||
materials = list(MAT_METAL = 10000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 1500)
|
||||
category = list("Medical")
|
||||
|
||||
/datum/design/aliencautery
|
||||
@@ -242,7 +242,7 @@
|
||||
req_tech = list("biotech" = 4, "materials" = 4, "abductor" = 3)
|
||||
build_path = /obj/item/weapon/cautery/alien
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_GOLD = 500, MAT_PLASMA = 500)
|
||||
materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500)
|
||||
category = list("Medical")
|
||||
|
||||
/////////////////////////////////////////
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
id = "bluespace_cell"
|
||||
req_tech = list("powerstorage" = 6, "materials" = 5, "engineering" = 5, "bluespace" = 5)
|
||||
build_type = PROTOLATHE | MECHFAB
|
||||
materials = list(MAT_METAL = 800, MAT_GOLD = 300, MAT_SILVER = 300, MAT_GLASS = 160, MAT_DIAMOND = 160)
|
||||
materials = list(MAT_METAL = 800, MAT_GOLD = 120, MAT_SILVER = 150, MAT_GLASS = 160, MAT_DIAMOND = 160, MAT_TITANIUM = 300)
|
||||
construction_time=100
|
||||
build_path = /obj/item/weapon/stock_parts/cell/bluespace
|
||||
category = list("Misc","Power")
|
||||
|
||||
@@ -203,7 +203,7 @@
|
||||
id = "femto_mani"
|
||||
req_tech = list("materials" = 7, "programming" = 5, "engineering" = 5, "bluespace" = 5)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 200, MAT_DIAMOND = 60)
|
||||
materials = list(MAT_METAL = 200, MAT_DIAMOND = 30, MAT_TITANIUM = 30)
|
||||
build_path = /obj/item/weapon/stock_parts/manipulator/femto
|
||||
category = list("Stock Parts")
|
||||
lathe_time_factor = 0.2
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
id = "nuclear_gun"
|
||||
req_tech = list("combat" = 5, "magnets" = 5, "powerstorage" = 5)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 10000, MAT_GLASS = 2000, MAT_URANIUM = 4000)
|
||||
materials = list(MAT_METAL = 10000, MAT_GLASS = 2000, MAT_URANIUM = 3000, MAT_TITANIUM = 1000)
|
||||
build_path = /obj/item/weapon/gun/energy/gun/nuclear
|
||||
locked = 1
|
||||
category = list("Weapons")
|
||||
@@ -116,7 +116,7 @@
|
||||
id = "tele_shield"
|
||||
req_tech = list("combat" = 4, "materials" = 3, "engineering" = 4)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 4000, MAT_GLASS = 5000, MAT_SILVER = 300)
|
||||
materials = list(MAT_METAL = 4000, MAT_GLASS = 4000, MAT_SILVER = 300, MAT_TITANIUM = 200)
|
||||
build_path = /obj/item/weapon/shield/riot/tele
|
||||
category = list("Weapons")
|
||||
|
||||
@@ -242,7 +242,7 @@
|
||||
id = "xray"
|
||||
req_tech = list("combat" = 7, "magnets" = 5, "biotech" = 5, "powerstorage" = 4)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_GOLD = 5000,MAT_URANIUM = 10000, MAT_METAL = 5000)
|
||||
materials = list(MAT_GOLD = 5000,MAT_URANIUM = 8000, MAT_METAL = 5000, MAT_TITANIUM = 2000)
|
||||
build_path = /obj/item/weapon/gun/energy/xray
|
||||
locked = 1
|
||||
category = list("Weapons")
|
||||
|
||||
@@ -42,7 +42,7 @@ Note: Must be placed west/left of and R&D console to function.
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(null)
|
||||
component_parts += new /obj/item/weapon/reagent_containers/glass/beaker/large(null)
|
||||
component_parts += new /obj/item/weapon/reagent_containers/glass/beaker/large(null)
|
||||
materials = new(src, list(MAT_METAL=1, MAT_GLASS=1, MAT_SILVER=1, MAT_GOLD=1, MAT_DIAMOND=1, MAT_PLASMA=1, MAT_URANIUM=1, MAT_BANANIUM=1, MAT_TRANQUILLITE=1))
|
||||
materials = new(src, list(MAT_METAL=1, MAT_GLASS=1, MAT_SILVER=1, MAT_GOLD=1, MAT_DIAMOND=1, MAT_PLASMA=1, MAT_URANIUM=1, MAT_BANANIUM=1, MAT_TRANQUILLITE=1, MAT_TITANIUM=1))
|
||||
RefreshParts()
|
||||
|
||||
reagents.my_atom = src
|
||||
|
||||
@@ -98,6 +98,8 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
return_name = "Bananium"
|
||||
if("mime")
|
||||
return_name = "Tranquillite"
|
||||
if("titanium")
|
||||
return_name = "Titanium"
|
||||
return return_name
|
||||
else
|
||||
for(var/R in subtypesof(/datum/reagent))
|
||||
@@ -808,6 +810,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
materials_list[++materials_list.len] = list("name" = "Diamond", "id" = MAT_DIAMOND, "amount" = linked_lathe.materials.amount(MAT_DIAMOND))
|
||||
materials_list[++materials_list.len] = list("name" = "Bananium", "id" = MAT_BANANIUM, "amount" = linked_lathe.materials.amount(MAT_BANANIUM))
|
||||
materials_list[++materials_list.len] = list("name" = "Tranquillite", "id" = MAT_TRANQUILLITE, "amount" = linked_lathe.materials.amount(MAT_TRANQUILLITE))
|
||||
materials_list[++materials_list.len] = list("name" = "Titanium", "id" = MAT_TITANIUM, "amount" = linked_lathe.materials.amount(MAT_TITANIUM))
|
||||
if(submenu == 3)
|
||||
var/list/loaded_chemicals = list()
|
||||
data["loaded_chemicals"] = loaded_chemicals
|
||||
|
||||
@@ -140,7 +140,7 @@
|
||||
state_next = list(
|
||||
"key" = /obj/item/stack/sheet/metal,
|
||||
"amount" = 5,
|
||||
"vis_msg" = "{USER} frabricates a pressure bulkhead for the {HOLDER}.",
|
||||
"vis_msg" = "{USER} fabricates a pressure bulkhead for the {HOLDER}.",
|
||||
"self_msg" = "You frabricate a pressure bulkhead for the {HOLDER}."
|
||||
)
|
||||
),
|
||||
|
||||
@@ -67,9 +67,14 @@
|
||||
|
||||
var/move_delay = 2
|
||||
var/next_move = 0
|
||||
var/can_paint = TRUE
|
||||
|
||||
/obj/spacepod/proc/apply_paint(mob/user as mob)
|
||||
var/part_type
|
||||
if(!can_paint)
|
||||
to_chat(user, "<span class='warning'>You can't repaint this type of pod!</span>")
|
||||
return
|
||||
|
||||
var/part = input(user, "Choose part", null) as null|anything in list("Lights","Rim","Paint","Windows")
|
||||
switch(part)
|
||||
if("Lights")
|
||||
|
||||
@@ -18,6 +18,9 @@
|
||||
|
||||
/obj/item/organ/internal/cyberimp/eyes/insert(var/mob/living/carbon/M, var/special = 0)
|
||||
..()
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(istype(H) && eye_colour)
|
||||
H.update_body() //Apply our eye colour to the target.
|
||||
if(aug_message && !special)
|
||||
to_chat(owner, "<span class='notice'>[aug_message]</span>")
|
||||
M.update_sight()
|
||||
@@ -26,6 +29,15 @@
|
||||
. = ..()
|
||||
M.update_sight()
|
||||
|
||||
/obj/item/organ/internal/cyberimp/eyes/proc/generate_icon(var/mob/living/carbon/human/HA)
|
||||
var/mob/living/carbon/human/H = HA
|
||||
if(!istype(H))
|
||||
H = owner
|
||||
var/icon/cybereyes_icon = new /icon('icons/mob/human_face.dmi', H.species.eyes)
|
||||
cybereyes_icon.Blend(eye_colour, ICON_ADD) // Eye implants override native DNA eye color
|
||||
|
||||
return cybereyes_icon
|
||||
|
||||
/obj/item/organ/internal/cyberimp/eyes/emp_act(severity)
|
||||
if(!owner || emp_proof)
|
||||
return
|
||||
@@ -35,8 +47,6 @@
|
||||
to_chat(owner, "<span class='warning'>Static obfuscates your vision!</span>")
|
||||
owner.flash_eyes(visual = 1)
|
||||
|
||||
|
||||
|
||||
/obj/item/organ/internal/cyberimp/eyes/xray
|
||||
name = "X-ray implant"
|
||||
desc = "These cybernetic eye implants will give you X-ray vision. Blinking is futile."
|
||||
|
||||
@@ -337,6 +337,14 @@ I use this so that this can be made better once the organ overhaul rolls out --
|
||||
return 0
|
||||
return src == O.get_int_organ(organ_tag)
|
||||
|
||||
/obj/item/organ/proc/is_robotic(var/purist = FALSE)
|
||||
if(purist && (robotic > 1 || status & (ORGAN_ROBOT))) //Only the robotiest.
|
||||
return TRUE
|
||||
if(robotic || status & (ORGAN_ROBOT|ORGAN_ASSISTED)) //Any tech will do.
|
||||
return TRUE
|
||||
|
||||
return FALSE
|
||||
|
||||
/obj/item/organ/serialize()
|
||||
var/data = ..()
|
||||
if(status != 0)
|
||||
|
||||
@@ -692,7 +692,6 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
|
||||
if(!owner)
|
||||
return
|
||||
var/is_robotic = status & ORGAN_ROBOT
|
||||
var/mob/living/carbon/human/victim = owner
|
||||
|
||||
if(status & ORGAN_SPLINTED)
|
||||
@@ -724,7 +723,7 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
victim.bodyparts_by_name[limb_name] = null // Remove from owner's vars.
|
||||
|
||||
//Robotic limbs explode if sabotaged.
|
||||
if(is_robotic && sabotaged)
|
||||
if(is_robotic() && sabotaged)
|
||||
victim.visible_message(
|
||||
"<span class='danger'>\The [victim]'s [src.name] explodes violently!</span>",\
|
||||
"<span class='danger'>Your [src.name] explodes!</span>",\
|
||||
|
||||
@@ -102,16 +102,8 @@ var/global/list/limb_icon_cache = list()
|
||||
return
|
||||
|
||||
if(species.has_organ["eyes"])
|
||||
var/obj/item/organ/internal/eyes/eyes = owner.get_int_organ(/obj/item/organ/internal/eyes)
|
||||
var/obj/item/organ/internal/cyberimp/eyes/eye_implant = owner.get_int_organ(/obj/item/organ/internal/cyberimp/eyes)
|
||||
if(species.eyes)
|
||||
var/icon/eyes_icon = new/icon('icons/mob/human_face.dmi', species.eyes)
|
||||
if(eye_implant) // Eye implants override native DNA eye color
|
||||
eyes_icon.Blend(eye_implant.eye_colour, ICON_ADD)
|
||||
else if(eyes)
|
||||
eyes_icon.Blend(eyes.eye_colour, ICON_ADD)
|
||||
else
|
||||
eyes_icon.Blend("#800000", ICON_ADD)
|
||||
var/icon/eyes_icon = owner.get_eyecon()
|
||||
if(eyes_icon)
|
||||
mob_icon.Blend(eyes_icon, ICON_OVERLAY)
|
||||
overlays |= eyes_icon
|
||||
|
||||
|
||||
@@ -305,6 +305,15 @@
|
||||
/obj/item/organ/internal/eyes/proc/update_colour()
|
||||
dna.write_eyes_attributes(src)
|
||||
|
||||
/obj/item/organ/internal/eyes/proc/generate_icon(var/mob/living/carbon/human/HA)
|
||||
var/mob/living/carbon/human/H = HA
|
||||
if(!istype(H))
|
||||
H = owner
|
||||
var/icon/eyes_icon = new /icon('icons/mob/human_face.dmi', H.species.eyes)
|
||||
eyes_icon.Blend(eye_colour, ICON_ADD)
|
||||
|
||||
return eyes_icon
|
||||
|
||||
/obj/item/organ/internal/eyes/proc/get_colourmatrix() //Returns a special colour matrix if the eyes are organic and the mob is colourblind, otherwise it uses the current one.
|
||||
if(!robotic && owner.disabilities & COLOURBLIND)
|
||||
return colourblind_matrix
|
||||
@@ -314,6 +323,10 @@
|
||||
/obj/item/organ/internal/eyes/proc/get_dark_view() //Returns dark_view (if the eyes are organic) for see_invisible handling in species.dm to be autoprocessed by life().
|
||||
return dark_view
|
||||
|
||||
/obj/item/organ/internal/eyes/proc/shine()
|
||||
if(is_robotic() || (dark_view > EYE_SHINE_THRESHOLD))
|
||||
return TRUE
|
||||
|
||||
/obj/item/organ/internal/eyes/insert(mob/living/carbon/human/M, special = 0)
|
||||
..()
|
||||
if(istype(M) && eye_colour)
|
||||
|
||||
@@ -164,7 +164,7 @@
|
||||
. = stored_mmi
|
||||
if(owner.mind)
|
||||
owner.mind.transfer_to(stored_mmi.brainmob)
|
||||
stored_mmi.forceMove(get_turf(src))
|
||||
stored_mmi.forceMove(get_turf(owner))
|
||||
stored_mmi = null
|
||||
..()
|
||||
qdel(src)
|
||||
|
||||
Reference in New Issue
Block a user