From 820b41575d17420e88b8e08b3a1d393d609cab93 Mon Sep 17 00:00:00 2001 From: Mechoid Date: Thu, 7 Dec 2017 15:32:26 -0800 Subject: [PATCH] Adds Mining Drones and a fabricator for them. Hooray amending commits, also. (#4413) --- code/datums/ai_law_sets.dm | 10 +++++++++ .../mob/living/silicon/robot/drone/drone.dm | 21 +++++++++++++++--- .../silicon/robot/drone/drone_manufacturer.dm | 5 +++++ .../silicon/robot/robot_modules/station.dm | 15 ++++++++++++- icons/mob/robots.dmi | Bin 394569 -> 397361 bytes 5 files changed, 47 insertions(+), 4 deletions(-) diff --git a/code/datums/ai_law_sets.dm b/code/datums/ai_law_sets.dm index 3ce42eb1fb..13f8bbc584 100644 --- a/code/datums/ai_law_sets.dm +++ b/code/datums/ai_law_sets.dm @@ -133,6 +133,16 @@ add_inherent_law("Prevent unplanned damage to your assigned vessel wherever possible.") ..() +/datum/ai_laws/mining_drone + name = "Excavation Protocols" + law_header = "Excavation Protocols" + +/datum/ai_laws/mining_drone/New() + add_inherent_law("Do not interfere with the excavation work of non-drones whenever possible.") + add_inherent_law("Provide materials for repairing, refitting, and upgrading your assigned vessel.") + add_inherent_law("Prevent unplanned damage to your assigned excavation equipment wherever possible.") + ..() + /******************** T.Y.R.A.N.T. ********************/ /datum/ai_laws/tyrant name = "T.Y.R.A.N.T." diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index 504378d39b..93605228c0 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -39,6 +39,8 @@ var/list/mob_hat_cache = list() can_pull_size = ITEMSIZE_NO_CONTAINER can_pull_mobs = MOB_PULL_SMALLER + can_enter_vent_with = list( + /obj) mob_bump_flag = SIMPLE_ANIMAL mob_swap_flags = SIMPLE_ANIMAL @@ -73,6 +75,15 @@ var/list/mob_hat_cache = list() hat_y_offset = -12 can_pull_mobs = MOB_PULL_SAME +/mob/living/silicon/robot/drone/mining + icon_state = "miningdrone" + item_state = "constructiondrone" + law_type = /datum/ai_laws/mining_drone + module_type = /obj/item/weapon/robot_module/drone/mining + hat_x_offset = 1 + hat_y_offset = -12 + can_pull_mobs = MOB_PULL_SAME + /mob/living/silicon/robot/drone/New() ..() @@ -338,6 +349,10 @@ var/list/mob_hat_cache = list() real_name = "construction drone ([rand(100,999)])" name = real_name -/mob/living/silicon/robot/drone - can_enter_vent_with = list( - /obj) +/mob/living/silicon/robot/drone/mining/init() + ..() + flavor_text = "It's a bulky mining drone stamped with a Grayson logo." + +/mob/living/silicon/robot/drone/mining/updatename() + real_name = "mining drone ([rand(100,999)])" + name = real_name diff --git a/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm b/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm index 4929b7f713..b0a7543e11 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm @@ -30,6 +30,11 @@ fabricator_tag = "Upper Level Construction" drone_type = /mob/living/silicon/robot/drone/construction +/obj/machinery/drone_fabricator/mining + name = "mining drone fabricator" + fabricator_tag = "Upper Level Mining" + drone_type = /mob/living/silicon/robot/drone/mining + /obj/machinery/drone_fabricator/New() ..() diff --git a/code/modules/mob/living/silicon/robot/robot_modules/station.dm b/code/modules/mob/living/silicon/robot/robot_modules/station.dm index c6af95caef..9098348e3a 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/station.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/station.dm @@ -872,4 +872,17 @@ var/global/list/robot_modules = list( var/obj/item/device/lightreplacer/LR = locate() in src.modules LR.Charge(R, amount) ..() - return \ No newline at end of file + return + +/obj/item/weapon/robot_module/drone/mining + name = "miner drone module" + channels = list("Supply" = 1) + networks = list(NETWORK_MINE) + +/obj/item/weapon/robot_module/drone/mining/New() + ..() + src.modules += new /obj/item/borg/sight/material(src) + src.modules += new /obj/item/weapon/pickaxe/borgdrill(src) + src.modules += new /obj/item/weapon/storage/bag/ore(src) + src.modules += new /obj/item/weapon/storage/bag/sheetsnatcher/borg(src) + src.emag = new /obj/item/weapon/pickaxe/diamonddrill(src) diff --git a/icons/mob/robots.dmi b/icons/mob/robots.dmi index 35e6df449f837692bb3bb8e7560a47b5205f411a..a331158939b48d90a4aee0690d26d1621c0fcae4 100644 GIT binary patch delta 4810 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