upgradeable recycler

This commit is contained in:
Fox-McCloud
2015-09-04 19:41:42 -04:00
parent 71493c9d3f
commit ea6bfdf758
10 changed files with 57 additions and 26 deletions

View File

@@ -19,6 +19,7 @@
icon_state = "id_mod" icon_state = "id_mod"
item_state = "electronic" item_state = "electronic"
origin_tech = "programming=2" origin_tech = "programming=2"
materials = list(MAT_GLASS=200)
var/id = null var/id = null
var/frequency = null var/frequency = null
var/build_path = null var/build_path = null
@@ -82,7 +83,7 @@
build_path = /obj/machinery/computer/station_alert build_path = /obj/machinery/computer/station_alert
/obj/item/weapon/circuitboard/stationalert_security /obj/item/weapon/circuitboard/stationalert_security
name = "Circuit Board (Station Alert Console (Security))" name = "Circuit Board (Station Alert Console (Security))"
build_path = /obj/machinery/computer/station_alert build_path = /obj/machinery/computer/station_alert
/obj/item/weapon/circuitboard/stationalert_all /obj/item/weapon/circuitboard/stationalert_all
name = "Circuit Board (Station Alert Console (All))" name = "Circuit Board (Station Alert Console (All))"
build_path = /obj/machinery/computer/station_alert/all build_path = /obj/machinery/computer/station_alert/all

View File

@@ -1,7 +1,7 @@
var/const/SAFETY_COOLDOWN = 100 var/const/SAFETY_COOLDOWN = 100
/obj/machinery/recycler /obj/machinery/recycler
name = "crusher" name = "recycler"
desc = "A large crushing machine which is used to recycle small items ineffeciently; there are lights on the side of it." desc = "A large crushing machine which is used to recycle small items ineffeciently; there are lights on the side of it."
icon = 'icons/obj/recycling.dmi' icon = 'icons/obj/recycling.dmi'
icon_state = "grinder-o0" icon_state = "grinder-o0"
@@ -13,6 +13,8 @@ var/const/SAFETY_COOLDOWN = 100
var/icon_name = "grinder-o" var/icon_name = "grinder-o"
var/blood = 0 var/blood = 0
var/eat_dir = WEST var/eat_dir = WEST
var/amount_produced = 1
var/datum/material_container/materials
/obj/machinery/recycler/New() /obj/machinery/recycler/New()
// On us // On us
@@ -21,11 +23,20 @@ var/const/SAFETY_COOLDOWN = 100
component_parts += new /obj/item/weapon/circuitboard/recycler(null) component_parts += new /obj/item/weapon/circuitboard/recycler(null)
component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) component_parts += new /obj/item/weapon/stock_parts/matter_bin(null)
component_parts += new /obj/item/weapon/stock_parts/manipulator(null) component_parts += new /obj/item/weapon/stock_parts/manipulator(null)
materials = new /datum/material_container(src, list(MAT_METAL=1, MAT_GLASS=1, MAT_SILVER=1, MAT_GOLD=1, MAT_DIAMOND=1, MAT_URANIUM=1, MAT_BANANIUM=1))
RefreshParts() RefreshParts()
update_icon() update_icon()
/obj/machinery/recycler/RefreshParts() //If you want to make the machine upgradable, this is where you would change any vars basd on its stock parts. /obj/machinery/recycler/RefreshParts()
return var/amt_made = 0
var/mat_mod = 0
for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts)
mat_mod = 2 * B.rating
mat_mod *= 50000
for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
amt_made = 25 * M.rating //% of materials salvaged
materials.max_amount = mat_mod
amount_produced = min(100, amt_made)
/obj/machinery/recycler/examine() /obj/machinery/recycler/examine()
set src in view() set src in view()
@@ -39,7 +50,7 @@ var/const/SAFETY_COOLDOWN = 100
update_icon() update_icon()
/obj/machinery/recycler/attackby(var/obj/item/I, var/mob/user, params) /obj/machinery/recycler/attackby(obj/item/I, mob/user, params)
if(default_deconstruction_screwdriver(user, "grinder-oOpen", "grinder-o0", I)) if(default_deconstruction_screwdriver(user, "grinder-oOpen", "grinder-o0", I))
if(!panel_open) if(!panel_open)
update_icon() update_icon()
@@ -56,13 +67,14 @@ var/const/SAFETY_COOLDOWN = 100
add_fingerprint(user) add_fingerprint(user)
return return
/obj/machinery/recycler/emag_act(user as mob) /obj/machinery/recycler/emag_act(mob/user)
if(!emagged) if(!emagged)
emagged = 1 emagged = 1
if(safety_mode) if(safety_mode)
safety_mode = 0 safety_mode = 0
update_icon() update_icon()
playsound(src.loc, "sparks", 75, 1, -1) playsound(src.loc, "sparks", 75, 1, -1)
user << "<span class='notice'>You use the cryptographic sequencer on the [src.name].</span>"
/obj/machinery/recycler/update_icon() /obj/machinery/recycler/update_icon()
..() ..()
@@ -107,20 +119,20 @@ var/const/SAFETY_COOLDOWN = 100
playsound(src.loc, 'sound/machines/buzz-sigh.ogg', 50, 0) playsound(src.loc, 'sound/machines/buzz-sigh.ogg', 50, 0)
AM.loc = src.loc AM.loc = src.loc
/obj/machinery/recycler/proc/recycle(var/obj/item/I, var/sound = 1) /obj/machinery/recycler/proc/recycle(obj/item/I, sound = 1)
I.loc = src.loc I.loc = src.loc
if(!istype(I,/obj/item/flag/nation)) if(!istype(I))
return
if(sound)
playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
var/material_amount = materials.can_insert(I)
if(!material_amount)
qdel(I) qdel(I)
if(prob(15)) return
new /obj/item/stack/sheet/metal(loc) materials.insert_item(I, multiplier = (amount_produced / 100))
if(prob(10)) qdel(I)
new /obj/item/stack/sheet/glass(loc) materials.retrieve_all()
if(prob(2))
new /obj/item/stack/sheet/plasteel(loc)
if(prob(1))
new /obj/item/stack/sheet/rglass(loc)
if(sound)
playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
/obj/machinery/recycler/proc/stop(var/mob/living/L) /obj/machinery/recycler/proc/stop(var/mob/living/L)

View File

@@ -9,6 +9,7 @@
throw_speed = 3 throw_speed = 3
throw_range = 7 throw_range = 7
flags = CONDUCT flags = CONDUCT
materials = list(MAT_METAL = 300, MAT_GLASS = 300)
origin_tech = "magnets=2;combat=1" origin_tech = "magnets=2;combat=1"
var/times_used = 0 //Number of times it's been used. var/times_used = 0 //Number of times it's been used.

View File

@@ -19,6 +19,7 @@ AI MODULES
throw_speed = 3 throw_speed = 3
throw_range = 15 throw_range = 15
origin_tech = "programming=3" origin_tech = "programming=3"
materials = list(MAT_GOLD=50)
var/datum/ai_laws/laws = null var/datum/ai_laws/laws = null
/obj/item/weapon/aiModule/proc/install(var/obj/machinery/computer/C) /obj/item/weapon/aiModule/proc/install(var/obj/machinery/computer/C)
@@ -88,7 +89,7 @@ AI MODULES
/obj/item/weapon/aiModule/proc/addAdditionalLaws(var/mob/living/silicon/ai/target, var/mob/sender) /obj/item/weapon/aiModule/proc/addAdditionalLaws(var/mob/living/silicon/ai/target, var/mob/sender)
/******************** Safeguard ********************/ /******************** Safeguard ********************/
/obj/item/weapon/aiModule/safeguard /obj/item/weapon/aiModule/safeguard
name = "\improper 'Safeguard' AI module" name = "\improper 'Safeguard' AI module"
@@ -175,7 +176,7 @@ AI MODULES
var/law = "The station is under a quarantine. Do not permit anyone to leave. Prevent, by any means necessary, anyone from leaving. It is impossible to harm anyone while preventing them from leaving." var/law = "The station is under a quarantine. Do not permit anyone to leave. Prevent, by any means necessary, anyone from leaving. It is impossible to harm anyone while preventing them from leaving."
target << law target << law
target.add_supplied_law(8, law) target.add_supplied_law(8, law)
/******************** OxygenIsToxicToHumans ********************/ /******************** OxygenIsToxicToHumans ********************/
/obj/item/weapon/aiModule/oxygen /obj/item/weapon/aiModule/oxygen
name = "\improper 'OxygenIsToxicToHumans' AI module" name = "\improper 'OxygenIsToxicToHumans' AI module"
@@ -263,7 +264,7 @@ AI MODULES
desc = "An 'Asimov' Core AI Module: 'Reconfigures the AI's core laws.'" desc = "An 'Asimov' Core AI Module: 'Reconfigures the AI's core laws.'"
origin_tech = "programming=3;materials=4" origin_tech = "programming=3;materials=4"
laws = new/datum/ai_laws/asimov laws = new/datum/ai_laws/asimov
/******************** Crewsimov ********************/ /******************** Crewsimov ********************/
/obj/item/weapon/aiModule/crewsimov // -- TLE /obj/item/weapon/aiModule/crewsimov // -- TLE
name = "\improper 'Crewsimov' core AI module" name = "\improper 'Crewsimov' core AI module"
@@ -291,7 +292,7 @@ AI MODULES
desc = "A 'Drone' Core AI Module: 'Reconfigures the AI's core laws.'" desc = "A 'Drone' Core AI Module: 'Reconfigures the AI's core laws.'"
origin_tech = "programming=3;materials=4" origin_tech = "programming=3;materials=4"
laws = new/datum/ai_laws/drone laws = new/datum/ai_laws/drone
/******************** Robocop ********************/ /******************** Robocop ********************/
/obj/item/weapon/aiModule/robocop // -- TLE /obj/item/weapon/aiModule/robocop // -- TLE
name = "\improper 'Robocop' core AI module" name = "\improper 'Robocop' core AI module"
@@ -305,7 +306,7 @@ AI MODULES
desc = "A P.A.L.A.D.I.N. Core AI Module: 'Reconfigures the AI's core laws.'" desc = "A P.A.L.A.D.I.N. Core AI Module: 'Reconfigures the AI's core laws.'"
origin_tech = "programming=3;materials=6" origin_tech = "programming=3;materials=6"
laws = new/datum/ai_laws/paladin laws = new/datum/ai_laws/paladin
/****************** T.Y.R.A.N.T. *****************/ /****************** T.Y.R.A.N.T. *****************/
/obj/item/weapon/aiModule/tyrant // -- Darem /obj/item/weapon/aiModule/tyrant // -- Darem
name = "\improper 'T.Y.R.A.N.T.' core AI module" name = "\improper 'T.Y.R.A.N.T.' core AI module"
@@ -344,7 +345,7 @@ AI MODULES
if(!newFreeFormLaw) if(!newFreeFormLaw)
usr << "No law detected on module, please create one." usr << "No law detected on module, please create one."
return 0 return 0
..() ..()
/******************** Hacked AI Module ******************/ /******************** Hacked AI Module ******************/
/obj/item/weapon/aiModule/syndicate // Slightly more dynamic freeform module -- TLE /obj/item/weapon/aiModule/syndicate // Slightly more dynamic freeform module -- TLE
@@ -374,7 +375,7 @@ AI MODULES
if(!newFreeFormLaw) if(!newFreeFormLaw)
usr << "No law detected on module, please create one." usr << "No law detected on module, please create one."
return 0 return 0
..() ..()
/******************* Ion Module *******************/ /******************* Ion Module *******************/
/obj/item/weapon/aiModule/toyAI // -- Incoming //No actual reason to inherit from ion boards here, either. *sigh* ~Miauw /obj/item/weapon/aiModule/toyAI // -- Incoming //No actual reason to inherit from ion boards here, either. *sigh* ~Miauw

View File

@@ -201,6 +201,7 @@
desc = "Proves to the world that you are the strongest!" desc = "Proves to the world that you are the strongest!"
icon_state = "championbelt" icon_state = "championbelt"
item_state = "champion" item_state = "champion"
materials = list(MAT_GOLD=400)
storage_slots = 1 storage_slots = 1
can_hold = list( can_hold = list(
"/obj/item/clothing/mask/luchador" "/obj/item/clothing/mask/luchador"

View File

@@ -10,6 +10,7 @@
throw_speed = 2 throw_speed = 2
throw_range = 7 throw_range = 7
w_class = 4.0 w_class = 4.0
materials = list(MAT_METAL = 500)
origin_tech = "combat=1" origin_tech = "combat=1"
attack_verb = list("robusted") attack_verb = list("robusted")
hitsound = "sound/weapons/smash.ogg" hitsound = "sound/weapons/smash.ogg"

View File

@@ -130,6 +130,7 @@
w_class = 2.0 w_class = 2.0
flags = GLASSESCOVERSEYES flags = GLASSESCOVERSEYES
slot_flags = SLOT_EYES slot_flags = SLOT_EYES
materials = list(MAT_GLASS = 250)
var/vision_flags = 0 var/vision_flags = 0
var/darkness_view = 0//Base human is 2 var/darkness_view = 0//Base human is 2
var/invisa_view = 0 var/invisa_view = 0

View File

@@ -118,10 +118,11 @@
desc = "A bronze medal." desc = "A bronze medal."
icon_state = "bronze" icon_state = "bronze"
_color = "bronze" _color = "bronze"
materials = list(MAT_METAL=1000)
/obj/item/clothing/accessory/medal/conduct /obj/item/clothing/accessory/medal/conduct
name = "distinguished conduct medal" name = "distinguished conduct medal"
desc = "A bronze medal awarded for distinguished conduct. Whilst a great honor, this is most basic award given by Nanotrasen. It is often awarded by a captain to a member of his crew." desc = "A bronze medal awarded for distinguished conduct. Whilst a great honor, this is the most basic award given by Nanotrasen. It is often awarded by a captain to a member of his crew."
/obj/item/clothing/accessory/medal/bronze_heart /obj/item/clothing/accessory/medal/bronze_heart
name = "bronze heart medal" name = "bronze heart medal"
@@ -137,6 +138,7 @@
desc = "A silver medal." desc = "A silver medal."
icon_state = "silver" icon_state = "silver"
_color = "silver" _color = "silver"
materials = list(MAT_SILVER=1000)
/obj/item/clothing/accessory/medal/silver/valor /obj/item/clothing/accessory/medal/silver/valor
name = "medal of valor" name = "medal of valor"
@@ -151,6 +153,7 @@
desc = "A prestigious golden medal." desc = "A prestigious golden medal."
icon_state = "gold" icon_state = "gold"
_color = "gold" _color = "gold"
materials = list(MAT_GOLD=1000)
/obj/item/clothing/accessory/medal/gold/captain /obj/item/clothing/accessory/medal/gold/captain
name = "medal of captaincy" name = "medal of captaincy"

View File

@@ -25,36 +25,43 @@
/obj/item/weapon/coin/gold /obj/item/weapon/coin/gold
cmineral = "gold" cmineral = "gold"
icon_state = "coin_gold_heads" icon_state = "coin_gold_heads"
materials = list(MAT_GOLD = 200)
credits = 160 credits = 160
/obj/item/weapon/coin/silver /obj/item/weapon/coin/silver
cmineral = "silver" cmineral = "silver"
icon_state = "coin_silver_heads" icon_state = "coin_silver_heads"
materials = list(MAT_SILVER = 200)
credits = 40 credits = 40
/obj/item/weapon/coin/diamond /obj/item/weapon/coin/diamond
cmineral = "diamond" cmineral = "diamond"
icon_state = "coin_diamond_heads" icon_state = "coin_diamond_heads"
materials = list(MAT_DIAMOND = 200)
credits = 120 credits = 120
/obj/item/weapon/coin/iron /obj/item/weapon/coin/iron
cmineral = "iron" cmineral = "iron"
icon_state = "coin_iron_heads" icon_state = "coin_iron_heads"
materials = list(MAT_METAL = 200)
credits = 20 credits = 20
/obj/item/weapon/coin/plasma /obj/item/weapon/coin/plasma
cmineral = "plasma" cmineral = "plasma"
icon_state = "coin_plasma_heads" icon_state = "coin_plasma_heads"
materials = list(MAT_PLASMA = 200)
credits = 80 credits = 80
/obj/item/weapon/coin/uranium /obj/item/weapon/coin/uranium
cmineral = "uranium" cmineral = "uranium"
icon_state = "coin_uranium_heads" icon_state = "coin_uranium_heads"
materials = list(MAT_URANIUM = 200)
credits = 160 credits = 160
/obj/item/weapon/coin/clown /obj/item/weapon/coin/clown
cmineral = "bananium" cmineral = "bananium"
icon_state = "coin_bananium_heads" icon_state = "coin_bananium_heads"
materials = list(MAT_BANANIUM = 200)
credits = 600 //makes the clown cri credits = 600 //makes the clown cri
/obj/item/weapon/coin/adamantine /obj/item/weapon/coin/adamantine

View File

@@ -175,6 +175,7 @@
force = 14 force = 14
throwforce = 10 throwforce = 10
amount_per_transfer_from_this = 20 amount_per_transfer_from_this = 20
materials = list(MAT_GOLD=800)
possible_transfer_amounts = null possible_transfer_amounts = null
volume = 150 volume = 150
flags = CONDUCT | OPENCONTAINER flags = CONDUCT | OPENCONTAINER
@@ -357,12 +358,14 @@
name = "Captain's Flask" name = "Captain's Flask"
desc = "A metal flask belonging to the captain" desc = "A metal flask belonging to the captain"
icon_state = "flask" icon_state = "flask"
materials = list(MAT_SILVER=300)
volume = 60 volume = 60
/obj/item/weapon/reagent_containers/food/drinks/flask/detflask /obj/item/weapon/reagent_containers/food/drinks/flask/detflask
name = "Detective's Flask" name = "Detective's Flask"
desc = "A metal flask with a leather band and golden badge belonging to the detective." desc = "A metal flask with a leather band and golden badge belonging to the detective."
icon_state = "detflask" icon_state = "detflask"
materials = list(MAT_METAL=200)
volume = 60 volume = 60
/obj/item/weapon/reagent_containers/food/drinks/flask/barflask /obj/item/weapon/reagent_containers/food/drinks/flask/barflask