Changes protector sprite, adds flashlight

This commit is contained in:
Arokha Sieyes
2017-06-13 21:39:46 -04:00
parent 557d685025
commit 6e5c63d3a5
4 changed files with 119 additions and 12 deletions
+64 -11
View File
@@ -1,11 +1,12 @@
// -------------- Protector -------------
/obj/item/weapon/gun/energy/gun/protector
/obj/item/weapon/gun/energy/protector
name = "\improper KHI-98a \'Protector\'"
desc = "The KHI-98a is the first firearm custom-designed for Nanotrasen by KHI. It features a powerful stun mode, and \
an alert-level-locked lethal mode, only usable on code blue and higher. It also features a DNA lock mechanism."
an alert-level-locked lethal mode, only usable on code blue and higher. It also features an integrated flashlight! \
(CtrlClick to toggle flashlight)"
icon = 'icons/vore/custom_guns_vr.dmi'
icon_state = "protstun100"
icon_state = "prot"
icon_override = 'icons/vore/custom_guns_vr.dmi'
item_state = "gun"
@@ -13,20 +14,26 @@
fire_sound = 'sound/weapons/Taser.ogg'
projectile_type = /obj/item/projectile/beam/stun
modifystate = "protstun"
dna_lock = 1
modifystate = "stun"
origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 3, TECH_MAGNET = 2)
charge_sections = 3 //For the icon
ammo_x_offset = 2
ammo_y_offset = 0
can_flashlight = TRUE
light_state = "prot_light"
flight_x_offset = 0
flight_y_offset = 0
firemodes = list(
list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun/protector, modifystate="protstun", fire_sound='sound/weapons/Taser.ogg'),
list(mode_name="lethal", projectile_type=/obj/item/projectile/beam, modifystate="protkill", fire_sound='sound/weapons/gauss_shoot.ogg'),
list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun/protector, modifystate="stun", fire_sound='sound/weapons/Taser.ogg'),
list(mode_name="lethal", projectile_type=/obj/item/projectile/beam, modifystate="kill", fire_sound='sound/weapons/gauss_shoot.ogg'),
)
var/emagged = FALSE
/obj/item/weapon/gun/energy/gun/protector/special_check(mob/user)
/obj/item/weapon/gun/energy/protector/special_check(mob/user)
if(!emagged && mode_name == "lethal" && get_security_level() == "green")
to_chat(user,"<span class='warning'>The trigger refuses to depress while on the lethal setting under security level green!</span>")
return FALSE
@@ -34,7 +41,7 @@
return ..()
/obj/item/weapon/gun/energy/gun/protector/emag_act(var/remaining_charges,var/mob/user)
/obj/item/weapon/gun/energy/protector/emag_act(var/remaining_charges,var/mob/user)
..()
if(!emagged)
emagged = TRUE
@@ -42,6 +49,52 @@
return TRUE
//Update icons from /tg/, so fancy! Use this more!
/obj/item/weapon/gun/energy/protector/update_icon()
overlays.Cut()
var/ratio = 0
/* Don't have one for this gun
var/itemState = null
if(!initial(item_state))
itemState = icon_state
*/
var/iconState = "[icon_state]_charge"
if (modifystate)
overlays += "[icon_state]_[modifystate]"
iconState += "_[modifystate]"
/* Don't have one for this gun
if(itemState)
itemState += "[modifystate]"
*/
if(power_supply)
ratio = Ceiling((power_supply.charge / power_supply.maxcharge) * charge_sections)
if(power_supply.charge < charge_cost)
overlays += "[icon_state]_empty"
else
if(!shaded_charge)
var/mutable_appearance/charge_overlay = mutable_appearance(icon, iconState)
for(var/i = ratio, i >= 1, i--)
charge_overlay.pixel_x = ammo_x_offset * (i - 1)
overlays += charge_overlay
else
overlays += "[icon_state]_[modifystate][ratio]"
if(can_flashlight & gun_light)
var/mutable_appearance/flashlight_overlay = mutable_appearance(icon, light_state)
flashlight_overlay.pixel_x = flight_x_offset
flashlight_overlay.pixel_y = flight_y_offset
overlays += flashlight_overlay
/* Don't have one for this gun
if(itemState)
itemState += "[ratio]"
item_state = itemState
*/
// Protector beams
/obj/item/projectile/beam/stun/protector
name = "protector stun beam"
@@ -58,5 +111,5 @@
id = "protector"
req_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 3, TECH_MAGNET = 2)
materials = list(DEFAULT_WALL_MATERIAL = 4000, "glass" = 2000, "silver" = 1000)
build_path = /obj/item/weapon/gun/energy/gun/protector
build_path = /obj/item/weapon/gun/energy/protector
sort_string = "TAADA"