mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2025-12-22 00:02:04 +00:00
upgradeable recycler
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user