Files
CHOMPStation2/modular_chomp/code/modules/projectiles/precursor/eclipse.dm
2025-09-28 01:15:46 +02:00

167 lines
4.9 KiB
Plaintext

/obj/item/gun/energy/freezegun
name = "Pulse Froster Prototype"
desc = "A strange gun pulsing with energy, it's touch chilling you to the core."
icon = 'modular_chomp/icons/obj/guns/precursor/eclipse.dmi'
icon_state = "cryogun"
item_state = "cryogun"
wielded_item_state = "cryogun-wielded"
matter = list(MAT_DURASTEEL = 1000, MAT_MORPHIUM = 500)
origin_tech = list(TECH_COMBAT = 6, TECH_POWER = 5, TECH_PRECURSOR = 3)
charge_cost = 80 //How much energy is needed to fire.
accept_cell_type = /obj/item/cell/device
cell_type = /obj/item/cell/device/weapon
projectile_type = /obj/item/projectile/energy/frostsphere
recoil_mode = 0
charge_meter = 1
reload_time = 10
move_delay = 0
firemodes = list(
list(mode_name="normal", fire_delay=5, projectile_type=/obj/item/projectile/energy/frostsphere, charge_cost = 80),
list(mode_name="shotgun", fire_delay=15, projectile_type=/obj/item/projectile/bullet/frostshotgun, charge_cost = 240),
)
/obj/item/gun/energy/flamegun
name = "Flame Crystal Projector"
desc = "A strange gun pulsing with energy, it's touch warming you up."
icon = 'modular_chomp/icons/obj/guns/precursor/eclipse.dmi'
icon_state = "flamegun"
item_state = "flamegun"
wielded_item_state = "flame-wielded"
w_class = ITEMSIZE_LARGE
accept_cell_type = /obj/item/cell/device
cell_type = /obj/item/cell/device/weapon
projectile_type = /obj/item/projectile/energy/flamecrystal
matter = list(MAT_DURASTEEL = 1000, MAT_MORPHIUM = 500)
origin_tech = list(TECH_COMBAT = 6, TECH_POWER = 5, TECH_PRECURSOR = 3)
recoil_mode = 0
charge_meter = 1
move_delay = 0
charge_cost = 80
reload_time = 10
firemodes = list(
list(mode_name="normal", fire_delay=5, projectile_type=/obj/item/projectile/energy/flamecrystal, charge_cost = 80),
list(mode_name="shotgun", fire_delay=15, projectile_type=/obj/item/projectile/bullet/flamegun, charge_cost = 240),
list(mode_name="explosive", fire_delay=10, projectile_type=/obj/item/projectile/energy/fireball, charge_cost = 160),
)
/obj/item/projectile/energy/mechahack
name = "remote hack"
icon = 'modular_chomp/icons/obj/guns/precursor/eclipse.dmi'
icon_state = "databreach"
nodamage = 1
irradiate = 3
speed = 1 //a bit faster due to the source having a 3 second wind up
/obj/item/projectile/energy/mechahack/on_hit(var/atom/target)
. = ..()
if(istype(target, /obj/mecha))
remote_eject(target)
/obj/item/projectile/energy/mechahack/proc/remote_eject(obj/mecha/M)
if(!M)
return
visible_message(span_critical("\The [M] is remotly hacked and ejects [M.occupant]!"))
M.go_out()
/obj/item/projectile/energy/lightingspark
name = "lighting spark"
icon_state = "spark"
nodamage = 1
damage_type = HALLOSS
speed = 2
var/power = 20 //How hard it will hit for with electrocute_act(), decreases with each bounce.
/obj/item/projectile/energy/lightingspark/attack_mob(var/mob/living/target_mob, var/distance, var/miss_modifier=0)
//First we shock the guy we just hit.
if(ishuman(target_mob))
var/mob/living/carbon/human/H = target_mob
var/obj/item/organ/external/affected = H.get_organ(check_zone(BP_TORSO))
H.electrocute_act(power, src, H.get_siemens_coefficient_organ(affected), affected, 0)
else
target_mob.electrocute_act(power, src, 0.75, BP_TORSO)
/obj/item/projectile/bullet/crystaline
name = "crystal bullet"
icon = 'modular_chomp/icons/obj/guns/precursor/eclipse.dmi'
icon_state = "crystal"
damage = 30
armor_penetration = 20
embed_chance = 0
speed = 2
/obj/item/projectile/energy/eclipse
name = "experimental laser"
icon = 'modular_chomp/icons/obj/guns/precursor/eclipse.dmi'
icon_state = "laser"
check_armour = "laser"
damage = 30
armor_penetration = 20
penetrating = 2
speed = 2
crawl_destroy = TRUE
//The normal laser respects more armor, but deals more damage if you don't have it.precursor will thwack folks equally.
/obj/item/projectile/energy/eclipse/lorge
damage = 60
armor_penetration = 30
icon_state = "mega_laser"
speed = 10
/obj/item/projectile/energy/eclipse/lorgealien
damage = 20
armor_penetration = 60
icon_state = "mega_laser_p"
speed = 10
/obj/item/projectile/bullet/crystalineburst
use_submunitions = 1
range = 0
embed_chance = 0
spread_submunition_damage = FALSE
submunition_spread_max = 120
submunition_spread_min = 60
submunitions = list(/obj/item/projectile/bullet/crystaline = 5)
/obj/item/projectile/energy/eclipse/janusjavelin //This will end you
name = "energy javelin"
icon_state = "javelin"
damage_type = SEARING
check_armour = "bullet"
damage = 45
armor_penetration = 95
speed = 10
/obj/item/projectile/energy/eclipse/chillingwind
name = "ice winds"
icon_state = "ice_wind"
damage = 15
armor_penetration = 70
speed = 10
modifier_type_to_apply = /datum/modifier/cryogelled
modifier_duration = 0.25 MINUTE
/obj/item/projectile/energy/eclipse/mining
name = "drill"
icon_state = "drill"
damage_type = BRUTE
check_armour = "bullet"
damage = 40
armor_penetration = 30
speed = 10
excavation_amount = 100