From 589239f3cd75b0d4b1ddc33c12b22b19a1ccf641 Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Fri, 20 Nov 2015 19:04:49 -0500 Subject: [PATCH] Make combat borg shield only need inv to be active --- code/game/objects/items/devices/flash.dm | 2 +- .../modules/mob/living/silicon/robot/robot.dm | 21 ++++++++++++++++++- .../mob/living/silicon/robot/robot_damage.dm | 20 ++++++++++++++---- 3 files changed, 37 insertions(+), 6 deletions(-) diff --git a/code/game/objects/items/devices/flash.dm b/code/game/objects/items/devices/flash.dm index b57b4361558..063ffefbe78 100644 --- a/code/game/objects/items/devices/flash.dm +++ b/code/game/objects/items/devices/flash.dm @@ -110,7 +110,7 @@ else if(issilicon(M)) var/mob/living/silicon/robot/R = M - if(R.module_active && istype(R.module_active,/obj/item/borg/combat/shield)) + if(R,activated(/obj/item/borg/combat/shield)) add_logs(M, user, "flashed", object="[src.name]") user.visible_message("[user] tries to overloads [M]'s sensors with the [src.name], but if blocked by [M]'s shield!", "You try to overload [M]'s sensors with the [src.name], but are blocked by his shield!") return 1 diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index e3efa6b52b9..bf1222e76e1 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -1001,7 +1001,7 @@ var/list/robot_verbs_default = list( else overlays += "ov-openpanel -c" - if(module_active && istype(module_active,/obj/item/borg/combat/shield)) + if(activated(/obj/item/borg/combat/shield)) overlays += "[icon_state]-shield" if(modtype == "Combat") @@ -1430,3 +1430,22 @@ var/list/robot_verbs_default = list( choose_icon(6,module_sprites) radio.config(module.channels) notify_ai(2) + + +/mob/living/silicon/robot/peacekeeper/New() + ..() + var/module_sprites[0] //Used to store the associations between sprite names and sprite index. + module = new /obj/item/weapon/robot_module/combat(src) + module_sprites["Combat Android"] = "droidpeace" + //languages + module.add_languages(src) + //subsystems + module.add_subsystems(src) + + hands.icon_state = lowertext("Combat") + updatename() + + status_flags &= ~CANPUSH + + choose_icon(6,module_sprites) + notify_ai(2) \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/robot_damage.dm b/code/modules/mob/living/silicon/robot/robot_damage.dm index f01b7abbd7c..6fbef87e174 100644 --- a/code/modules/mob/living/silicon/robot/robot_damage.dm +++ b/code/modules/mob/living/silicon/robot/robot_damage.dm @@ -67,8 +67,14 @@ return //Combat shielding absorbs a percentage of damage directly into the cell. - if(module_active && istype(module_active,/obj/item/borg/combat/shield)) - var/obj/item/borg/combat/shield/shield = module_active + var/obj/item/borg/combat/shield/shield + if((module_state_1 && istype(module_state_1,/obj/item/borg/combat/shield)) + shield = module_state_1 + else if(module_state_2 && istype(module_state_2,/obj/item/borg/combat/shield)) + shield = module_state 2 + else if(module_state 3 && istype(module_state_3,/obj/item/borg/combat/shield)) + shield = module_state 3 + if(shield) //Shields absorb a certain percentage of damage based on their power setting. var/absorb_brute = brute*shield.shield_level var/absorb_burn = burn*shield.shield_level @@ -112,8 +118,14 @@ var/list/datum/robot_component/parts = get_damageable_components() //Combat shielding absorbs a percentage of damage directly into the cell. - if(module_active && istype(module_active,/obj/item/borg/combat/shield)) - var/obj/item/borg/combat/shield/shield = module_active + var/obj/item/borg/combat/shield/shield + if((module_state_1 && istype(module_state_1,/obj/item/borg/combat/shield)) + shield = module_state_1 + else if(module_state_2 && istype(module_state_2,/obj/item/borg/combat/shield)) + shield = module_state 2 + else if(module_state 3 && istype(module_state_3,/obj/item/borg/combat/shield)) + shield = module_state 3 + if(shield) //Shields absorb a certain percentage of damage based on their power setting. var/absorb_brute = brute*shield.shield_level var/absorb_burn = burn*shield.shield_level