Adds a freeze ray gun (#11114)

This pr adds a freeze ray gun. It works by reducing the mob's temperature until they freeze and get stuck inside ice for a while. The gun also has an alt-fire mode that fires ice bolt.
This commit is contained in:
Alberyk
2021-02-06 17:45:46 +02:00
committed by GitHub
parent afeb4a0849
commit 1a98599edd
13 changed files with 119 additions and 17 deletions
@@ -0,0 +1,20 @@
/obj/item/gun/energy/freeze
name = "freeze ray gun"
desc = "A portable freezing ray gun designated to quickly lower temperatures."
icon = 'icons/obj/guns/freezeray.dmi'
icon_state = "icer"
item_state = "icer"
has_item_ratio = FALSE
fire_sound = 'sound/weapons/pulse3.ogg'
max_shots = 5
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 4, TECH_POWER = 4)
slot_flags = SLOT_BELT
projectile_type = /obj/item/projectile/beam/freezer
firemodes = list(
list(mode_name="freeze", projectile_type= /obj/item/projectile/beam/freezer, fire_sound='sound/weapons/pulse3.ogg'),
list(mode_name="ice bolt", projectile_type= /obj/item/projectile/ice, fire_sound='sound/weapons/crossbow.ogg')
)
@@ -445,3 +445,11 @@
icon_state = "xray"
firing_sound = 'sound/weapons/plasma_cutter.ogg'
origin_tech = list(TECH_COMBAT = 3, TECH_PHORON = 4, TECH_ILLEGAL = 4)
/obj/item/laser_components/modulator/freeze
name = "freeze ray modulator"
desc = "Modulates the beam into freezing rays."
projectile = /obj/item/projectile/beam/freezer
icon_state = "blue"
firing_sound = 'sound/weapons/pulse3.ogg'
origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 5, TECH_MATERIAL = 4)
+25 -1
View File
@@ -443,4 +443,28 @@
damage = 20
/obj/item/projectile/beam/tesla/paramount
damage = 25
damage = 25
/obj/item/projectile/beam/freezer
name = "freezing ray"
icon_state = "bluelaser"
pass_flags = PASSTABLE
damage = 15
damage_type = BURN
check_armor = "energy"
muzzle_type = /obj/effect/projectile/muzzle/laser/blue
tracer_type = /obj/effect/projectile/tracer/laser/blue
impact_type = /obj/effect/projectile/impact/laser/blue
/obj/item/projectile/beam/freezer/on_impact(atom/target)
. = ..()
if(isliving(target))
var/mob/living/L = target
L.bodytemperature -= 40
if(ishuman(L))
var/mob/living/carbon/human/H = L
if(H.bodytemperature <= H.species.cold_level_2)
new /obj/structure/closet/statue/ice(H.loc, H)
H.visible_message(SPAN_WARNING("\The [H] freezes!"))
@@ -300,3 +300,10 @@
else
..()
return
/obj/item/projectile/ice
name ="ice bolt"
icon_state= "icer_bolt"
damage = 15
damage_type = BRUTE
check_armor = "energy"
@@ -242,4 +242,9 @@
/datum/design/item/modular_weapon/modular_net
req_tech = list(TECH_COMBAT = 5, TECH_PHORON = 4, TECH_ILLEGAL = 4)
materials = list(DEFAULT_WALL_MATERIAL = 5000, MATERIAL_GLASS = 1000, MATERIAL_PHORON = 3000)
build_path = /obj/item/laser_components/modulator/net
build_path = /obj/item/laser_components/modulator/net
/datum/design/item/modular_weapon/freezing_ray
req_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 5, TECH_MATERIAL = 4)
materials = list(DEFAULT_WALL_MATERIAL = 2000, MATERIAL_GLASS = 1000, MATERIAL_URANIUM = 500)
build_path = /obj/item/laser_components/modulator/freeze