TG: There's a metric assload of stuff here, mostly in preparation to my massive

traitor expansion, so I'll try to be brief:

- I added in the foundations for traitor factions. See factions.dm for all the
different faction datums. They don't do anything yet.

- I completely ported mob/var/mutations from a bitfield to a generic list.
Mutation enumerated-identifiers are added into this list. For instance, TK = 1,
COLD_RESISTANCE = 2, XRAY = 3, etc... The purpose of this was because bitwise
operations could not actually be used after a certain size (because BYOND is
stuck in the 16bit era).

- I've added in completely-functional nano-augmentations. Check under
implantnanoaug.dm for a list of implants and implaners. As mentioned previously,
they are completely functional but may be slightly OP. Among these nanoaugs are
Super Strength, Psionic Radar, Electric Hands, Energy Blade/Sword Synthesizer,
Rebreather, Dermal Armor, Combat Reflexes, and Regenerative Nanorobots. I won't
go into detail as to what they do, but hopefully they should be self-
explanitory. If not, check out their descriptions in the file previously
mentioned.

- Added in a future traitor item, the Mind Batterer. Along with it a new .ogg
file.

- New telecomms bus mainframe sprite, thanks to WJohnston.

- New holdable shield, sprites courtesy of Muncher (i had to mangle the side
sprites because of a technical little issue. I'll change it back to the original
soon). It can be retracted and expanded. Probably only going to be given to
traitors.

- A couple of minor bugfixes here and there, along with some code tidying.

Hope this isn't too large a commit. I intended it to be MUCH larger, but I've
decided to split up my Traitor Factions expansion into smaller commits.
Revision: r3692
Author: 	 vageyenaman
This commit is contained in:
Erthilo
2012-06-02 19:46:18 +01:00
parent f90ec4b414
commit 36effbacc2
100 changed files with 1455 additions and 483 deletions
+6 -3
View File
@@ -121,7 +121,7 @@ obj/item/verb/pick_up()
if(5.0)
t = "huge"
else
if ((usr.mutations & CLUMSY) && prob(50)) t = "funny-looking"
if ((CLUMSY in usr.mutations) && prob(50)) t = "funny-looking"
usr << text("This is a []\icon[][]. It is a [] item.", !src.blood_DNA ? "" : "bloody ",src, src.name, t)
if(src.desc)
usr << src.desc
@@ -302,6 +302,9 @@ mob/proc/flash_weak_pain()
// M.lastattacker = null
/////////////////////////
if((HULK in user.mutations) || (SUPRSTR in user.augmentations))
power *= 2
if(!istype(M, /mob/living/carbon/human))
if(istype(M, /mob/living/carbon/metroid))
var/mob/living/carbon/metroid/Metroid = M
@@ -410,7 +413,7 @@ mob/proc/flash_weak_pain()
if (istype(location, /turf/simulated))
location.add_blood_floor(M)
if("fire")
if (!(M.mutations & COLD_RESISTANCE))
if (!(COLD_RESISTANCE in M.mutations))
M.take_organ_damage(0, power)
M << "Aargh it burns!"
M.updatehealth()
@@ -454,7 +457,7 @@ mob/proc/flash_weak_pain()
log_attack("<font color='red'> [user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
src.add_fingerprint(user)
//if((user.mutations & CLUMSY) && prob(50))
//if((CLUMSY in user.mutations) && prob(50))
// M = user
/*
M << "\red You stab yourself in the eye."
+2 -2
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:05
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
/obj/item/tk_grab
name = "Telekinetic Grab"
@@ -48,7 +48,7 @@
if(!host)
del(src)
return
if(!host.mutations & TK)
if(!(TK in host.mutations))
del(src)
return
if(!focus)
@@ -23,7 +23,7 @@
/obj/item/weapon/dnainjector/proc/inject(mob/M as mob)
M.radiation += rand(20,50)
if (!(M.mutations2 & NOCLONE)) // prevents drained people from having their DNA changed
if (!(NOCLONE in M.mutations)) // prevents drained people from having their DNA changed
if (dnatype == "ui")
if (!block) //isolated block?
if (ue) //unique enzymes? yes
+3 -5
View File
@@ -1,5 +1,3 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:05
/*
CONTAINS:
EMP GRENADE
@@ -70,7 +68,7 @@ FLASHBANG
clown_check(var/mob/living/user)
if((user.mutations & CLUMSY) && prob(50))
if((CLUMSY in user.mutations) && prob(50))
user << "\red Huh? How does this thing work?!"
src.active = 1
src.icon_state = "empar"
@@ -177,7 +175,7 @@ FLASHBANG
if(ishuman(M))
if(istype(M:l_ear, /obj/item/clothing/ears/earmuffs) || istype(M:r_ear, /obj/item/clothing/ears/earmuffs))
ear_safety += 2
if(M.mutations & HULK)
if(HULK in M.mutations)
ear_safety += 1
if(istype(M:head, /obj/item/clothing/head/helmet))
ear_safety += 1
@@ -279,7 +277,7 @@ FLASHBANG
clown_check(var/mob/living/user)
if ((user.mutations & CLUMSY) && prob(50))
if ((CLUMSY in user.mutations) && prob(50))
user << "\red Huh? How does this thing work?!"
src.active = 1
src.icon_state = "flashbang1"
@@ -1,5 +1,3 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:05
/obj/item/weapon/implanter
name = "implanter"
icon = 'items.dmi'
@@ -9,104 +7,104 @@
throw_range = 5
w_class = 2.0
var/obj/item/weapon/implant/imp = null
proc
update()
/obj/item/weapon/implanter/proc/update()
update()
if (imp)
icon_state = "implanter1"
/obj/item/weapon/implanter/update()
if (imp)
icon_state = "implanter1"
else
icon_state = "implanter0"
return
/obj/item/weapon/implanter/attack(mob/M as mob, mob/user as mob)
if (!istype(M, /mob/living/carbon))
return
if (user && imp)
if (M != user)
user.visible_message("\red \The [user] tries to implant \the [M] with \the [src]!","\red You try to implant \the [M] with \the [src]!")
else
icon_state = "implanter0"
return
attack(mob/M as mob, mob/user as mob)
if (!istype(M, /mob/living/carbon))
user.visible_message("\red \The [user] tries to implant [user.get_gender_form("itself")] with \the [src]!","\red You try to implant yourself with \the [src]!")
if(!do_mob(user, M,60))
return
if (user && imp)
if (M != user)
user.visible_message("\red \The [user] tries to implant \the [M] with \the [src]!","\red You try to implant \the [M] with \the [src]!")
else
user.visible_message("\red \The [user] tries to implant [user.get_gender_form("itself")] with \the [src]!","\red You try to implant yourself with \the [src]!")
if(!do_mob(user, M,60))
if(hasorgans(M))
var/datum/organ/external/target = M:get_organ(check_zone(user.zone_sel.selecting))
if(target.destroyed)
user << "What [target.display_name]?"
return
if(hasorgans(M))
var/datum/organ/external/target = M:get_organ(check_zone(user.zone_sel.selecting))
if(target.destroyed)
user << "What [target.display_name]?"
return
target.implant += imp
imp.loc = target
if (M != user)
user.visible_message("\red \The [user] implants \the [M]'s [target.display_name] with \the [src]!","\red You implant \the [M]'s [target.display_name] with \the [src]!")
else
user.visible_message("\red \The [user] implants [user.get_gender_form("its")] own [target.display_name] with \the [src]!","\red You implant your [target.display_name] with \the [src]!")
M.attack_log += text("\[[time_stamp()]\] <font color='orange'> Implanted with [src] ([imp]) by [user] ([user.ckey])</font>")
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src] ([imp]) to implant [M] ([M.ckey])</font>")
log_admin("ATTACK: [user] ([user.ckey]) implanted [M] ([M.ckey]) with [src].")
message_admins("ATTACK: [user] ([user.ckey]) implanted [M] ([M.ckey]) with [src].")
log_attack("<font color='red'>[user.name] ([user.ckey]) implanted [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
imp.imp_in = M
imp.implanted = 1
imp.implanted(M)
imp = null
icon_state = "implanter0"
return
target.implant += imp
imp.loc = target
if (M != user)
user.visible_message("\red \The [user] implants \the [M]'s [target.display_name] with \the [src]!","\red You implant \the [M]'s [target.display_name] with \the [src]!")
else
user.visible_message("\red \The [user] implants [user.get_gender_form("its")] own [target.display_name] with \the [src]!","\red You implant your [target.display_name] with \the [src]!")
M.attack_log += text("\[[time_stamp()]\] <font color='orange'> Implanted with [src] ([imp]) by [user] ([user.ckey])</font>")
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src] ([imp]) to implant [M] ([M.ckey])</font>")
log_admin("ATTACK: [user] ([user.ckey]) implanted [M] ([M.ckey]) with [src].")
message_admins("ATTACK: [user] ([user.ckey]) implanted [M] ([M.ckey]) with [src].")
log_attack("<font color='red'>[user.name] ([user.ckey]) implanted [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
imp.imp_in = M
imp.implanted = 1
imp.implanted(M)
imp = null
icon_state = "implanter0"
return
/obj/item/weapon/implanter/loyalty
name = "implanter-loyalty"
New()
imp = new /obj/item/weapon/implant/loyalty( src )
..()
update()
return
/obj/item/weapon/implanter/loyalty/New()
imp = new /obj/item/weapon/implant/loyalty( src )
..()
update()
return
/obj/item/weapon/implanter/explosive
name = "implanter-explosive"
New()
imp = new /obj/item/weapon/implant/explosive( src )
..()
update()
return
/obj/item/weapon/implanter/explosive/New()
imp = new /obj/item/weapon/implant/explosive( src )
..()
update()
return
/obj/item/weapon/implanter/compressed
name = "implanter-compressed"
icon_state = "cimplanter0"
New()
imp = new /obj/item/weapon/implant/compressed( src )
..()
update()
return
/obj/item/weapon/implanter/compressed/New()
imp = new /obj/item/weapon/implant/compressed( src )
..()
update()
if (imp)
var/obj/item/weapon/implant/compressed/c = imp
if(!c.scanned)
icon_state = "cimplanter0"
else
icon_state = "cimplanter1"
else
icon_state = "cimplanter2"
return
return
attack(mob/M as mob, mob/user as mob)
/obj/item/weapon/implanter/compressed/update()
if (imp)
var/obj/item/weapon/implant/compressed/c = imp
if (c.scanned == null)
user << "Please scan an object with the implanter first."
return
..()
if(!c.scanned)
icon_state = "cimplanter0"
else
icon_state = "cimplanter1"
else
icon_state = "cimplanter2"
return
afterattack(atom/A, mob/user as mob)
if(istype(A,/obj/item))
var/obj/item/weapon/implant/compressed/c = imp
c.scanned = A
A.loc.contents.Remove(A)
update()
/obj/item/weapon/implanter/compressed/attack(mob/M as mob, mob/user as mob)
var/obj/item/weapon/implant/compressed/c = imp
if (c.scanned == null)
user << "Please scan an object with the implanter first."
return
..()
/obj/item/weapon/implanter/compressed/afterattack(atom/A, mob/user as mob)
if(istype(A,/obj/item))
var/obj/item/weapon/implant/compressed/c = imp
c.scanned = A
A.loc.contents.Remove(A)
update()
@@ -0,0 +1,179 @@
/obj/item/weapon/implant/nanoaug
name = "nanoaug"
desc = "A nano-robotic biological augmentation implant."
var/augmentation
var/augment_text = "You feel strange..."
var/activation_emote = "fart"
get_data()
var/dat = {"
<b>Implant Specifications:</b><BR>
<b>Name:</b> Cybersun Industries Nano-Robotic Biological Augmentation Suite<BR>
<b>Life:</b> Infinite. WARNING: Biological chances are irreversable.<BR>
<b>Important Notes:</b> <font color='red'>Illegal</font>. Subjects exposed to nanorobotic agent are considered dangerous.<BR>
<HR>
<b>Implant Details:</b><BR>
<b>Function:</b> Implant contains colony of pre-programmed nanorobots. Subject will experience radical changes in their body, amplifying and improving certain bodily characteristics.<BR>
<b>Special Features:</b> Will grant subject superhuman powers.<BR>
<b>Integrity:</b> Nanoaugmentation is permanent. Once the process is complete, the nanorobots disassemble and are dissolved by the blood stream."}
return dat
implanted(mob/M as mob)
if(!istype(M, /mob/living/carbon/human)) return
var/mob/living/carbon/human/H = M
H.augmentations.Add(augmentation) // give them the mutation
H << "\blue [augment_text]"
if(istype(src, /obj/item/weapon/implant/nanoaug/eswordsynth))
activation_emote = pick("blink", "blink_r", "eyebrow", "chuckle", "twitch_s", "frown", "nod", "blush", "giggle", "grin", "groan", "shrug", "smile", "pale", "sniff", "whimper", "wink")
H.mind.store_memory("Freedom nanoaugmentation can be activated by using the [src.activation_emote] emote, <B>say *[src.activation_emote]</B> to attempt to activate.", 0, 0)
H << "The nanoaugmentation implant can be activated by using the [src.activation_emote] emote, <B>say *[src.activation_emote]</B> to attempt to activate."
if(istype(src, /obj/item/weapon/implant/nanoaug/radar))
H << "<font color='#FF0000'>Red</font color> blips on the map are Security."
H << "White blips are civlians."
H << "<font color='#3E710B'>Monochrome Green</font color> blips are cyborgs and AIs."
H << "<font color='#238989'>Light blue</font color> blips are heads of staff."
H << "<font color='#663366'>Purple</font color> blips are unidentified organisms."
H << "Dead biologicals will not display on the radar."
spawn()
H.start_radar()
return
/obj/item/weapon/implant/nanoaug/strength
name = "Superhuman Strength"
augmentation = SUPRSTR
augment_text = "You muscle ache, and you feel a rapid surge of energy pulse through your body. You feel strong."
/obj/item/weapon/implant/nanoaug/radar
name = "Short-range Psionic Radar"
augmentation = RADAR
augment_text = "You begin to sense the presence or lack of presence of others around you."
/obj/item/weapon/implant/nanoaug/electrichands
name = "Electric Hands"
augmentation = ELECTRICHANDS
augment_text = "You feel a sudden jolt of electricity pulse through your veins. Arcs of electricity travel through your hands."
/obj/item/weapon/implant/nanoaug/eswordsynth
name = "Energy Blade Synthesizer"
augmentation = ESWORDSYNTH
augment_text = "Your hands throb and pulsate. They feel sharper, and strangely hot."
trigger(emote, source as mob)
if(emote == activation_emote)
src.activate(source)
return
activate(var/mob/source)
var/obj/item/weapon/melee/energy/blade/swordspawn = new /obj/item/weapon/melee/energy/blade
if(!source.get_active_hand())
source.put_in_hand(swordspawn)
var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
spark_system.set_up(5, 0, source.loc)
spark_system.start()
playsound(source.loc, "sparks", 50, 1)
..()
/obj/item/weapon/implant/nanoaug/rebreather
name = "Bioelectric Rebreather"
augmentation = REBREATHER
augment_text = "You begin to lose your breath. Just as you are about to pass out, you suddenly lose the urge to breath. Breathing is no longer a necessity for you."
/obj/item/weapon/implant/nanoaug/dermalarmor
name = "Skin-intergrated Dermal Armor"
augmentation = DERMALARMOR
augment_text = "The skin throughout your body grows tense and tight, and you become slightly stiff. Your bones and skin feel a lot stronger."
/obj/item/weapon/implant/nanoaug/reflexes
name = "Combat Reflexes"
augmentation = REFLEXES
augment_text = "Your mind suddenly is able to identify threats before you are aware of them. You become more aware of your surroundings."
/obj/item/weapon/implant/nanoaug/nanoregen
name = "Regenerative Nanobots"
augmentation = NANOREGEN
augment_text = "You feel a very faint vibration in your body. You instantly feel much younger."
/obj/item/weapon/implanter/nanoaug
name = "Nanoaugmentation Implanter (Empty)"
icon_state = "nanoimplant"
/obj/item/weapon/implanter/nanoaug/update()
if (src.imp)
src.icon_state = "nanoimplant"
else
src.icon_state = "nanoimplant0"
return
/obj/item/weapon/implanter/nanoaug/strength
name = "Nanoaugmentation Implaner (Superhuman Strength)"
/obj/item/weapon/implanter/nanoaug/strength/New()
src.imp = new /obj/item/weapon/implant/nanoaug/strength( src )
..()
update()
/obj/item/weapon/implanter/nanoaug/radar
name = "Nanoaugmentation Implaner (Short-range Psionic Radar)"
/obj/item/weapon/implanter/nanoaug/radar/New()
src.imp = new /obj/item/weapon/implant/nanoaug/radar( src )
..()
update()
/obj/item/weapon/implanter/nanoaug/electrichands
name = "Nanoaugmentation Implaner (Electric Hands)"
/obj/item/weapon/implanter/nanoaug/electrichands/New()
src.imp = new /obj/item/weapon/implant/nanoaug/electrichands( src )
..()
update()
/obj/item/weapon/implanter/nanoaug/eswordsynth
name = "Nanoaugmentation Implaner (Energy Blade Synthesizer)"
/obj/item/weapon/implanter/nanoaug/eswordsynth/New()
src.imp = new /obj/item/weapon/implant/nanoaug/eswordsynth( src )
..()
update()
/obj/item/weapon/implanter/nanoaug/rebreather
name = "Nanoaugmentation Implaner (Bioelectric Rebreather)"
/obj/item/weapon/implanter/nanoaug/rebreather/New()
src.imp = new /obj/item/weapon/implant/nanoaug/rebreather( src )
..()
update()
/obj/item/weapon/implanter/nanoaug/dermalarmor
name = "Nanoaugmentation Implaner (Skin-intergrated Dermal Armor)"
/obj/item/weapon/implanter/nanoaug/dermalarmor/New()
src.imp = new /obj/item/weapon/implant/nanoaug/dermalarmor( src )
..()
update()
/obj/item/weapon/implanter/nanoaug/reflexes
name = "Nanoaugmentation Implaner (Combat Reflexes)"
/obj/item/weapon/implanter/nanoaug/reflexes/New()
src.imp = new /obj/item/weapon/implant/nanoaug/reflexes( src )
..()
update()
/obj/item/weapon/implanter/nanoaug/nanoregen
name = "Nanoaugmentation Implaner (Regenerative Nanobots)"
/obj/item/weapon/implanter/nanoaug/nanoregen/New()
src.imp = new /obj/item/weapon/implant/nanoaug/nanoregen( src )
..()
update()
+4 -4
View File
@@ -35,7 +35,7 @@ KNIFE
del(bite)
src.icon_state = "fork"
else if(user.zone_sel.selecting == "eyes")
if((user.mutations & CLUMSY) && prob(50))
if((CLUMSY in user.mutations) && prob(50))
M = user
return eyestab(M, user)
else
@@ -90,7 +90,7 @@ KNIFE
// ROLLING PIN
/* //Honestly this doesn't even work and is very silly. -- Erthilo
/obj/item/weapon/kitchen/rollingpin/attack(mob/M as mob, mob/living/user as mob)
if ((user.mutations & CLUMSY) && prob(50))
if ((CLUMSY in user.mutations) && prob(50))
user << "\red The [src] slips out of your hand and hits your head."
user.take_organ_damage(10)
user.Paralyse(2)
@@ -130,7 +130,7 @@ KNIFE
// KNIFE
/obj/item/weapon/kitchen/utensil/knife/attack(target as mob, mob/living/user as mob)
if ((user.mutations & CLUMSY) && prob(50))
if ((CLUMSY in user.mutations) && prob(50))
user << "\red You accidentally cut yourself with the [src]."
user.take_organ_damage(20)
return
@@ -153,7 +153,7 @@ KNIFE
sleep(rand(2,4))
if((user.mutations & CLUMSY) && prob(50)) //What if he's a clown?
if((CLUMSY in user.mutations) && prob(50)) //What if he's a clown?
M << "\red You accidentally slam yourself with the [src]!"
M.Weaken(1)
user.take_organ_damage(2)
@@ -1082,9 +1082,9 @@ CIRCULAR SAW
if(!istype(M))
return ..()
//if(M.mutations & HUSK) return ..()
//if(NOCLONE in M.mutations) return ..()
if((user.mutations & CLUMSY) && prob(50))
if((CLUMSY in user.mutations) && prob(50))
M = user
return eyestab(M,user)
@@ -1488,12 +1488,11 @@ CIRCULAR SAW
////////////////
//CIRCULAR SAW//
////////////////
/obj/item/weapon/circular_saw/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
if(!istype(M))
return ..()
if((user.mutations & CLUMSY) && prob(50))
if((CLUMSY in user.mutations) && prob(50))
M = user
return eyestab(M,user)
@@ -1673,7 +1672,7 @@ CIRCULAR SAW
/obj/item/weapon/surgical_tool/attack(mob/living/carbon/human/M as mob, mob/living/carbon/user as mob)
if(!istype(M, /mob))
return
if((usr.mutations & 16) && prob(50))
if((CLUMSY in user.mutations) && prob(50))
M << "\red You stab yourself in the eye."
M.disabilities |= 128
M.weakened += 4
@@ -4,6 +4,7 @@ SWORD
BLADE
AXE
STUN BATON
ENERGY SHIELD (where else should i even put this)
*/
@@ -22,7 +23,7 @@ STUN BATON
color = pick("red","blue","green","purple")
/obj/item/weapon/melee/energy/sword/attack_self(mob/living/user as mob)
if ((user.mutations & CLUMSY) && prob(50))
if ((CLUMSY in user.mutations) && prob(50))
user << "\red You accidentally cut yourself with [src]."
user.take_organ_damage(5,5)
active = !active
@@ -104,7 +105,7 @@ STUN BATON
/obj/item/weapon/melee/baton/attack_self(mob/user as mob)
src.status = !( src.status )
if ((usr.mutations & CLUMSY) && prob(50))
if ((CLUMSY in user.mutations) && prob(50))
usr << "\red You grab the stunbaton on the wrong side."
usr.Paralyse(60)
return
@@ -120,7 +121,7 @@ STUN BATON
return
/obj/item/weapon/melee/baton/attack(mob/M as mob, mob/user as mob)
if ((usr.mutations & CLUMSY) && prob(50))
if ((CLUMSY in usr.mutations) && prob(50))
usr << "\red You grab the stunbaton on the wrong side."
usr.Weaken(30)
return
@@ -165,7 +166,7 @@ STUN BATON
R.cell.charge -= 20
else
charges--
if (M.stuttering < 1 && (!(M.mutations & HULK) && M.canstun) /*&& (!istype(H:wear_suit, /obj/item/clothing/suit/judgerobe))*/)
if (M.stuttering < 1 && (!(HULK in M.mutations) && M.canstun) /*&& (!istype(H:wear_suit, /obj/item/clothing/suit/judgerobe))*/)
M.stuttering = 1
M.Stun(1)
M.Weaken(1)
@@ -176,7 +177,7 @@ STUN BATON
R.cell.charge -= 20
else
charges--
if (M.stuttering < 10 && (!(M.mutations & HULK) && M.canstun) /*&& (!istype(H:wear_suit, /obj/item/clothing/suit/judgerobe))*/)
if (M.stuttering < 10 && (!(HULK in M.mutations) && M.canstun) /*&& (!istype(H:wear_suit, /obj/item/clothing/suit/judgerobe))*/)
M.stuttering = 10
M.Stun(10)
M.Weaken(10)
@@ -193,7 +194,7 @@ STUN BATON
charges -= 5
/obj/item/weapon/melee/classic_baton/attack(mob/M as mob, mob/living/user as mob)
if ((user.mutations & CLUMSY) && prob(50))
if ((CLUMSY in user.mutations) && prob(50))
user << "\red You club yourself over the head."
user.Weaken(3 * force)
if(ishuman(user))
@@ -215,7 +216,7 @@ STUN BATON
if (user.a_intent == "hurt")
if(!..()) return
playsound(src.loc, "swing_hit", 50, 1, -1)
if (M.stuttering < 8 && (!(M.mutations & HULK)) /*&& (!istype(H:wear_suit, /obj/item/clothing/suit/judgerobe))*/)
if (M.stuttering < 8 && (!(HULK in M.mutations)) /*&& (!istype(H:wear_suit, /obj/item/clothing/suit/judgerobe))*/)
M.stuttering = 8
M.Stun(8)
M.Weaken(8)
@@ -227,3 +228,29 @@ STUN BATON
M.Weaken(5)
for(var/mob/O in viewers(M))
if (O.client) O.show_message("\red <B>[M] has been stunned with the police baton by [user]!</B>", 1, "\red You hear someone fall", 2)
/obj/item/weapon/shield/energy/IsShield()
if(active)
return 1
else
return 0
/obj/item/weapon/shield/energy/attack_self(mob/living/user as mob)
if ((CLUMSY in user.mutations) && prob(50))
user << "\red You beat yourself in the head with [src]."
user.take_organ_damage(5)
active = !active
if (active)
force = 10
icon_state = "eshield[active]"
w_class = 4
playsound(user, 'saberon.ogg', 50, 1)
user << "\blue [src] is now active."
else
force = 3
icon_state = "eshield[active]"
w_class = 1
playsound(user, 'saberoff.ogg', 50, 1)
user << "\blue [src] can now be concealed."
add_fingerprint(user)
return
+2 -2
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:05
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
/*
CONTAINS:
@@ -36,7 +36,7 @@ WELDINGTOOOL
if(!istype(M)) return ..()
if(user.zone_sel.selecting != "eyes" && user.zone_sel.selecting != "head")
return ..()
if((user.mutations & CLUMSY) && prob(50))
if((CLUMSY in user.mutations) && prob(50))
M = user
return eyestab(M,user)