mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-29 11:31:38 +00:00
Mounted guns names, grenades tweaks and projectiles changes (#3322)
-name added the prefix mounted to all mounted guns -converted the hos sniper rifle bullet to the new armor system -converted projectile/special.dm to absolute pathing -reduced again the damage of frag grenades -added armor penetration to the pulse beam, to make it more than just a stronger laser -fixed the fake grenade getting stuck in the primed sprite after its detonation and added a indication it is take in the desc
This commit is contained in:
@@ -54,6 +54,7 @@
|
||||
name = "pulse"
|
||||
icon_state = "u_laser"
|
||||
damage = 50
|
||||
armor_penetration = 50
|
||||
|
||||
muzzle_type = /obj/effect/projectile/laser_pulse/muzzle
|
||||
tracer_type = /obj/effect/projectile/laser_pulse/tracer
|
||||
@@ -318,7 +319,7 @@
|
||||
muzzle_type = /obj/effect/projectile/cult/heavy/muzzle
|
||||
tracer_type = /obj/effect/projectile/cult/heavy/tracer
|
||||
impact_type = /obj/effect/projectile/cult/heavy/impact
|
||||
|
||||
|
||||
/obj/item/projectile/beam/energy_net
|
||||
name = "energy net projection"
|
||||
icon_state = "xray"
|
||||
|
||||
@@ -188,6 +188,10 @@
|
||||
/obj/item/projectile/bullet/rifle/a556
|
||||
damage = 30
|
||||
|
||||
/obj/item/projectile/bullet/rifle/a556/ap
|
||||
damage = 25
|
||||
armor_penetration = 25
|
||||
|
||||
/obj/item/projectile/bullet/rifle/a145
|
||||
damage = 80
|
||||
stun = 3
|
||||
@@ -214,22 +218,18 @@
|
||||
if(!isrobot(target))
|
||||
L.apply_effect(5, DROWSY, 0)
|
||||
if(def_zone == "torso")
|
||||
if(blocked < 2 && !(blocked < 1))
|
||||
target.visible_message("<b>[target]</b> yawns.")
|
||||
if(blocked < 1)
|
||||
spawn(120)
|
||||
L.apply_effect(10, PARALYZE, 0)
|
||||
target.visible_message("<b>[target]</b> moans.")
|
||||
if(def_zone == "head" && blocked < 2)
|
||||
spawn(35)
|
||||
L.apply_effect(20, PARALYZE, 0)
|
||||
if(blocked < 100 && !(blocked < 20))
|
||||
L.emote("yawns")
|
||||
if(blocked < 20)
|
||||
addtimer(CALLBACK(src, .proc/apply_sedative, target, 10), 120)
|
||||
if(def_zone == "head" && blocked < 100)
|
||||
addtimer(CALLBACK(src, .proc/apply_sedative, target, 20), 35)
|
||||
if(def_zone != "torso" && def_zone != "head")
|
||||
if(blocked < 2 && !(blocked < 1))
|
||||
target.visible_message("<b>[target]</b> yawns.")
|
||||
if(blocked < 1)
|
||||
spawn(45)
|
||||
L.apply_effect(15, PARALYZE, 0)
|
||||
target.visible_message("<b>[target]</b> moans.")
|
||||
if(blocked < 100 && !(blocked < 20))
|
||||
L.emote("yawns")
|
||||
if(blocked < 20)
|
||||
addtimer(CALLBACK(src, .proc/apply_sedative, target, 15), 45)
|
||||
|
||||
if(isanimal(target))
|
||||
target.visible_message("<b>[target]</b> twitches, foaming at the mouth.")
|
||||
L.apply_damage(35, TOX) //temporary until simple_mob paralysis actually works.
|
||||
@@ -239,6 +239,9 @@
|
||||
M.Sleeping(1200)*/ //commented out until simple_mob paralysis actually works.
|
||||
..()
|
||||
|
||||
/obj/item/projectile/bullet/rifle/tranq/proc/apply_sedative(var/mob/living/L, var/severity)
|
||||
L.apply_effect(severity, PARALYZE, 0)
|
||||
L.emote("moans")
|
||||
/* Miscellaneous */
|
||||
|
||||
/obj/item/projectile/bullet/suffocationbullet//How does this even work?
|
||||
@@ -246,10 +249,6 @@
|
||||
damage = 20
|
||||
damage_type = OXY
|
||||
|
||||
/obj/item/projectile/bullet/rifle/a556/ap
|
||||
damage = 25
|
||||
armor_penetration = 25
|
||||
|
||||
/obj/item/projectile/bullet/cyanideround
|
||||
name = "poison bullet"
|
||||
damage = 40
|
||||
@@ -262,8 +261,8 @@
|
||||
edge = 1
|
||||
|
||||
/obj/item/projectile/bullet/burstbullet/on_impact(var/atom/A)
|
||||
explosion(A, -1, 0, 2)
|
||||
..()
|
||||
explosion(A, -1, 0, 2)
|
||||
..()
|
||||
|
||||
/obj/item/projectile/bullet/blank
|
||||
invisibility = 101
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
check_armour = "energy"
|
||||
var/pulse_range = 1
|
||||
|
||||
on_hit(var/atom/target, var/blocked = 0)
|
||||
empulse(target, pulse_range, pulse_range)
|
||||
return 1
|
||||
/obj/item/projectile/ion/on_hit(var/atom/target, var/blocked = 0)
|
||||
empulse(target, pulse_range, pulse_range)
|
||||
return 1
|
||||
|
||||
/obj/item/projectile/ion/small
|
||||
name = "ion pulse"
|
||||
@@ -23,22 +23,22 @@
|
||||
sharp = 1
|
||||
edge = 1
|
||||
|
||||
on_impact(var/atom/A)
|
||||
explosion(A, -1, 0, 2)
|
||||
..()
|
||||
/obj/item/projectile/bullet/gyro/on_impact(var/atom/A)
|
||||
explosion(A, -1, 0, 2)
|
||||
..()
|
||||
|
||||
/obj/item/projectile/bullet/gyro/law
|
||||
name ="high-ex round"
|
||||
icon_state= "bolter"
|
||||
damage = 15
|
||||
|
||||
on_hit(var/atom/target, var/blocked = 0)
|
||||
explosion(target, -1, 0, 2)
|
||||
sleep(0)
|
||||
var/obj/T = target
|
||||
var/throwdir = get_dir(firer,target)
|
||||
T.throw_at(get_edge_target_turf(target, throwdir),3,3)
|
||||
return 1
|
||||
/obj/item/projectile/bullet/gyro/law/on_hit(var/atom/target, var/blocked = 0)
|
||||
explosion(target, -1, 0, 2)
|
||||
sleep(0)
|
||||
var/obj/T = target
|
||||
var/throwdir = get_dir(firer,target)
|
||||
T.throw_at(get_edge_target_turf(target, throwdir),3,3)
|
||||
return 1
|
||||
|
||||
/obj/item/projectile/temp
|
||||
name = "freeze beam"
|
||||
@@ -50,11 +50,11 @@
|
||||
//var/temperature = 300
|
||||
|
||||
|
||||
on_hit(var/atom/target, var/blocked = 0)//These two could likely check temp protection on the mob
|
||||
if(istype(target, /mob/living))
|
||||
var/mob/M = target
|
||||
M.bodytemperature = -273
|
||||
return 1
|
||||
/obj/item/projectile/temp/on_hit(var/atom/target, var/blocked = 0)//These two could likely check temp protection on the mob
|
||||
if(istype(target, /mob/living))
|
||||
var/mob/M = target
|
||||
M.bodytemperature = -273
|
||||
return 1
|
||||
|
||||
/obj/item/projectile/meteor
|
||||
name = "meteor"
|
||||
@@ -65,26 +65,26 @@
|
||||
nodamage = 1
|
||||
check_armour = "bullet"
|
||||
|
||||
Bump(atom/A as mob|obj|turf|area)
|
||||
if(A == firer)
|
||||
loc = A.loc
|
||||
return
|
||||
/obj/item/projectile/meteor/Bump(atom/A as mob|obj|turf|area)
|
||||
if(A == firer)
|
||||
loc = A.loc
|
||||
return
|
||||
|
||||
sleep(-1) //Might not be important enough for a sleep(-1) but the sleep/spawn itself is necessary thanks to explosions and metoerhits
|
||||
sleep(-1) //Might not be important enough for a sleep(-1) but the sleep/spawn itself is necessary thanks to explosions and metoerhits
|
||||
|
||||
if(src)//Do not add to this if() statement, otherwise the meteor won't delete them
|
||||
if(A)
|
||||
if(src)//Do not add to this if() statement, otherwise the meteor won't delete them
|
||||
if(A)
|
||||
|
||||
A.ex_act(2)
|
||||
playsound(src.loc, 'sound/effects/meteorimpact.ogg', 40, 1)
|
||||
A.ex_act(2)
|
||||
playsound(src.loc, 'sound/effects/meteorimpact.ogg', 40, 1)
|
||||
|
||||
for(var/mob/M in range(10, src))
|
||||
if(!M.stat && !istype(M, /mob/living/silicon/ai))\
|
||||
shake_camera(M, 3, 1)
|
||||
qdel(src)
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
for(var/mob/M in range(10, src))
|
||||
if(!M.stat && !istype(M, /mob/living/silicon/ai))\
|
||||
shake_camera(M, 3, 1)
|
||||
qdel(src)
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
|
||||
/obj/item/projectile/energy/floramut
|
||||
name = "alpha somatoray"
|
||||
@@ -94,36 +94,36 @@
|
||||
nodamage = 1
|
||||
check_armour = "energy"
|
||||
|
||||
on_hit(var/atom/target, var/blocked = 0)
|
||||
var/mob/living/M = target
|
||||
if(ishuman(target))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if((H.species.flags & IS_PLANT) && (M.nutrition < 500))
|
||||
if(prob(15))
|
||||
H.apply_effect((rand(30,80)),IRRADIATE,blocked = H.getarmor(null, "rad"))
|
||||
M.Weaken(5)
|
||||
for (var/mob/V in viewers(src))
|
||||
V.show_message("<span class='warning'>[M] writhes in pain as \his vacuoles boil.</span>", 3, "<span class='warning'>You hear the crunching of leaves.</span>", 2)
|
||||
if(prob(35))
|
||||
// for (var/mob/V in viewers(src)) //Public messages commented out to prevent possible metaish genetics experimentation and stuff. - Cheridan
|
||||
// V.show_message("\red [M] is mutated by the radiation beam.", 3, "\red You hear the snapping of twigs.", 2)
|
||||
if(prob(80))
|
||||
randmutb(M)
|
||||
domutcheck(M,null)
|
||||
else
|
||||
randmutg(M)
|
||||
domutcheck(M,null)
|
||||
/obj/item/projectile/energy/floramut/on_hit(var/atom/target, var/blocked = 0)
|
||||
var/mob/living/M = target
|
||||
if(ishuman(target))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if((H.species.flags & IS_PLANT) && (M.nutrition < 500))
|
||||
if(prob(15))
|
||||
H.apply_effect((rand(30,80)),IRRADIATE,blocked = H.getarmor(null, "rad"))
|
||||
M.Weaken(5)
|
||||
for (var/mob/V in viewers(src))
|
||||
V.show_message("<span class='warning'>[M] writhes in pain as \his vacuoles boil.</span>", 3, "<span class='warning'>You hear the crunching of leaves.</span>", 2)
|
||||
if(prob(35))
|
||||
// for (var/mob/V in viewers(src)) //Public messages commented out to prevent possible metaish genetics experimentation and stuff. - Cheridan
|
||||
// V.show_message("\red [M] is mutated by the radiation beam.", 3, "\red You hear the snapping of twigs.", 2)
|
||||
if(prob(80))
|
||||
randmutb(M)
|
||||
domutcheck(M,null)
|
||||
else
|
||||
M.adjustFireLoss(rand(5,15))
|
||||
M.show_message("<span class='warning'>The radiation beam singes you!</span>")
|
||||
// for (var/mob/V in viewers(src))
|
||||
// V.show_message("\red [M] is singed by the radiation beam.", 3, "\red You hear the crackle of burning leaves.", 2)
|
||||
else if(istype(target, /mob/living/carbon/))
|
||||
// for (var/mob/V in viewers(src))
|
||||
// V.show_message("The radiation beam dissipates harmlessly through [M]", 3)
|
||||
M.show_message("<span class='notice'>The radiation beam dissipates harmlessly through your body.</span>")
|
||||
else
|
||||
return 1
|
||||
randmutg(M)
|
||||
domutcheck(M,null)
|
||||
else
|
||||
M.adjustFireLoss(rand(5,15))
|
||||
M.show_message("<span class='warning'>The radiation beam singes you!</span>")
|
||||
// for (var/mob/V in viewers(src))
|
||||
// V.show_message("\red [M] is singed by the radiation beam.", 3, "\red You hear the crackle of burning leaves.", 2)
|
||||
else if(istype(target, /mob/living/carbon/))
|
||||
// for (var/mob/V in viewers(src))
|
||||
// V.show_message("The radiation beam dissipates harmlessly through [M]", 3)
|
||||
M.show_message("<span class='notice'>The radiation beam dissipates harmlessly through your body.</span>")
|
||||
else
|
||||
return 1
|
||||
|
||||
/obj/item/projectile/energy/florayield
|
||||
name = "beta somatoray"
|
||||
@@ -133,26 +133,26 @@
|
||||
nodamage = 1
|
||||
check_armour = "energy"
|
||||
|
||||
on_hit(var/atom/target, var/blocked = 0)
|
||||
var/mob/M = target
|
||||
if(ishuman(target)) //These rays make plantmen fat.
|
||||
var/mob/living/carbon/human/H = M
|
||||
if((H.species.flags & IS_PLANT) && (M.nutrition < 500))
|
||||
M.nutrition += 30
|
||||
else if (istype(target, /mob/living/carbon/))
|
||||
M.show_message("<span class='notice'>The radiation beam dissipates harmlessly through your body.</span>")
|
||||
else
|
||||
return 1
|
||||
/obj/item/projectile/energy/florayield/on_hit(var/atom/target, var/blocked = 0)
|
||||
var/mob/M = target
|
||||
if(ishuman(target)) //These rays make plantmen fat.
|
||||
var/mob/living/carbon/human/H = M
|
||||
if((H.species.flags & IS_PLANT) && (M.nutrition < 500))
|
||||
M.nutrition += 30
|
||||
else if (istype(target, /mob/living/carbon/))
|
||||
M.show_message("<span class='notice'>The radiation beam dissipates harmlessly through your body.</span>")
|
||||
else
|
||||
return 1
|
||||
|
||||
|
||||
/obj/item/projectile/beam/mindflayer
|
||||
name = "flayer ray"
|
||||
|
||||
on_hit(var/atom/target, var/blocked = 0)
|
||||
if(ishuman(target))
|
||||
var/mob/living/carbon/human/M = target
|
||||
M.adjustBrainLoss(5)
|
||||
M.hallucination += 20
|
||||
/obj/item/projectile/beam/mindflayer/on_hit(var/atom/target, var/blocked = 0)
|
||||
if(ishuman(target))
|
||||
var/mob/living/carbon/human/M = target
|
||||
M.adjustBrainLoss(5)
|
||||
M.hallucination += 20
|
||||
|
||||
/obj/item/projectile/bullet/trod
|
||||
name ="tungsten rod"
|
||||
@@ -162,9 +162,9 @@
|
||||
sharp = 1
|
||||
edge = 1
|
||||
|
||||
on_impact(var/atom/A)
|
||||
explosion(A, 0, 0, 4)
|
||||
..()
|
||||
/obj/item/projectile/bullet/trod/on_impact(var/atom/A)
|
||||
explosion(A, 0, 0, 4)
|
||||
..()
|
||||
|
||||
/obj/item/projectile/chameleon
|
||||
name = "bullet"
|
||||
|
||||
Reference in New Issue
Block a user