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

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 ..()

View File

@@ -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

View File

@@ -8,7 +8,7 @@
/obj/item/projectile/bullet/weakbullet
damage = 10
damage = 5
stun = 5
weaken = 5

View File

@@ -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