/tg/ Station 13 - Modules - TypesVar Details - Proc Details

mecha

WELCOME TO MECHA.DM, ENJOY YOUR STAY

Mechs are now (finally) vehicles, this means you can make them multicrew They can also grant select ability buttons based on occupant bitflags

Movement is handled through vehicle_move() which is called by relaymove Clicking is done by way of signals registering to the entering mob NOTE: MMIS are NOT mobs but instead contain a brain that is, so you need special checks AI also has special checks becaus it gets in and out of the mech differently Always call remove_occupant(mob) when leaving the mech so the mob is removed properly

For multi-crew, you need to set how the occupants recieve ability bitflags corresponding to their status on the vehicle(i.e: driver, gunner etc) Abilities can then be set to only apply for certain bitflags and are assigned as such automatically

Clicks are wither translated into mech_melee_attack (see mech_melee_attack.dm) Or are used to call action() on equipped gear Cooldown for gear is on the mech because exploits

Vars

active_thrusters/Action vars Ref to any active thrusters we might have
allow_diagonal_movementWhether this mech is allowed to move diagonally
bumpsmashWhether or not the mech destroys walls by running into it.
cabin_airInternal air mix datum
capacitorKeeps track of the mech's capacitor
cellKeeps track of the mech's cell
completely_disabledJust stop the mech from doing anything
connected_portThe connected air port, if we have one
construction_stateWhether the mechs maintenance protocols are on or off
defense_modeBool for energy shield on/off
deflect_chancechance to deflect the incoming projectiles, hits, or lesser the effect of ex_act.
destruction_sleep_durationTime you get slept for if you get forcible ejected by the mech exploding
dir_inWhat direction will the mech face when entered/powered on? Defaults to South.
dna_lockStores the DNA enzymes of a carbon so tht only they can access the mech
enclosedWhether outside viewers can see the pilot inside
equipment_disabledif we cant use our equipment(such as due to EMP)
exit_delayTIme taken to leave the mech
facing_modifiersModifiers for directional armor
internal_damageBitflags for internal damage
internal_damage_thresholdhealth percentage below which internal damage is possible
internal_tankThe internal air tank obj of the mech
internal_tank_valveThe setting of the valve on the internal tank
internals_req_accessrequired access to change internal components
is_currently_ejectingCurrently ejecting, and unable to do things
lavaland_onlyBool for whether this mech can only be used on lavaland
leg_overload_coeffEnergy use modifier for leg overload
leg_overload_modeBool for leg overload on/off
lights_powerHow powerful our lights are
max_equipMaximum amount of equipment we can have
mecha_flagsContains flags for the mecha
melee_cooldownCooldown duration between melee punches
melee_energy_drainHow much energy we drain each time we mechpunch someone
normal_step_energy_drainHow much energy the mech will consume each time it moves. This variable is a backup for when leg actuators affect the energy drain.
operation_req_accessrequired access level for mecha operation
overload_step_energy_drain_minThe minimum amount of energy charge consumed by leg overload
phase_stateicon_state for flick() when phazing
phasingBool for if the mech is currently phasing
phasing_energy_drainPower we use every time we phaze through something
radioSpecial version of the radio, which is unsellable
scanmodKeeps track of the mech's scanning module
selectedCurrent active equipment
silicon_icon_stateIn case theres a different iconstate for AI/MMI pilot(currently only used for ripley)
smashcooldownCooldown length between bumpsmashes
smoke_chargesRemaining smoke charges
smoke_cooldownCooldown between using smoke
spark_systemSpark effects are handled by this datum
step_energy_drainHow much energy the mech will consume each time it moves. this is the current active energy consumed
step_silentWhether our steps are silent, for example in zero-G
stepsoundSound played when the mech moves
strafeWether we are strafing
turnsoundSound played when the mech walks
use_internal_tank////////ATMOS Whether we are currrently drawing from the internal tank
wreckageTypepath for the wreckage it spawns when destroyed

Procs

TopicTopic
add_airtankUpdates the values given by scanning module and capacitor tier, called when a part is removed or inserted.
add_capacitorAdds a capacitor, for use in Map-spawned mechs, Nuke Ops mechs, and admin-spawned mechs. Mechs built by hand will replace this.
add_cellAdds a cell, for use in Map-spawned mechs, Nuke Ops mechs, and admin-spawned mechs. Mechs built by hand will replace this.
add_scanmodAdds a scanning module, for use in Map-spawned mechs, Nuke Ops mechs, and admin-spawned mechs. Mechs built by hand will replace this.
aimob_enter_mechHandles an actual AI (simple_animal mecha pilot) entering the mech
aimob_exit_mechHandles an actual AI (simple_animal mecha pilot) exiting the mech
ammo_resupplyAmmo stuff
attack_aiAI piloting
check_for_internal_damageInternal damage
generate_action_typeMECHA ACTIONS
get_actionsReturns HTML for mech actions. Ideally, this proc would be empty for the base mecha. Segmented for easy refactoring.
get_commandsHTML for commands.
get_equipment_listHTML for list of equipment.
get_stats_htmlRendering stats window
get_stats_partReturns the status of the mech.
has_chargePower stuff
on_mouseclickAction processing
operation_allowedAccess stuff
play_stepsound///// Movement procs ////////
remove_airAtmospheric stuff
report_internal_damageHTML for internal damage.
stationary_repairRepairs internal damage if the mech hasn't moved.

Var Details

active_thrusters

/Action vars Ref to any active thrusters we might have

allow_diagonal_movement

Whether this mech is allowed to move diagonally

bumpsmash

Whether or not the mech destroys walls by running into it.

cabin_air

Internal air mix datum

capacitor

Keeps track of the mech's capacitor

cell

Keeps track of the mech's cell

completely_disabled

Just stop the mech from doing anything

connected_port

The connected air port, if we have one

construction_state

Whether the mechs maintenance protocols are on or off

defense_mode

Bool for energy shield on/off

deflect_chance

chance to deflect the incoming projectiles, hits, or lesser the effect of ex_act.

destruction_sleep_duration

Time you get slept for if you get forcible ejected by the mech exploding

dir_in

What direction will the mech face when entered/powered on? Defaults to South.

dna_lock

Stores the DNA enzymes of a carbon so tht only they can access the mech

enclosed

Whether outside viewers can see the pilot inside

equipment_disabled

if we cant use our equipment(such as due to EMP)

exit_delay

TIme taken to leave the mech

facing_modifiers

Modifiers for directional armor

internal_damage

Bitflags for internal damage

internal_damage_threshold

health percentage below which internal damage is possible

internal_tank

The internal air tank obj of the mech

internal_tank_valve

The setting of the valve on the internal tank

internals_req_access

required access to change internal components

is_currently_ejecting

Currently ejecting, and unable to do things

lavaland_only

Bool for whether this mech can only be used on lavaland

leg_overload_coeff

Energy use modifier for leg overload

leg_overload_mode

Bool for leg overload on/off

lights_power

How powerful our lights are

max_equip

Maximum amount of equipment we can have

mecha_flags

Contains flags for the mecha

melee_cooldown

Cooldown duration between melee punches

melee_energy_drain

How much energy we drain each time we mechpunch someone

normal_step_energy_drain

How much energy the mech will consume each time it moves. This variable is a backup for when leg actuators affect the energy drain.

operation_req_access

required access level for mecha operation

overload_step_energy_drain_min

The minimum amount of energy charge consumed by leg overload

phase_state

icon_state for flick() when phazing

phasing

Bool for if the mech is currently phasing

phasing_energy_drain

Power we use every time we phaze through something

radio

Special version of the radio, which is unsellable

scanmod

Keeps track of the mech's scanning module

selected

Current active equipment

silicon_icon_state

In case theres a different iconstate for AI/MMI pilot(currently only used for ripley)

smashcooldown

Cooldown length between bumpsmashes

smoke_charges

Remaining smoke charges

smoke_cooldown

Cooldown between using smoke

spark_system

Spark effects are handled by this datum

step_energy_drain

How much energy the mech will consume each time it moves. this is the current active energy consumed

step_silent

Whether our steps are silent, for example in zero-G

stepsound

Sound played when the mech moves

strafe

Wether we are strafing

turnsound

Sound played when the mech walks

use_internal_tank

////////ATMOS Whether we are currrently drawing from the internal tank

wreckage

Typepath for the wreckage it spawns when destroyed

Proc Details

Topic

Topic

add_airtank

Updates the values given by scanning module and capacitor tier, called when a part is removed or inserted.

/// Helpers /////////

add_capacitor

Adds a capacitor, for use in Map-spawned mechs, Nuke Ops mechs, and admin-spawned mechs. Mechs built by hand will replace this.

add_cell

Adds a cell, for use in Map-spawned mechs, Nuke Ops mechs, and admin-spawned mechs. Mechs built by hand will replace this.

add_scanmod

Adds a scanning module, for use in Map-spawned mechs, Nuke Ops mechs, and admin-spawned mechs. Mechs built by hand will replace this.

aimob_enter_mech

Handles an actual AI (simple_animal mecha pilot) entering the mech

aimob_exit_mech

Handles an actual AI (simple_animal mecha pilot) exiting the mech

ammo_resupply

Ammo stuff

attack_ai

AI piloting

check_for_internal_damage

Internal damage

generate_action_type

MECHA ACTIONS

get_actions

Returns HTML for mech actions. Ideally, this proc would be empty for the base mecha. Segmented for easy refactoring.

get_commands

HTML for commands.

get_equipment_list

HTML for list of equipment.

get_stats_html

Rendering stats window

get_stats_part

Returns the status of the mech.

has_charge

Power stuff

on_mouseclick

Action processing

operation_allowed

Access stuff

play_stepsound

///// Movement procs ////////

Plays the mech step sound effect. Split from movement procs so that other mechs (HONK) can override this one specific part.

remove_air

Atmospheric stuff

report_internal_damage

HTML for internal damage.

stationary_repair

Repairs internal damage if the mech hasn't moved.