Files
Bubberstation/code/modules/mod/modules/modules_visor.dm
T
Fikou 0f26f6e9ee modsuit given traits use refs + fixes their deletion not working right + need boot out for ai to move (#87726)
## About The Pull Request
so there is a problem of:
if 2 modsuit modules were to apply the same trait and 1 were removed,
shit would break
so now all instances of mod_trait applied to the modsuit wearer are refs
instead, with mod_trait used for stuff added to items as that isnt
likely to have the same thing
also qdeleted modsuits delete their parts apparently accidentally
removed at some point. the previous time they did it caused qdel loops
but this time it doesnt
makes boots need to be out for an ai to move someone in a modsuit
improves the ui, non-standard cores now have unique colors for the
charging bar, and you can extend/retract things from ui, also adds a
configurable button to config menu so that the tether doesnt repurpose
the pin function made for circuits
redoes modsuit balloon alerts to use simpler language
makes the weapon recall module make you pick up the weapon if its on
your tile as throws dont work on same tile

![image](https://github.com/user-attachments/assets/97a0eb85-8127-4297-b679-3e5488ce73be)


## Why It's Good For The Game
futureproofing (also technically presentproofing, if you wear something
like infiltrator and normal back modsuit and both have ai control they
both will give you a trait)
also ai movement doesnt have any checks currently, i think it makes
sense that it would require your boots to be out so that the ai has
something to move
fix stuff change break boom wack
2024-11-13 12:29:35 -06:00

78 lines
3.9 KiB
Plaintext

//Visor modules for MODsuits
///Base Visor - Adds a specific HUD and traits to you.
/obj/item/mod/module/visor
name = "MOD visor module"
desc = "A heads-up display installed into the visor of the suit. They say these also let you see behind you."
module_type = MODULE_TOGGLE
complexity = 1
active_power_cost = DEFAULT_CHARGE_DRAIN * 0.3
incompatible_modules = list(/obj/item/mod/module/visor)
required_slots = list(ITEM_SLOT_HEAD|ITEM_SLOT_EYES|ITEM_SLOT_MASK)
/// The traits given by the visor.
var/list/visor_traits = list()
/obj/item/mod/module/visor/on_activation()
if(length(visor_traits))
mod.wearer.add_traits(visor_traits, REF(src))
mod.wearer.update_sight()
/obj/item/mod/module/visor/on_deactivation(display_message = TRUE, deleting = FALSE)
if(length(visor_traits))
mod.wearer.remove_traits(visor_traits, REF(src))
mod.wearer.update_sight()
//Medical Visor - Gives you a medical HUD.
/obj/item/mod/module/visor/medhud
name = "MOD medical visor module"
desc = "A heads-up display installed into the visor of the suit. This cross-references suit sensor data with a modern \
biological scanning suite, allowing the user to visualize the current health of organic lifeforms, as well as \
access data such as patient files in a convenient readout. They say these also let you see behind you."
icon_state = "medhud_visor"
visor_traits = list(TRAIT_MEDICAL_HUD)
//Diagnostic Visor - Gives you a diagnostic HUD.
/obj/item/mod/module/visor/diaghud
name = "MOD diagnostic visor module"
desc = "A heads-up display installed into the visor of the suit. This uses a series of advanced sensors to access data \
from advanced machinery, exosuits, and other devices, allowing the user to visualize current power levels \
and integrity of such. They say these also let you see behind you."
icon_state = "diaghud_visor"
visor_traits = list(TRAIT_DIAGNOSTIC_HUD, TRAIT_BOT_PATH_HUD)
//Security Visor - Gives you a security HUD.
/obj/item/mod/module/visor/sechud
name = "MOD security visor module"
desc = "A heads-up display installed into the visor of the suit. This module is a heavily-retrofitted targeting system, \
plugged into various criminal databases to be able to view arrest records, command simple security-oriented robots, \
and generally know who to shoot. They say these also let you see behind you."
icon_state = "sechud_visor"
visor_traits = list(TRAIT_SECURITY_HUD)
//Meson Visor - Gives you meson vision.
/obj/item/mod/module/visor/meson
name = "MOD meson visor module"
desc = "A heads-up display installed into the visor of the suit. This module is based off well-loved meson scanner \
technology, used by construction workers and miners across the galaxy to see basic structural and terrain layouts \
through walls, regardless of lighting conditions. They say these also let you see behind you."
icon_state = "meson_visor"
visor_traits = list(TRAIT_MESON_VISION, TRAIT_MADNESS_IMMUNE)
//Thermal Visor - Gives you thermal vision.
/obj/item/mod/module/visor/thermal
name = "MOD thermal visor module"
desc = "A heads-up display installed into the visor of the suit. This uses a small IR scanner to detect and identify \
the thermal radiation output of objects near the user. While it can detect the heat output of even something as \
small as a rodent, it still produces irritating red overlay. They say these also let you see behind you."
icon_state = "thermal_visor"
visor_traits = list(TRAIT_THERMAL_VISION)
//Night Visor - Gives you night vision.
/obj/item/mod/module/visor/night
name = "MOD night visor module"
desc = "A heads-up display installed into the visor of the suit. Typical for both civilian and military applications, \
this allows the user to perceive their surroundings while in complete darkness, enhancing the view by tenfold; \
yet brightening everything into a spooky green glow. They say these also let you see behind you."
icon_state = "night_visor"
visor_traits = list(TRAIT_TRUE_NIGHT_VISION)