mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 19:47:22 +01:00
makes these lasers (#18209)
This commit is contained in:
@@ -356,6 +356,10 @@
|
||||
icon_state = "impact_laser_purple"
|
||||
duration = 4
|
||||
|
||||
/obj/effect/temp_visual/impact_effect/yellow_laser
|
||||
icon_state = "impact_laser_yellow"
|
||||
duration = 4
|
||||
|
||||
/obj/effect/temp_visual/impact_effect/ion
|
||||
icon_state = "shieldsparkles"
|
||||
duration = 6
|
||||
|
||||
@@ -316,16 +316,16 @@
|
||||
..(mimic_type)
|
||||
|
||||
/obj/item/ammo_casing/energy/detective
|
||||
projectile_type = /obj/item/projectile/energy/detective
|
||||
projectile_type = /obj/item/projectile/beam/laser/detective
|
||||
fire_sound = 'sound/weapons/gunshots/gunshot_det_energy.ogg'
|
||||
select_name = "disabler"
|
||||
|
||||
/obj/item/ammo_casing/energy/detective/tracker_warrant
|
||||
projectile_type = /obj/item/projectile/energy/detective/tracker_warrant_shot
|
||||
projectile_type = /obj/item/projectile/beam/laser/detective/tracker_warrant_shot
|
||||
e_cost = 50
|
||||
select_name = "tracker and warrant generator"
|
||||
|
||||
/obj/item/ammo_casing/energy/detective/overcharge
|
||||
projectile_type = /obj/item/projectile/energy/detective/overcharged
|
||||
projectile_type = /obj/item/projectile/beam/laser/detective/overcharged
|
||||
e_cost = 200
|
||||
select_name = "overcharged"
|
||||
|
||||
@@ -161,3 +161,69 @@
|
||||
var/mob/living/L = target
|
||||
L.visible_message("<span class='danger'>[L] explodes!</span>")
|
||||
L.gib()
|
||||
|
||||
/obj/item/projectile/beam/laser/detective
|
||||
name = "energy revolver shot"
|
||||
icon_state = "omnilaser"
|
||||
light_color = LIGHT_COLOR_CYAN
|
||||
impact_effect_type = /obj/effect/temp_visual/impact_effect/blue_laser
|
||||
damage = 5
|
||||
stamina = 25
|
||||
eyeblur = 2 SECONDS
|
||||
|
||||
/obj/item/projectile/beam/laser/detective/overcharged
|
||||
name = "overcharged shot"
|
||||
icon_state = "spark"
|
||||
light_color = LIGHT_COLOR_DARKRED
|
||||
color = LIGHT_COLOR_DARKRED
|
||||
impact_effect_type = /obj/effect/temp_visual/impact_effect/red_laser
|
||||
damage = 45
|
||||
stamina = 15
|
||||
eyeblur = 4 SECONDS
|
||||
|
||||
/obj/item/projectile/beam/laser/detective/tracker_warrant_shot
|
||||
name = "tracker shot"
|
||||
icon_state = "yellow_laser"
|
||||
light_color = LIGHT_COLOR_YELLOW
|
||||
impact_effect_type = /obj/effect/temp_visual/impact_effect/yellow_laser
|
||||
stamina = 0
|
||||
reflectability = REFLECTABILITY_PHYSICAL //No mr cult juggernaught, please don't set me to search!
|
||||
|
||||
/obj/item/projectile/beam/laser/detective/tracker_warrant_shot/on_hit(atom/target)
|
||||
. = ..()
|
||||
if(!ishuman(target))
|
||||
no_worky(target)
|
||||
return
|
||||
start_tracking(target)
|
||||
set_warrant(target)
|
||||
|
||||
/obj/item/projectile/beam/laser/detective/tracker_warrant_shot/proc/start_tracking(atom/target)
|
||||
var/obj/item/gun/energy/detective/D = firer_source_atom
|
||||
if(!D)
|
||||
no_worky(target)
|
||||
return
|
||||
if(D.tracking_target_UID)
|
||||
no_worky(tracking_already = TRUE)
|
||||
return
|
||||
D.start_pointing(target.UID())
|
||||
|
||||
/obj/item/projectile/beam/laser/detective/tracker_warrant_shot/proc/set_warrant(atom/target)
|
||||
var/mob/living/carbon/human/target_to_mark = target
|
||||
var/perpname = target_to_mark.get_visible_name(TRUE)
|
||||
if(!perpname || perpname == "Unknown")
|
||||
no_worky(target, warrant_fail = TRUE)
|
||||
return
|
||||
var/datum/data/record/R = find_record("name", perpname, GLOB.data_core.security)
|
||||
if(!R || (R.fields["criminal"] in list(SEC_RECORD_STATUS_EXECUTE, SEC_RECORD_STATUS_ARREST)))
|
||||
no_worky(target, warrant_fail = TRUE)
|
||||
return
|
||||
set_criminal_status(firer, R, SEC_RECORD_STATUS_SEARCH, "Target tagged by Detective Revolver", "Detective Revolver")
|
||||
|
||||
/obj/item/projectile/beam/laser/detective/tracker_warrant_shot/proc/no_worky(atom/target, tracking_already, warrant_fail)
|
||||
if(tracking_already)
|
||||
to_chat(firer, "<span class='danger'>Weapon Alert: You are already tracking a target!</span>")
|
||||
return
|
||||
if(warrant_fail)
|
||||
to_chat(firer, "<span class='danger'>Weapon Alert: unable to generate warrant on [target]!</span>")
|
||||
return
|
||||
to_chat(firer, "<span class='danger'>Weapon Alert: unable to track [target]!</span>")
|
||||
|
||||
@@ -147,66 +147,3 @@
|
||||
armour_penetration = 10 // It can have a little armor pen, as a treat. Bigger than it looks, energy armor is often low.
|
||||
shield_buster = TRUE
|
||||
reflectability = REFLECTABILITY_PHYSICAL //I will let eswords block it like a normal projectile, but it's not getting reflected, and eshields will take the hit hard. Carp still can reflect though, screw you.
|
||||
|
||||
/obj/item/projectile/energy/detective
|
||||
name = "energy revolver shot"
|
||||
icon_state = "omnilaser"
|
||||
light_color = LIGHT_COLOR_CYAN
|
||||
damage = 5
|
||||
stamina = 25
|
||||
eyeblur = 2 SECONDS
|
||||
|
||||
/obj/item/projectile/energy/detective/overcharged
|
||||
name = "overcharged shot"
|
||||
icon_state = "spark"
|
||||
light_color = LIGHT_COLOR_DARKRED
|
||||
color = LIGHT_COLOR_DARKRED
|
||||
damage = 45
|
||||
stamina = 15
|
||||
eyeblur = 4 SECONDS
|
||||
|
||||
/obj/item/projectile/energy/detective/tracker_warrant_shot
|
||||
name = "tracker shot"
|
||||
icon_state = "yellow_laser"
|
||||
light_color = LIGHT_COLOR_YELLOW
|
||||
stamina = 0
|
||||
reflectability = REFLECTABILITY_PHYSICAL //No mr cult juggernaught, please don't set me to search!
|
||||
|
||||
/obj/item/projectile/energy/detective/tracker_warrant_shot/on_hit(atom/target)
|
||||
. = ..()
|
||||
if(!ishuman(target))
|
||||
no_worky(target)
|
||||
return
|
||||
start_tracking(target)
|
||||
set_warrant(target)
|
||||
|
||||
/obj/item/projectile/energy/detective/tracker_warrant_shot/proc/start_tracking(atom/target)
|
||||
var/obj/item/gun/energy/detective/D = firer_source_atom
|
||||
if(!D)
|
||||
no_worky(target)
|
||||
return
|
||||
if(D.tracking_target_UID)
|
||||
no_worky(tracking_already = TRUE)
|
||||
return
|
||||
D.start_pointing(target.UID())
|
||||
|
||||
/obj/item/projectile/energy/detective/tracker_warrant_shot/proc/set_warrant(atom/target)
|
||||
var/mob/living/carbon/human/target_to_mark = target
|
||||
var/perpname = target_to_mark.get_visible_name(TRUE)
|
||||
if(!perpname || perpname == "Unknown")
|
||||
no_worky(target, warrant_fail = TRUE)
|
||||
return
|
||||
var/datum/data/record/R = find_record("name", perpname, GLOB.data_core.security)
|
||||
if(!R || (R.fields["criminal"] in list(SEC_RECORD_STATUS_EXECUTE, SEC_RECORD_STATUS_ARREST)))
|
||||
no_worky(target, warrant_fail = TRUE)
|
||||
return
|
||||
set_criminal_status(firer, R, SEC_RECORD_STATUS_SEARCH, "Target tagged by Detective Revolver", "Detective Revolver")
|
||||
|
||||
/obj/item/projectile/energy/detective/tracker_warrant_shot/proc/no_worky(atom/target, tracking_already, warrant_fail)
|
||||
if(tracking_already)
|
||||
to_chat(firer, "<span class='danger'>Weapon Alert: You are already tracking a target!</span>")
|
||||
return
|
||||
if(warrant_fail)
|
||||
to_chat(firer, "<span class='danger'>Weapon Alert: unable to generate warrant on [target]!</span>")
|
||||
return
|
||||
to_chat(firer, "<span class='danger'>Weapon Alert: unable to track [target]!</span>")
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 379 KiB After Width: | Height: | Size: 373 KiB |
Reference in New Issue
Block a user