Energy projectiles now move instantly, leaving a straight line from their origin to their destination, like real energy weapons.

Welderbackpack now has a proper icon.
Stun rounds can now be reduced or blocked by armor
Added more update_clothing() calls
Fixed strangling non-humans.
Blob is now an announcement only.
This commit is contained in:
SkyMarshal
2012-02-26 23:06:43 -07:00
parent 58249a83ba
commit c7af63b281
12 changed files with 68 additions and 14 deletions
+2 -1
View File
@@ -1411,9 +1411,10 @@
if(!reagents.total_volume)
if(M == user) user << "\red You finish eating [src]."
else user << "\red [M] finishes eating [src]."
spawn(5)
user.update_clothing()
del(src)
playsound(M.loc,'eatfood.ogg', rand(10,50), 1)
user.update_clothing()
return 1
else if(istype(M, /mob/living/simple_animal/livestock))
if(M == user) //If you're eating it yourself.
+3 -3
View File
@@ -42,13 +42,13 @@
if(!effect || (blocked >= 2)) return 0
switch(effecttype)
if(STUN)
Stun(effect/(blocked+1))
Stun((effect - (effect*getarmor(null, "melee")))/(blocked + 1))
if(WEAKEN)
Weaken(effect/(blocked+1))
Weaken((effect - (effect*getarmor(null, "melee")))/(blocked + 1))
if(PARALYZE)
Paralyse(effect/(blocked+1))
if(IRRADIATE)
radiation += max((effect - (effect*getarmor(null, "rad"))), 0)//Rads auto check armor
radiation += max((effect - (effect*getarmor(null, "melee"))), 0)//Rads auto check armor
if(STUTTER)
stuttering = max(stuttering,(effect/(blocked+1)))
if(SLUR)
+7 -3
View File
@@ -78,9 +78,13 @@
if ((killing && state == 3))
affecting.Stun(5)
affecting.Paralyse(3)
affecting.being_strangled = 1
var/datum/organ/external/head = affecting.organs["head"]
head.add_wound("Strangulation", 0)
if(ishuman(affecting))
var/mob/living/carbon/human/H = affecting
affecting.being_strangled = 1
var/datum/organ/external/head = H.organs["head"]
head.add_wound("Strangulation", 0)
else
affecting.losebreath = min(affecting.losebreath + 2, 3)
return
+12 -3
View File
@@ -43,9 +43,18 @@
if(!do_after(user, 40))
M.visible_message("\blue [user] decided life was worth living")
return
M.visible_message("\red [user] pulls the trigger.")
M.apply_damage(70, BRUTE, "head")
M.apply_damage(110, BRUTE, "chest")
if(istype(src.in_chamber, /obj/item/projectile/bullet) && !istype(src.in_chamber, /obj/item/projectile/bullet/stunshot))
M.apply_damage(160, BRUTE, "head", used_weapon = "Suicide attempt with a projectile weapon.")
M.visible_message("\red [user] pulls the trigger.")
else if(istype(src.in_chamber, /obj/item/projectile/bullet/stunshot) || istype(src.in_chamber, /obj/item/projectile/energy/electrode))
M.apply_damage(10, BURN, "head", used_weapon = "Suicide attempt with a stun round.")
M.visible_message("\red [user] pulls the trigger, but luckily it was a stun round.")
else if(istype(src.in_chamber, /obj/item/projectile/beam) || istype(src.in_chamber, /obj/item/projectile/energy))
M.apply_damage(160, BURN, "head", used_weapon = "Suicide attempt with an energy weapon")
M.visible_message("\red [user] pulls the trigger.")
else
M.apply_damage(160, BRUTE, "head", used_weapon = "Suicide attempt with a gun")
M.visible_message("\red [user] pulls the trigger. Ow.")
return
else
return ..()
@@ -6,6 +6,40 @@
damage_type = BURN
flag = "laser"
eyeblur = 2
var/ID = 0
var/main = 0
process()
main = 1
ID = rand(0,1000)
var/lets_not_be_a_derp = 1
spawn(0)
while(!bumped)
for(var/mob/living/M in loc)
Bump(M)
if((!( current ) || loc == current))
current = locate(min(max(x + xo, 1), world.maxx), min(max(y + yo, 1), world.maxy), z)
if((x == 1 || x == world.maxx || y == 1 || y == world.maxy))
del(src)
return
if(!lets_not_be_a_derp)
var/obj/item/projectile/beam/new_beam = new src.type(loc)
processing_objects.Remove(new_beam)
new_beam.dir = dir
new_beam.ID = ID
else
lets_not_be_a_derp = 0
step_towards(src, current)
processing_objects.Remove(src)
return
Del()
if(main)
sleep(3)
for(var/obj/item/projectile/beam/beam in world)
if(beam.ID == ID)
del(beam)
..()
/obj/item/projectile/beam/heavylaser
@@ -8,7 +8,7 @@
/obj/item/projectile/bullet/weakbullet
damage = 10
damage = 5
stun = 5
weaken = 5
@@ -13,6 +13,7 @@
stun = 10
weaken = 10
stutter = 10
flag = "melee" //Give it a better chance to be blocked.
/obj/item/projectile/energy/declone