mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-21 03:55:05 +01:00
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:
@@ -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.
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user