TG update: Added the (almost finished) displacer. One minor bug with it to work out, does not actually spawn anywhere though so it shouldn't effect anything. Will try to finish it later tonight.

This commit is contained in:
Albert Iordache
2011-12-26 20:30:45 +02:00
parent f38a590009
commit 1fac967212
4 changed files with 53 additions and 3 deletions
+31
View File
@@ -51,6 +51,37 @@
return
/obj/item/weapon/cloaking_device/emp_act(severity)
active = 0
icon_state = "shield0"
..()
/obj/item/weapon/displacer
name = "displacer field"
desc = "Projects a specialized energy field designed to teleport the user out of harms way."
icon = 'device.dmi'
icon_state = "shield0"
var/active = 0.0
flags = FPRINT | TABLEPASS| CONDUCT| ONBELT
item_state = "electronic"
throwforce = 10.0
throw_speed = 2
throw_range = 10
w_class = 4.0
origin_tech = "magnets=3;bluespace=4"
/obj/item/weapon/displacer/attack_self(mob/user as mob)
src.active = !( src.active )
if (src.active)
user << "\blue The displacer field is now active."
src.icon_state = "shield1"
else
user << "\blue The displacer field is now inactive."
src.icon_state = "shield0"
src.add_fingerprint(user)
return
/obj/item/weapon/displacer/emp_act(severity)
active = 0
icon_state = "shield0"
..()
-2
View File
@@ -340,8 +340,6 @@ mob/proc/flash_weak_pain()
/obj/item/proc/IsShield()
return 0
/obj/item/proc/eyestab(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
var/mob/living/carbon/human/H = M
@@ -1094,6 +1094,10 @@
if (S.active)
shielded = 2
break
for (var/obj/item/weapon/displacer/D in src)
if (D.active)
shielded = 4
break
if(istype(wear_suit, /obj/item/clothing/suit/space/space_ninja)&&wear_suit:s_active)
shielded = 3
@@ -1113,6 +1117,8 @@
NinjaStealthActive(loc)
else
NinjaStealthMalf()
if(4)
overlays += image("icon" = 'effects.dmi', "icon_state" = "shield-old", "layer" = MOB_LAYER+1)
else
invisibility = 0
@@ -57,9 +57,24 @@ emp_act
if(I.IsShield() && (prob(50 - round(damage / 3))))
visible_message("\red <B>[src] blocks [attack_text] with the [r_hand.name]!</B>")
return 1
if(slot_belt && istype(slot_belt, /obj/item/weapon/displacer))
var/obj/item/weapon/displacer/D = slot_belt
if(D.active && (prob(50)))
visible_message("\red <B>The displacer field flings [src] out of the way of [attack_text]!</B>")
var/list/turfs = new/list()
for(var/turf/T in orange(6))
if(istype(T,/turf/space)) continue
if(T.density) continue
if(T.x>world.maxx-8 || T.x<8) continue
if(T.y>world.maxy-8 || T.y<8) continue
turfs += T
if(!turfs.len) turfs += pick(/turf in orange(6))
var/turf/picked = pick(turfs)
if(!isturf(picked)) return
src.loc = picked
return 1
return 0
/mob/living/carbon/human/emp_act(severity)
for(var/obj/O in src)
if(!O) continue