mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
Rewrites gun.dm. Reorganizes the firing procedure into logical procs and cleans up some unnecessary variables or demotes them to the subtypes that actually care. Energy weapons that create their own projectiles no longer care about in_chamber. Launcher support is much more natural now. Cleans up duplicated cyborg energy weapon power supply code. Adds support for energy weapons to recharge from external power sources, unifying cyborg and hardsuit mounted weapons. Incorporates the cyborg taser recharging mechanism. Cleans up laser tag gun duplication Changes path strings to actual paths. Changes relative paths to absolute paths. Renamed several targeting vars to make their purposes more clear. Fixed targeting not handling firing correctly for certain subtypes.
249 lines
7.2 KiB
Plaintext
249 lines
7.2 KiB
Plaintext
/datum/hud/proc/monkey_hud(var/ui_style='icons/mob/screen1_old.dmi')
|
|
|
|
src.adding = list()
|
|
src.other = list()
|
|
|
|
var/obj/screen/using
|
|
var/obj/screen/inventory/inv_box
|
|
|
|
using = new /obj/screen()
|
|
using.name = "act_intent"
|
|
using.set_dir(SOUTHWEST)
|
|
using.icon = ui_style
|
|
using.icon_state = (mymob.a_intent == "hurt" ? "harm" : mymob.a_intent)
|
|
using.screen_loc = ui_acti
|
|
using.layer = 20
|
|
src.adding += using
|
|
action_intent = using
|
|
|
|
//intent small hud objects
|
|
var/icon/ico
|
|
|
|
ico = new(ui_style, "black")
|
|
ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1)
|
|
ico.DrawBox(rgb(255,255,255,1),1,ico.Height()/2,ico.Width()/2,ico.Height())
|
|
using = new /obj/screen( src )
|
|
using.name = "help"
|
|
using.icon = ico
|
|
using.screen_loc = ui_acti
|
|
using.layer = 21
|
|
src.adding += using
|
|
help_intent = using
|
|
|
|
ico = new(ui_style, "black")
|
|
ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1)
|
|
ico.DrawBox(rgb(255,255,255,1),ico.Width()/2,ico.Height()/2,ico.Width(),ico.Height())
|
|
using = new /obj/screen( src )
|
|
using.name = "disarm"
|
|
using.icon = ico
|
|
using.screen_loc = ui_acti
|
|
using.layer = 21
|
|
src.adding += using
|
|
disarm_intent = using
|
|
|
|
ico = new(ui_style, "black")
|
|
ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1)
|
|
ico.DrawBox(rgb(255,255,255,1),ico.Width()/2,1,ico.Width(),ico.Height()/2)
|
|
using = new /obj/screen( src )
|
|
using.name = "grab"
|
|
using.icon = ico
|
|
using.screen_loc = ui_acti
|
|
using.layer = 21
|
|
src.adding += using
|
|
grab_intent = using
|
|
|
|
ico = new(ui_style, "black")
|
|
ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1)
|
|
ico.DrawBox(rgb(255,255,255,1),1,1,ico.Width()/2,ico.Height()/2)
|
|
using = new /obj/screen( src )
|
|
using.name = "harm"
|
|
using.icon = ico
|
|
using.screen_loc = ui_acti
|
|
using.layer = 21
|
|
src.adding += using
|
|
hurt_intent = using
|
|
|
|
//end intent small hud objects
|
|
|
|
using = new /obj/screen()
|
|
using.name = "mov_intent"
|
|
using.set_dir(SOUTHWEST)
|
|
using.icon = ui_style
|
|
using.icon_state = (mymob.m_intent == "run" ? "running" : "walking")
|
|
using.screen_loc = ui_movi
|
|
using.layer = 20
|
|
src.adding += using
|
|
move_intent = using
|
|
|
|
using = new /obj/screen()
|
|
using.name = "drop"
|
|
using.icon = ui_style
|
|
using.icon_state = "act_drop"
|
|
using.screen_loc = ui_drop_throw
|
|
using.layer = 19
|
|
src.adding += using
|
|
|
|
inv_box = new /obj/screen/inventory()
|
|
inv_box.name = "r_hand"
|
|
inv_box.set_dir(WEST)
|
|
inv_box.icon = ui_style
|
|
inv_box.icon_state = "hand_inactive"
|
|
if(mymob && !mymob.hand) //This being 0 or null means the right hand is in use
|
|
inv_box.icon_state = "hand_active"
|
|
inv_box.screen_loc = ui_rhand
|
|
inv_box.slot_id = slot_r_hand
|
|
inv_box.layer = 19
|
|
src.r_hand_hud_object = inv_box
|
|
src.adding += inv_box
|
|
|
|
inv_box = new /obj/screen/inventory()
|
|
inv_box.name = "l_hand"
|
|
inv_box.set_dir(EAST)
|
|
inv_box.icon = ui_style
|
|
inv_box.icon_state = "hand_inactive"
|
|
if(mymob && mymob.hand) //This being 1 means the left hand is in use
|
|
inv_box.icon_state = "hand_active"
|
|
inv_box.screen_loc = ui_lhand
|
|
inv_box.slot_id = slot_l_hand
|
|
inv_box.layer = 19
|
|
src.l_hand_hud_object = inv_box
|
|
src.adding += inv_box
|
|
|
|
using = new /obj/screen/inventory()
|
|
using.name = "hand"
|
|
using.set_dir(SOUTH)
|
|
using.icon = ui_style
|
|
using.icon_state = "hand1"
|
|
using.screen_loc = ui_swaphand1
|
|
using.layer = 19
|
|
src.adding += using
|
|
|
|
using = new /obj/screen/inventory()
|
|
using.name = "hand"
|
|
using.set_dir(SOUTH)
|
|
using.icon = ui_style
|
|
using.icon_state = "hand2"
|
|
using.screen_loc = ui_swaphand2
|
|
using.layer = 19
|
|
src.adding += using
|
|
|
|
inv_box = new /obj/screen/inventory()
|
|
inv_box.name = "mask"
|
|
inv_box.set_dir(NORTH)
|
|
inv_box.icon = ui_style
|
|
inv_box.icon_state = "equip"
|
|
inv_box.screen_loc = ui_monkey_mask
|
|
inv_box.slot_id = slot_wear_mask
|
|
inv_box.layer = 19
|
|
src.adding += inv_box
|
|
|
|
inv_box = new /obj/screen/inventory()
|
|
inv_box.name = "back"
|
|
inv_box.set_dir(NORTHEAST)
|
|
inv_box.icon = ui_style
|
|
inv_box.icon_state = "equip"
|
|
inv_box.screen_loc = ui_back
|
|
inv_box.slot_id = slot_back
|
|
inv_box.layer = 19
|
|
src.adding += inv_box
|
|
|
|
mymob.throw_icon = new /obj/screen()
|
|
mymob.throw_icon.icon = ui_style
|
|
mymob.throw_icon.icon_state = "act_throw_off"
|
|
mymob.throw_icon.name = "throw"
|
|
mymob.throw_icon.screen_loc = ui_drop_throw
|
|
|
|
mymob.oxygen = new /obj/screen()
|
|
mymob.oxygen.icon = ui_style
|
|
mymob.oxygen.icon_state = "oxy0"
|
|
mymob.oxygen.name = "oxygen"
|
|
mymob.oxygen.screen_loc = ui_oxygen
|
|
|
|
mymob.pressure = new /obj/screen()
|
|
mymob.pressure.icon = ui_style
|
|
mymob.pressure.icon_state = "pressure0"
|
|
mymob.pressure.name = "pressure"
|
|
mymob.pressure.screen_loc = ui_pressure
|
|
|
|
mymob.toxin = new /obj/screen()
|
|
mymob.toxin.icon = ui_style
|
|
mymob.toxin.icon_state = "tox0"
|
|
mymob.toxin.name = "toxin"
|
|
mymob.toxin.screen_loc = ui_toxin
|
|
|
|
mymob.internals = new /obj/screen()
|
|
mymob.internals.icon = ui_style
|
|
mymob.internals.icon_state = "internal0"
|
|
mymob.internals.name = "internal"
|
|
mymob.internals.screen_loc = ui_internal
|
|
|
|
mymob.fire = new /obj/screen()
|
|
mymob.fire.icon = ui_style
|
|
mymob.fire.icon_state = "fire0"
|
|
mymob.fire.name = "fire"
|
|
mymob.fire.screen_loc = ui_fire
|
|
|
|
mymob.bodytemp = new /obj/screen()
|
|
mymob.bodytemp.icon = ui_style
|
|
mymob.bodytemp.icon_state = "temp1"
|
|
mymob.bodytemp.name = "body temperature"
|
|
mymob.bodytemp.screen_loc = ui_temp
|
|
|
|
mymob.healths = new /obj/screen()
|
|
mymob.healths.icon = ui_style
|
|
mymob.healths.icon_state = "health0"
|
|
mymob.healths.name = "health"
|
|
mymob.healths.screen_loc = ui_health
|
|
|
|
mymob.pullin = new /obj/screen()
|
|
mymob.pullin.icon = ui_style
|
|
mymob.pullin.icon_state = "pull0"
|
|
mymob.pullin.name = "pull"
|
|
mymob.pullin.screen_loc = ui_pull_resist
|
|
|
|
mymob.blind = new /obj/screen()
|
|
mymob.blind.icon = 'icons/mob/screen1_full.dmi'
|
|
mymob.blind.icon_state = "blackimageoverlay"
|
|
mymob.blind.name = " "
|
|
mymob.blind.screen_loc = "1,1"
|
|
mymob.blind.layer = 0
|
|
|
|
mymob.flash = new /obj/screen()
|
|
mymob.flash.icon = ui_style
|
|
mymob.flash.icon_state = "blank"
|
|
mymob.flash.name = "flash"
|
|
mymob.flash.screen_loc = "1,1 to 15,15"
|
|
mymob.flash.layer = 17
|
|
|
|
mymob.zone_sel = new /obj/screen/zone_sel()
|
|
mymob.zone_sel.icon = ui_style
|
|
mymob.zone_sel.overlays.Cut()
|
|
mymob.zone_sel.overlays += image('icons/mob/zone_sel.dmi', "[mymob.zone_sel.selecting]")
|
|
|
|
//Handle the gun settings buttons
|
|
mymob.gun_setting_icon = new /obj/screen/gun/mode(null)
|
|
if (mymob.client)
|
|
if (mymob.client.gun_mode) // If in aim mode, correct the sprite
|
|
mymob.gun_setting_icon.set_dir(2)
|
|
for(var/obj/item/weapon/gun/G in mymob) // If targeting someone, display other buttons
|
|
if (G.aim_targets)
|
|
mymob.item_use_icon = new /obj/screen/gun/item(null)
|
|
if (mymob.client.target_can_click)
|
|
mymob.item_use_icon.set_dir(1)
|
|
src.adding += mymob.item_use_icon
|
|
mymob.gun_move_icon = new /obj/screen/gun/move(null)
|
|
if (mymob.client.target_can_move)
|
|
mymob.gun_move_icon.set_dir(1)
|
|
mymob.gun_run_icon = new /obj/screen/gun/run(null)
|
|
if (mymob.client.target_can_run)
|
|
mymob.gun_run_icon.set_dir(1)
|
|
src.adding += mymob.gun_run_icon
|
|
src.adding += mymob.gun_move_icon
|
|
|
|
mymob.client.screen = null
|
|
|
|
mymob.client.screen += list( mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.pressure, mymob.toxin, mymob.bodytemp, mymob.internals, mymob.fire, mymob.healths, mymob.pullin, mymob.blind, mymob.flash, mymob.gun_setting_icon) //, mymob.hands, mymob.rest, mymob.sleep, mymob.mach )
|
|
mymob.client.screen += src.adding + src.other
|
|
|
|
return
|