From 09effef4f96bdfb30f16ef2f48ab551cddac709b Mon Sep 17 00:00:00 2001 From: Anewbe Date: Sat, 10 Mar 2018 21:30:01 -0600 Subject: [PATCH] More projectiles now ignite things --- code/modules/projectiles/projectile.dm | 8 ++++++++ code/modules/projectiles/projectile/animate.dm | 1 + code/modules/projectiles/projectile/beams.dm | 8 ++++++++ code/modules/projectiles/projectile/bullets.dm | 4 ++++ code/modules/projectiles/projectile/change.dm | 2 ++ code/modules/projectiles/projectile/energy.dm | 8 ++++++++ code/modules/projectiles/projectile/force.dm | 2 ++ code/modules/projectiles/projectile/special.dm | 15 +++++++++++++++ 8 files changed, 48 insertions(+) diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 7cf68c5d39..c8e4fb0be9 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -49,6 +49,7 @@ //Effects var/incendiary = 0 //1 for ignite on hit, 2 for trail of fire. 3 maybe later for burst of fire around the impact point. - Mech var/flammability = 0 //Amount of fire stacks to add for the above. + var/combustion = TRUE //Does this set off flammable objects on fire/hit? var/stun = 0 var/weaken = 0 var/paralyze = 0 @@ -90,6 +91,10 @@ //called when the projectile stops flying because it collided with something /obj/item/projectile/proc/on_impact(var/atom/A) impact_effect(effect_transform) // generate impact effect + if(damage && damage_type == BURN) + var/turf/T = get_turf(A) + if(T) + T.hotspot_expose(700, 5) return //Checks if the projectile is eligible for embedding. Not that it necessarily will. @@ -132,6 +137,9 @@ if (!istype(targloc) || !istype(curloc)) return 1 + if(combustion) + curloc.hotspot_expose(700, 5) + if(targloc == curloc) //Shooting something in the same turf target.bullet_act(src, target_zone) on_impact(target) diff --git a/code/modules/projectiles/projectile/animate.dm b/code/modules/projectiles/projectile/animate.dm index c09b98a32b..e88e6faa33 100644 --- a/code/modules/projectiles/projectile/animate.dm +++ b/code/modules/projectiles/projectile/animate.dm @@ -8,6 +8,7 @@ light_range = 2 light_power = 0.5 light_color = "#55AAFF" + combustion = FALSE /obj/item/projectile/animate/Bump(var/atom/change) if((istype(change, /obj/item) || istype(change, /obj/structure)) && !is_type_in_list(change, protected_objects)) diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index 6fee571544..9755f604ab 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -122,6 +122,8 @@ check_armour = "laser" light_color = "#0066FF" + combustion = FALSE + muzzle_type = /obj/effect/projectile/laser_blue/muzzle tracer_type = /obj/effect/projectile/laser_blue/tracer impact_type = /obj/effect/projectile/laser_blue/impact @@ -142,6 +144,8 @@ check_armour = "laser" light_color = "#FF0D00" + combustion = FALSE + /obj/item/projectile/beam/lastertag/red/on_hit(var/atom/target, var/blocked = 0) if(istype(target, /mob/living/carbon/human)) var/mob/living/carbon/human/M = target @@ -157,6 +161,8 @@ check_armour = "laser" light_color = "#00C6FF" + combustion = FALSE + muzzle_type = /obj/effect/projectile/laser_omni/muzzle tracer_type = /obj/effect/projectile/laser_omni/tracer impact_type = /obj/effect/projectile/laser_omni/impact @@ -190,6 +196,8 @@ damage_type = HALLOSS light_color = "#FFFFFF" + combustion = FALSE + muzzle_type = /obj/effect/projectile/stun/muzzle tracer_type = /obj/effect/projectile/stun/tracer impact_type = /obj/effect/projectile/stun/impact diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index 02eab7e93a..d47e729898 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -191,6 +191,8 @@ sharp = 0 check_armour = "melee" + combustion = FALSE + /obj/item/projectile/bullet/shotgun/ion/on_hit(var/atom/target, var/blocked = 0) ..() empulse(target, 0, 0, 0, 0) //Only affects what it hits @@ -325,6 +327,8 @@ embed_chance = 0 sharp = 0 + combustion = FALSE + /obj/item/projectile/bullet/pistol/cap/process() loc = null qdel(src) \ No newline at end of file diff --git a/code/modules/projectiles/projectile/change.dm b/code/modules/projectiles/projectile/change.dm index 6f19b29bbb..0beffe46a3 100644 --- a/code/modules/projectiles/projectile/change.dm +++ b/code/modules/projectiles/projectile/change.dm @@ -6,6 +6,8 @@ nodamage = 1 check_armour = "energy" + combustion = FALSE + /obj/item/projectile/change/on_hit(var/atom/change) wabbajack(change) diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm index 0cbb96a2e0..d5bae0dc22 100644 --- a/code/modules/projectiles/projectile/energy.dm +++ b/code/modules/projectiles/projectile/energy.dm @@ -92,6 +92,7 @@ light_power = 0.5 light_color = "#33CC00" + combustion = FALSE /obj/item/projectile/energy/dart name = "dart" @@ -101,6 +102,7 @@ agony = 120 check_armour = "energy" + combustion = FALSE /obj/item/projectile/energy/bolt name = "bolt" @@ -122,6 +124,8 @@ agony = 10 check_armour = "bio" + combustion = FALSE + /obj/item/projectile/energy/neurotoxin name = "neurotoxic spit" icon_state = "neurotoxin" @@ -130,6 +134,8 @@ agony = 80 check_armour = "bio" + combustion = FALSE + /obj/item/projectile/energy/neurotoxin/toxic //New alien mob projectile to match the player-variant's projectiles. name = "neurotoxic spit" icon_state = "neurotoxin" @@ -149,6 +155,8 @@ light_power = 0.5 light_color = "#33CC00" + combustion = FALSE + /obj/item/projectile/energy/plasmastun name = "plasma pulse" icon_state = "plasma_stun" diff --git a/code/modules/projectiles/projectile/force.dm b/code/modules/projectiles/projectile/force.dm index 71b7d34d04..550aab6113 100644 --- a/code/modules/projectiles/projectile/force.dm +++ b/code/modules/projectiles/projectile/force.dm @@ -5,6 +5,8 @@ damage = 20 check_armour = "energy" + combustion = FALSE + /obj/item/projectile/forcebolt/strong name = "force bolt" diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm index 4e366bed6d..f7ecddb0eb 100644 --- a/code/modules/projectiles/projectile/special.dm +++ b/code/modules/projectiles/projectile/special.dm @@ -9,6 +9,9 @@ light_range = 2 light_power = 0.5 light_color = "#55AAFF" + + combustion = FALSE + var/sev1_range = 0 var/sev2_range = 1 var/sev3_range = 1 @@ -56,6 +59,8 @@ light_power = 0.5 light_color = "#55AAFF" + combustion = FALSE + /obj/item/projectile/temp/on_hit(atom/target, blocked = FALSE) ..() if(isliving(target)) @@ -85,6 +90,8 @@ name = "heat beam" target_temperature = 1000 + combustion = TRUE + /obj/item/projectile/meteor name = "meteor" icon = 'icons/obj/meteor.dmi' @@ -127,6 +134,8 @@ light_power = 0.5 light_color = "#33CC00" + combustion = FALSE + /obj/item/projectile/energy/floramut/on_hit(var/atom/target, var/blocked = 0) var/mob/living/M = target if(ishuman(target)) @@ -196,6 +205,8 @@ /obj/item/projectile/beam/mindflayer name = "flayer ray" + combustion = FALSE + /obj/item/projectile/beam/mindflayer/on_hit(var/atom/target, var/blocked = 0) if(ishuman(target)) var/mob/living/carbon/human/M = target @@ -218,6 +229,8 @@ damage_type = HALLOSS muzzle_type = null + combustion = FALSE + /obj/item/projectile/bola/on_hit(var/atom/target, var/blocked = 0) if(ishuman(target)) var/mob/living/carbon/human/M = target @@ -235,6 +248,8 @@ damage_type = BRUTE muzzle_type = null + combustion = FALSE + /obj/item/projectile/webball/on_hit(var/atom/target, var/blocked = 0) if(isturf(target.loc)) var/obj/effect/spider/stickyweb/W = locate() in get_turf(target)