From 1de9702e72e9e4e7c573181886183507a4e917fc Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Sun, 29 May 2016 18:35:06 -0700 Subject: [PATCH 1/6] embracedemmemes --- code/modules/clothing/suits/armor.dm | 73 ++++++++++++++++++++++++++-- 1 file changed, 68 insertions(+), 5 deletions(-) diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 228ba63a9c7..aa35e9111cf 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -146,7 +146,8 @@ name = "reactive armor" desc = "Doesn't seem to do much for some reason." var/active = 0 - var/reactivearmor_cooldown = 0//cooldown specific to reactive armor + var/reactivearmor_cooldown = 100 //cooldown specific to reactive armor + var/reactivearmor_semicd = 0 icon_state = "reactiveoff" item_state = "reactiveoff" blood_overlay_type = "armor" @@ -181,18 +182,22 @@ desc = "Someone seperated our Research Director from his own head!" var/tele_range = 6 var/rad_amount= 15 + var/nospace = 0 + reactivearmor_cooldown = 100 /obj/item/clothing/suit/armor/reactive/teleport/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance) if(!active) return 0 if(prob(hit_reaction_chance)) var/mob/living/carbon/human/H = owner - if(world.time < reactivearmor_cooldown) + if(world.time < reactivearmor_semicd) owner.visible_message("The reactive teleport system is still recharging! It fails to teleport [H]!") return owner.visible_message("The reactive teleport system flings [H] clear of [attack_text], shutting itself off in the process!") var/list/turfs = new/list() for(var/turf/T in orange(tele_range, H)) + if(istype(T,/turf/open/space)||nospace == 1) + continue if(T.density) continue if(T.x>world.maxx-tele_range || T.xThe reactive incendiary armor on [owner] is still recharging its flame emitters and fails to activate!") + return owner.visible_message("The [src] blocks the [attack_text], sending out jets of flame!") for(var/mob/living/carbon/C in range(6, owner)) if(C != owner) C.fire_stacks += 8 C.IgniteMob() owner.fire_stacks = -20 + reactivearmor_semicd = world.time + reactivearmor_cooldown return 1 return 0 /obj/item/clothing/suit/armor/reactive/stealth name = "reactive stealth armor" + desc = "An experimental suit of armor that renders the wearer invisible on detection of imminent harm. You can't fight who you can't see." /obj/item/clothing/suit/armor/reactive/stealth/hit_reaction(mob/living/carbon/human/owner, attack_text) if(!active) return 0 if(prob(hit_reaction_chance)) + if(world.time < reactivearmor_semicd) + owner.visible_message("The reactive stealth system on [owner] is still recharging its holographic emitters!") + return var/mob/living/simple_animal/hostile/illusion/escape/E = new(owner.loc) E.Copy_Parent(owner, 50) E.GiveTarget(owner) //so it starts running right away @@ -248,15 +261,23 @@ owner.visible_message("[owner] is hit by [attack_text] in the chest!") //We pretend to be hit, since blocking it would stop the message otherwise spawn(40) owner.alpha = initial(owner.alpha) + reactivearmor_semicd = world.time + reactivearmor_cooldown return 1 /obj/item/clothing/suit/armor/reactive/tesla name = "reactive tesla armor" + desc = "An experimental suit of armor with sensitive detectors hooked up to a huge capacitor grid, with emitters strutting out of it. Zap." /obj/item/clothing/suit/armor/reactive/tesla/hit_reaction(mob/living/carbon/human/owner, attack_text) if(!active) return 0 if(prob(hit_reaction_chance)) + if(world.time < reactivearmor_semicd) + var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread + sparks.set_up(1, 1, src) + sparks.start() + owner.visible_message("The tesla capacitors on [owner]'s reactive telsa armor are still recharging and the armor fails to activate and only sparks!") + return owner.visible_message("The [src] blocks the [attack_text], sending out arcs of lightning!") for(var/mob/living/M in view(6, owner)) if(M == owner) @@ -264,9 +285,51 @@ owner.Beam(M,icon_state="lightning[rand(1, 12)]",icon='icons/effects/effects.dmi',time=5) M.adjustFireLoss(25) playsound(M, 'sound/machines/defib_zap.ogg', 50, 1, -1) + reactivearmor_semicd = world.time + reactivearmor_cooldown return 1 -//All of the armor below is mostly unused +/obj/item/clothing/suit/armor/reactive/table + name = "reactive table armor" + desc = "If you can't beat the memes, embrace them." + var/tele_range = 10 + var/nospace = 1 + +/obj/item/clothing/suit/armor/reactive/table/hit_reaction(mob/living/carbon/human/owner, attack_text) + if(!active) + return 0 + if(prob(hit_reaction_chance)) + var/mob/living/carbon/human/H = owner + if(world.time < reactivearmor_semicd) + owner.visible_message("The reactive table memes are still on cooldown!") + return + owner.visible_message("The reactive teleport system flings [H] clear of [attack_text] and slams them into a freshly fabricated tables! The memes are dank!") + owner.Weaken(2) + var/list/turfs = new/list() + for(var/turf/T in orange(tele_range, H)) + if(istype(T,/turf/open/space)||nospace == 1) + continue + if(T.density) + continue + if(T.x>world.maxx-tele_range || T.xworld.maxy-tele_range || T.y Date: Sun, 29 May 2016 18:47:03 -0700 Subject: [PATCH 2/6] cooldownsandmemes --- code/modules/clothing/suits/armor.dm | 29 ++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index aa35e9111cf..4ab26b4fb69 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -146,8 +146,8 @@ name = "reactive armor" desc = "Doesn't seem to do much for some reason." var/active = 0 - var/reactivearmor_cooldown = 100 //cooldown specific to reactive armor - var/reactivearmor_semicd = 0 + var/reactivearmor_cooldown_duration = 100 //cooldown specific to reactive armor + var/reactivearmor_cooldown = 0 icon_state = "reactiveoff" item_state = "reactiveoff" blood_overlay_type = "armor" @@ -183,14 +183,14 @@ var/tele_range = 6 var/rad_amount= 15 var/nospace = 0 - reactivearmor_cooldown = 100 + reactivearmor_cooldown_duration = 100 /obj/item/clothing/suit/armor/reactive/teleport/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance) if(!active) return 0 if(prob(hit_reaction_chance)) var/mob/living/carbon/human/H = owner - if(world.time < reactivearmor_semicd) + if(world.time < reactivearmor_cooldown) owner.visible_message("The reactive teleport system is still recharging! It fails to teleport [H]!") return owner.visible_message("The reactive teleport system flings [H] clear of [attack_text], shutting itself off in the process!") @@ -212,13 +212,13 @@ return H.forceMove(picked) H.rad_act(rad_amount) - reactivearmor_semicd = world.time + reactivearmor_cooldown + reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration return 1 return 0 /obj/item/clothing/suit/armor/reactive/teleport/emp_act(severity) ..() - reactivearmor_cooldown = world.time + 200 + reactivearmor_cooldown_duration = world.time + 200 /obj/item/clothing/suit/armor/reactive/fire name = "reactive incendiary armor" @@ -228,7 +228,7 @@ if(!active) return 0 if(prob(hit_reaction_chance)) - if(world.time < reactivearmor_semicd) + if(world.time < reactivearmor_cooldown) owner.visible_message("The reactive incendiary armor on [owner] is still recharging its flame emitters and fails to activate!") return owner.visible_message("The [src] blocks the [attack_text], sending out jets of flame!") @@ -237,7 +237,7 @@ C.fire_stacks += 8 C.IgniteMob() owner.fire_stacks = -20 - reactivearmor_semicd = world.time + reactivearmor_cooldown + reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration return 1 return 0 @@ -250,7 +250,7 @@ if(!active) return 0 if(prob(hit_reaction_chance)) - if(world.time < reactivearmor_semicd) + if(world.time < reactivearmor_cooldown) owner.visible_message("The reactive stealth system on [owner] is still recharging its holographic emitters!") return var/mob/living/simple_animal/hostile/illusion/escape/E = new(owner.loc) @@ -261,7 +261,7 @@ owner.visible_message("[owner] is hit by [attack_text] in the chest!") //We pretend to be hit, since blocking it would stop the message otherwise spawn(40) owner.alpha = initial(owner.alpha) - reactivearmor_semicd = world.time + reactivearmor_cooldown + reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration return 1 /obj/item/clothing/suit/armor/reactive/tesla @@ -272,7 +272,7 @@ if(!active) return 0 if(prob(hit_reaction_chance)) - if(world.time < reactivearmor_semicd) + if(world.time < reactivearmor_cooldown) var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread sparks.set_up(1, 1, src) sparks.start() @@ -285,7 +285,7 @@ owner.Beam(M,icon_state="lightning[rand(1, 12)]",icon='icons/effects/effects.dmi',time=5) M.adjustFireLoss(25) playsound(M, 'sound/machines/defib_zap.ogg', 50, 1, -1) - reactivearmor_semicd = world.time + reactivearmor_cooldown + reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration return 1 /obj/item/clothing/suit/armor/reactive/table @@ -299,10 +299,11 @@ return 0 if(prob(hit_reaction_chance)) var/mob/living/carbon/human/H = owner - if(world.time < reactivearmor_semicd) + if(world.time < reactivearmor_cooldown) owner.visible_message("The reactive table memes are still on cooldown!") return owner.visible_message("The reactive teleport system flings [H] clear of [attack_text] and slams them into a freshly fabricated tables! The memes are dank!") + owner.visible_message("[H] GOES ON THE TABLE!!!") owner.Weaken(2) var/list/turfs = new/list() for(var/turf/T in orange(tele_range, H)) @@ -322,7 +323,7 @@ return H.forceMove(picked) new /obj/structure/table(get_turf(owner)) - reactivearmor_semicd = world.time + reactivearmor_cooldown + reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration return 1 return 0 From ddca68fd27ecf3f8d44e00412007d3de8aaf91c2 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Sun, 29 May 2016 18:47:21 -0700 Subject: [PATCH 3/6] * --- code/modules/clothing/suits/armor.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 4ab26b4fb69..2c40c0d1b0f 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -302,7 +302,7 @@ if(world.time < reactivearmor_cooldown) owner.visible_message("The reactive table memes are still on cooldown!") return - owner.visible_message("The reactive teleport system flings [H] clear of [attack_text] and slams them into a freshly fabricated tables! The memes are dank!") + owner.visible_message("The reactive teleport system flings [H] clear of [attack_text] and slams them into a freshly fabricated table! The memes are dank!") owner.visible_message("[H] GOES ON THE TABLE!!!") owner.Weaken(2) var/list/turfs = new/list() From f32a0e63a1ffdc90f893bba209bad020ba702813 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Sun, 29 May 2016 20:49:35 -0700 Subject: [PATCH 4/6] fix? --- code/modules/clothing/suits/armor.dm | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 2c40c0d1b0f..8747a39400e 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -182,7 +182,6 @@ desc = "Someone seperated our Research Director from his own head!" var/tele_range = 6 var/rad_amount= 15 - var/nospace = 0 reactivearmor_cooldown_duration = 100 /obj/item/clothing/suit/armor/reactive/teleport/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance) @@ -196,8 +195,6 @@ owner.visible_message("The reactive teleport system flings [H] clear of [attack_text], shutting itself off in the process!") var/list/turfs = new/list() for(var/turf/T in orange(tele_range, H)) - if(istype(T,/turf/open/space)||nospace == 1) - continue if(T.density) continue if(T.x>world.maxx-tele_range || T.xThe reactive incendiary armor on [owner] is still recharging its flame emitters and fails to activate!") + owner.visible_message("The reactive incendiary armor on [owner] activates, but fails to send out flames as it is still recharging its jets!") return owner.visible_message("The [src] blocks the [attack_text], sending out jets of flame!") for(var/mob/living/carbon/C in range(6, owner)) @@ -244,14 +241,14 @@ /obj/item/clothing/suit/armor/reactive/stealth name = "reactive stealth armor" - desc = "An experimental suit of armor that renders the wearer invisible on detection of imminent harm. You can't fight who you can't see." + desc = "An experimental suit of armor that renders the wearer invisible on detection of imminent harm. You can't fight what you can't see." /obj/item/clothing/suit/armor/reactive/stealth/hit_reaction(mob/living/carbon/human/owner, attack_text) if(!active) return 0 if(prob(hit_reaction_chance)) if(world.time < reactivearmor_cooldown) - owner.visible_message("The reactive stealth system on [owner] is still recharging its holographic emitters!") + owner.visible_message("The reactive stealth system on [owner] activates, but is still recharging its holographic emitters!") return var/mob/living/simple_animal/hostile/illusion/escape/E = new(owner.loc) E.Copy_Parent(owner, 50) @@ -276,7 +273,7 @@ var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread sparks.set_up(1, 1, src) sparks.start() - owner.visible_message("The tesla capacitors on [owner]'s reactive telsa armor are still recharging and the armor fails to activate and only sparks!") + owner.visible_message("The tesla capacitors on [owner]'s reactive telsa armor are still recharging! The armor merely emits some sparks.") return owner.visible_message("The [src] blocks the [attack_text], sending out arcs of lightning!") for(var/mob/living/M in view(6, owner)) @@ -292,7 +289,6 @@ name = "reactive table armor" desc = "If you can't beat the memes, embrace them." var/tele_range = 10 - var/nospace = 1 /obj/item/clothing/suit/armor/reactive/table/hit_reaction(mob/living/carbon/human/owner, attack_text) if(!active) @@ -307,8 +303,6 @@ owner.Weaken(2) var/list/turfs = new/list() for(var/turf/T in orange(tele_range, H)) - if(istype(T,/turf/open/space)||nospace == 1) - continue if(T.density) continue if(T.x>world.maxx-tele_range || T.x Date: Mon, 30 May 2016 15:26:02 -0700 Subject: [PATCH 5/6] "fix" --- code/modules/clothing/suits/armor.dm | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 8747a39400e..bed8b928350 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -146,7 +146,7 @@ name = "reactive armor" desc = "Doesn't seem to do much for some reason." var/active = 0 - var/reactivearmor_cooldown_duration = 100 //cooldown specific to reactive armor + var/reactivearmor_cooldown_duration = 0 //cooldown specific to reactive armor var/reactivearmor_cooldown = 0 icon_state = "reactiveoff" item_state = "reactiveoff" @@ -174,6 +174,7 @@ active = 0 src.icon_state = "reactiveoff" src.item_state = "reactiveoff" + reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration ..() //When the wearer gets hit, this armor will teleport the user a short distance away (to safety or to more danger, no one knows. That's the fun of it!) @@ -213,10 +214,6 @@ return 1 return 0 -/obj/item/clothing/suit/armor/reactive/teleport/emp_act(severity) - ..() - reactivearmor_cooldown_duration = world.time + 200 - /obj/item/clothing/suit/armor/reactive/fire name = "reactive incendiary armor" desc = "An experimental suit of armor with a reactive sensor array rigged to a flame emitter. For the stylish pyromaniac." @@ -226,7 +223,7 @@ return 0 if(prob(hit_reaction_chance)) if(world.time < reactivearmor_cooldown) - owner.visible_message("The reactive incendiary armor on [owner] activates, but fails to send out flames as it is still recharging its jets!") + owner.visible_message("The reactive incendiary armor on [owner] activates, but fails to send out flames as it is still recharging its flame jets!") return owner.visible_message("The [src] blocks the [attack_text], sending out jets of flame!") for(var/mob/living/carbon/C in range(6, owner)) @@ -241,7 +238,7 @@ /obj/item/clothing/suit/armor/reactive/stealth name = "reactive stealth armor" - desc = "An experimental suit of armor that renders the wearer invisible on detection of imminent harm. You can't fight what you can't see." + desc = "An experimental suit of armor that renders the wearer invisible on detection of imminent harm, and creates a decoy that runs away from the owner. You can't fight what you can't see." /obj/item/clothing/suit/armor/reactive/stealth/hit_reaction(mob/living/carbon/human/owner, attack_text) if(!active) @@ -296,9 +293,9 @@ if(prob(hit_reaction_chance)) var/mob/living/carbon/human/H = owner if(world.time < reactivearmor_cooldown) - owner.visible_message("The reactive table memes are still on cooldown!") + owner.visible_message("The reactive table armor's fabricators are still on cooldown!") return - owner.visible_message("The reactive teleport system flings [H] clear of [attack_text] and slams them into a freshly fabricated table! The memes are dank!") + owner.visible_message("The reactive teleport system flings [H] clear of [attack_text] and slams them into a fabricated table!") owner.visible_message("[H] GOES ON THE TABLE!!!") owner.Weaken(2) var/list/turfs = new/list() From b24e66196fd2d4bd8a21f06a9424268577b2ee8d Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Mon, 30 May 2016 17:32:44 -0700 Subject: [PATCH 6/6] . --- code/modules/clothing/suits/armor.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index bed8b928350..bbb755da22a 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -174,7 +174,7 @@ active = 0 src.icon_state = "reactiveoff" src.item_state = "reactiveoff" - reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration + reactivearmor_cooldown = world.time + 200 ..() //When the wearer gets hit, this armor will teleport the user a short distance away (to safety or to more danger, no one knows. That's the fun of it!)