From af6f8c04a6ca737bbc3466ea79b90d14c3bf8daa Mon Sep 17 00:00:00 2001 From: KorPhaeron Date: Thu, 17 Dec 2015 01:57:08 -0600 Subject: [PATCH] Admin items --- code/game/objects/items/weapons/twohanded.dm | 25 +++++++++++++++++++ code/modules/clothing/suits/armor.dm | 21 ++++++++++------ .../living/simple_animal/hostile/illusion.dm | 21 ++++++++++++++-- 3 files changed, 58 insertions(+), 9 deletions(-) diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm index 054dcf76376..84d723bef07 100644 --- a/code/game/objects/items/weapons/twohanded.dm +++ b/code/game/objects/items/weapons/twohanded.dm @@ -411,3 +411,28 @@ if(src == user.get_active_hand()) //update inhands user.update_inv_l_hand() user.update_inv_r_hand() + + +//GREY TIDE +/obj/item/weapon/twohanded/spear/grey_tide + icon_state = "spearglass0" + name = "\improper Grey Tide" + desc = "Recovered from the aftermath of a revolt aboard Defense Outpost Theta Aegis, in which a seemingly endless tide of Assistants caused heavy casualities among Nanotrasen military forces." + force_unwielded = 15 + force_wielded = 25 + throwforce = 20 + throw_speed = 4 + attack_verb = list("gored") + var/list/spear_owners = list() +/obj/item/weapon/twohanded/spear/grey_tide/afterattack(atom/movable/AM, mob/living/user, proximity) + ..() + if(!(user in spear_owners)) + user.faction += "greytide([rand(1, 1000)])" + spear_owners += user + if(istype(AM, /mob/living)) + var/mob/living/L = AM + if(!L.stat && prob(50)) + var/mob/living/simple_animal/hostile/illusion/M = new(user.loc) + M.faction = user.faction + M.Copy_Parent(user, 100, user.health/2.5, 12, 30) + M.GiveTarget(L) diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index c7f42350d07..40d77f12752 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -200,10 +200,6 @@ return 0 - - - - /obj/item/clothing/suit/armor/reactive/stealth name = "reactive stealth armor" @@ -221,10 +217,21 @@ owner.alpha = initial(owner.alpha) return 1 +/obj/item/clothing/suit/armor/reactive/tesla + name = "reactive tesla armor" - - - +/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)) + 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) + continue + owner.Beam(M,icon_state="purple_lightning",icon='icons/effects/effects.dmi',time=5) + M.adjustFireLoss(25) + playsound(M, 'sound/machines/defib_zap.ogg', 50, 1, -1) + return 1 //All of the armor below is mostly unused diff --git a/code/modules/mob/living/simple_animal/hostile/illusion.dm b/code/modules/mob/living/simple_animal/hostile/illusion.dm index 7518f55e1da..b070b0ba4f2 100644 --- a/code/modules/mob/living/simple_animal/hostile/illusion.dm +++ b/code/modules/mob/living/simple_animal/hostile/illusion.dm @@ -8,12 +8,14 @@ melee_damage_lower = 5 melee_damage_upper = 5 a_intent = "harm" + attacktext = "gores" maxHealth = 100 health = 100 speed = 0 faction = list("illusion") var/life_span = INFINITY //how long until they despawn var/mob/living/parent_mob + var/multiply_chance = 0 //if we multiply on hit /mob/living/simple_animal/hostile/illusion/Life() @@ -22,11 +24,15 @@ death() -/mob/living/simple_animal/hostile/illusion/proc/Copy_Parent(mob/living/original, life = 50) +/mob/living/simple_animal/hostile/illusion/proc/Copy_Parent(mob/living/original, life = 50, health = 100, damage = 0, replicate = 0 ) appearance = original.appearance parent_mob = original dir = original.dir - life_span = world.time+life //5 seconds + life_span = world.time+life + melee_damage_lower = damage + melee_damage_upper = damage + multiply_chance = replicate + faction -= "neutral" /mob/living/simple_animal/hostile/illusion/death() @@ -42,6 +48,17 @@ return ..() +/mob/living/simple_animal/hostile/illusion/AttackingTarget() + ..() + if(istype(target, /mob/living) && prob(multiply_chance)) + var/mob/living/L = target + if(L.stat == DEAD) + return + var/mob/living/simple_animal/hostile/illusion/M = new(loc) + M.faction = faction + M.Copy_Parent(parent_mob, life_span, health/2, melee_damage_upper, multiply_chance/2) + M.GiveTarget(L) + ///////Actual Types///////// /mob/living/simple_animal/hostile/illusion/escape