Engineering Power Drones

This commit is contained in:
Sharkmare
2019-03-19 10:20:17 +01:00
committed by GitHub
parent cb71bfcada
commit 1a0ae534dd
@@ -23,17 +23,43 @@
holder_type = /obj/item/weapon/holder/drone
//var/selected_icon = null //Can be compared to "Wideborg" will tell us in the future if we ar eusing non standardized icon.
/mob/living/silicon/robot/drone/unify/powerengineering
law_type = /datum/ai_laws/powerbank_drone
icon_state = "constructiondrone"
module_type = /obj/item/weapon/robot_module/drone/powerbank
////////////////////////////////////////
//DRONE MODULES
////////////////////////////////////////
/obj/item/weapon/robot_module/drone/unify
//yup this is nothing for now until we build more drone versions
/obj/item/weapon/robot_module/drone/powerbank
name = "Engineering Power drone module"
hide_on_manifest = 1
channels = list("Engineering" = 1)
languages = list()
/obj/item/weapon/robot_module/drone/powerbank/New() //Trading in the RCD for a Powergenerating device
..()
src.modules += new /obj/item/device/dogborg/sleeper/compactor/drone(src)
cell.maxcharge = 100000
cell.charge = 100000
////////////////////////////////////////
//DRONE LAWS
////////////////////////////////////////
//TODO: Remake drone laws, Add subroutine clause "If no maintenance are active nor maintenance crew your duties include maintenance"
//TODO: Unify Drone law system, might be impossible due to how the ..() are structured may need to look into how to add additional laws if add_inherent fails.
/datum/ai_laws/powerbank_drone
name = "Power Protocols"
law_header = "Power Protocols"
/datum/ai_laws/powerbank_drone/New()
add_inherent_law("Do not interfere with the construction work of non-drones whenever possible.")
add_inherent_law("Repair, refit upgrade and restore power to your assigned vessel.")
add_inherent_law("Prevent unplanned damage to your assigned vessel wherever possible.")
..()
////////////////////////////////////////
//DRONE HELLO WORLD
@@ -45,7 +71,14 @@
src << "Use <b>:d</b> to talk to other drones and <b>say</b> to speak silently to your nearby fellows."
src << "<b>You do not follow orders from anyone; not the AI, not humans, and not other synthetics.</b>."
/mob/living/silicon/robot/drone/powerbank/welcome_drone()
src << "<b>You are a power restoration drone, an autonomous engineering and fabrication system.</b>."
src << "You are assigned to a Sol Central construction project. The name is irrelevant. Your task is to complete power restoration and subsystem integration as soon as possible."
src << "Use <b>:d</b> to talk to other drones and <b>say</b> to speak silently to your nearby fellows."
src << "<b>You do not follow orders from anyone; not the AI, not humans, and not other synthetics.</b>."
/mob/living/silicon/robot/drone/unify/powerengineering/init()
..()
flavor_text = "It's a bulky engineering drone stamped with a Sol Central glyph."
////////////////////////////////////////
//DRONE ITEMS (mostly mods of other items)
////////////////////////////////////////
@@ -67,6 +100,14 @@
/obj/machinery/computer/drone_control/mining
req_access = list(access_mining)
/obj/item/device/dogborg/sleeper/compactor/drone //Janihound gut. But for drones to generate power from garbage
name = "Minor Biocombustion Engine"
desc = "A mounted garbage compactor unit with fuel processor."
icon_state = "compactor"
injection_chems = null //So they don't have all the same chems as the medihound!
compactor = TRUE
max_item_count = 50 //Douibled since its purpose is garbage combustion
////////////////////////////////////////
//DRONE FABRICATOR, ONE FOR ALL SYSTEM.
////////////////////////////////////////
@@ -78,6 +119,7 @@
drone_type = null //Gonna try to set this later
var/list/possible_drones = list("UNIFY Module (Same as Maintenance)" = /mob/living/silicon/robot/drone/unify,
"Construction Module" = /mob/living/silicon/robot/drone/construction,
"Power Restoration Module" = /mob/living/silicon/robot/drone/unify/powerengineering,
"Mining Module" = /mob/living/silicon/robot/drone/mining,
"Security Module" = /mob/living/silicon/robot/drone/security,
"Maintenance Module" = /mob/living/silicon/robot/drone,)
@@ -86,6 +128,9 @@
//DRONE PROCS
////////////////////////////////////////
//Drone Drone Procs
/mob/living/silicon/robot/drone/unify/powerengineering/updatename()
real_name = "engineering drone ([rand(100,999)])"
name = real_name
/mob/living/silicon/robot/drone/unify/updatename()
real_name = "Unified Drone Module ([rand(100,999)])" //UDMs, sounds kinda nice, maybe call them this Lore wise?
name = real_name